mijn code:
Register.php
<?php
$_SESSION['email'] = $_POST['email'];
$_SESSION['first_name'] = $_POST['firstname'];
$_SESSION['last_name'] = $_POST['lastname'];
$first_name = $mysqli->escape_string($_POST['firstname']);
$last_name = $mysqli->escape_string($_POST['lastname']);
$email = $mysqli->escape_string($_POST['email']);
$password = $mysqli->escape_string(password_hash($_POST['password'], PASSWORD_BCRYPT));
$hash = $mysqli->escape_string( md5( rand(0,1000) ) );
$result = $mysqli->query("SELECT * FROM users WHERE email='$email'") or die($mysqli->error());
if ( $result->num_rows > 0 ) {
$_SESSION['message'] = 'Gebruiker met die email bestaad al!';
header("location: error.php");
}
else {
$sql = "INSERT INTO users (first_name, last_name, email, password, hash) "
. "VALUES ('$first_name','$last_name','$email','$password', '$hash')";
if ( $mysqli->query($sql) ){
$_SESSION['active'] = 0;
$_SESSION['logged_in'] = true;
$_SESSION['message'] =
"Je hebt een mail ontvangen met een acctivatie link";
$to = $email;
$subject = 'Account acctivatie ';
$message_body = '
Hello '.$first_name.',
Dank je wel voor het aanmaken van een account.
Klik aub op de link hieronder om je account te acctiveren.
http://localhost/login-system/verify.php?email='.$email.'&hash='.$hash;
mail( $to, $subject, $message_body );
header("location: profile.php");
}
else {
$_SESSION['message'] = 'Registration failed!';
header("location: error.php");
}
}
verify.php:
<?php
require 'db.php';
session_start();
if(isset($_GET['email']) && !empty($_GET['email']) AND isset($_GET['hash']) && !empty($_GET['hash']))
{
$email = $mysqli->escape_string($_GET['email']);
$hash = $mysqli->escape_string($_GET['hash']);
$result = $mysqli->query("SELECT * FROM users WHERE email='$email' AND hash='$hash' AND active='0'");
if ( $result->num_rows == 0 )
{
$_SESSION['message'] = "Account is al geactiveerd!";
header("location: error.php");
}
else {
$_SESSION['message'] = "Je account is geactiveerd";
$mysqli->query("UPDATE users SET active='1' WHERE email='$email'") or die($mysqli->error);
$_SESSION['active'] = 1;
header("location: success.php");
}
}
else {
$_SESSION['message'] = "";
header("location: error.php");
}
?>
Ik hoop dat je hier genoeg aan hebt.