So i found out why it was not working. I forgot that i started to code but didn't finish the part where it checks if a user already exists in the database. I deleted that part and my program is now working.
So stupid of me.
Thank you both for the help. Im learning off a tutorial website but there doesn't seem to be support and maybe an error or 2
This is what my session and final register looks like
<?php
session_start();
$data = $_POST;
if( empty($data['usernamebox']) ||
empty($data['emailbox']) ||
empty($data['passwordbox']) ||
empty($data['passwordconfirmbox'])) {
$_SESSION['messages'][] = 'Please fill all required fields';
header('Location: register.php');
exit;
}
if ($data['passwordbox'] !== $data['passwordconfirmbox']) {
$_SESSION['messages'][] = 'Passwords do not match';
header('Location: register.php');
exit;
}
$dsn = 'mysql:dbname=marDatabase;host=localhost';
$dbUser='root';
$dbPassword= '';
try{
$connection = new PDO($dsn, $dbUser, $dbPassword);
} catch (PDOException $exception){
$_SESSION['messages'][] = 'Connection failed: ' . $exception->getMessage();
header('Location: register.php');
exit;
}
$statement = $connection->prepare('INSERT INTO users (username, email, password) VALUES (:usernamebox, :emailbox, :passwordbox)');
if($statement){
$result = $statement->execute([
':usernamebox' => $data['usernamebox'],
':emailbox' => $data['emailbox'],
':passwordbox' => $data['passwordbox'],
]);
if ($result) {
$_SESSION['messages'][] = 'Thanks for registering. Check your email to confirm your email';
header('Location: register.php');
exit;
}
}
?>
<?php
session_start();
if (empty($_SESSION['messages'])){
return;
}
$messages = $_SESSION['messages'];
unset($_SESSION['messages']);
?>
<ul>
<?php
foreach ($messages as $message):
?>
<li>
<?php
echo $message;
?>
</li>
<?php
endforeach;
?>
</ul>