Groeten, Jeremy
zie:
Notice: Undefined variable: password in C:\xampp\htdocs\Login2\registreren.php on line 19
Notice: Undefined variable: name in C:\xampp\htdocs\Login2\registreren.php on line 23
Notice: Undefined variable: password in C:\xampp\htdocs\Login2\registreren.php on line 23
Fatal error: Uncaught Error: Call to a member function query() on string in C:\xampp\htdocs\Login2\registreren.php:27 Stack trace: #0 {main} thrown in C:\xampp\htdocs\Login2\registreren.php on line 27
PHP:
<?php
$errors = [];
require 'db.php';
if (isset($_POST['register'])) {
$name = filter_input(INPUT_POST, 'name');
$email = filter_input(INPUT_POST, 'email');
$password = filter_input(INPUT_POST, 'password');
$cPassword = filter_input(INPUT_POST, 'cPassword');
if ($password != $cPassword)
$errors[] = "Passwords don't match";
}
if (strlen($password) < 8) {
$errors[] = "Password not long enough!";
}
if ($name === $password) {
$errors[] = "Username cannot equal password!";
}
$stmt = $pdo->query("SELECT 1 FROM users WHERE name = ?");
$stmt->execute([$name]);
$user_found = $stmt->fetchColumn();
if ($user_found) {
$errors[] = "Username already taken";
}
if (!$errors)
{
$hash = password_hash($password, PASSWORD_BCRYPT);
$sql = "INSERT INTO users (name, email, password) VALUES (?,?,?)";
$stmt = $pdo->prepare($sql);
$stmt->execute([$name, $email, $hash]);
$errors[] = "U bent geregistreerd!";
//header( "Refresh:3; url=/Login2/inloggen.php", true, 303);
}
else {
$username = "";
}
?>
HTML:
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0,
maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" style="text/css" href="style.css">
<title>Registreren</title>
</head>
<body>
<div class="login-page">
<div class="form">
<?php foreach ($errors as $error): ?>
<p><?= $error ?></p>
<?php endforeach ?>
<form class="login-form" action="registreren.php" method="post">
<input type="text" placeholder="Username" name="name" value="<?=
htmlspecialchars($username) ?>"/>
<input type="email" placeholder="E-mail address" name="email"/>
<input type="password" placeholder="Password" name="password"/>
<input type="password" placeholder="Password" name="cPassword"/>
<button name="register" type="submit">create</button>
<p class="message">Bent u al geregistreerd? <a
href="inloggen.php">Keer terug</a></p>
</form>
</div>
</div>
</body>
</html>
db.php file:
<?php
$host = 'localhost';
$db = 'loginform';
$user = 'root';
$pass = '';
$charset = 'utf8mb4';
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
try {
$pdo = new PDO($dsn, $user, $pass, $options);
} catch (\PDOException $e) {
throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
?>