php で適切な登録システムを作成できるというNickfrosty のYouTube チュートリアルのおかげで、私は彼のコードをmysqlからmysqliに変換することができ、ユーザーの登録後に電子メールでアクティベーション リンクを送信することができました。
以下は、データベースに登録の詳細を挿入し、ユーザーの登録後にメッセージとアクティベーション リンクをユーザーの電子メールに送信するコードです。
$code = md5(rand());
$insertsql = "
INSERT INTO Teacher
(TeacherForename, TeacherSurname, TeacherEmail, TeacherAlias, TeacherUsername, TeacherPassword, Code)
VALUES
(?, ?, ?, ?, ?, ?, ?)
";
if (!$insert = $mysqli->prepare($insertsql)) {
// Handle errors with prepare operation here
}
$insert->bind_param("sssssss", $getfirstname, $getsurname,
$getemail, $getid, $getuser,
$teacherpassword, $code);
$insert->execute();
if ($insert->errno) {
// Handle query error here
}
$insert->close();
$site = "http://helios.hud.ac.uk/......../Mobile_app";
$webmaster = "Mayur Patel <.......@hud.ac.uk>";
$headers = "From: $webmaster";
$subject = "Activate Your Account";
$message = "Thanks for Registering. Click the link below to Acivate your Account. \n";
$message .= "$site/activate.php?user=$getuser&code=$code\n";
$message .= "You must Activate your Account to Login";
if(mail($getemail, $subject, $message, $headers)){
$errormsg = "You have been Registered. You must Activate your Account from the Activation Link sent to <b>$getemail</b>";
$getfirstname = "";
$getsurname = "";
$getid = "";
$getuser = "";
$getemail = "";
}
しかし、私は今問題を抱えています。リンクをクリックすると、ユーザーがそのactivate.php
ページに移動します。
私の質問は、ユーザーが有効化リンクをクリックした後、ユーザーのアカウントをどのように有効化するのですか? 上記のphpでユーザーのユーザー名とアクティベーションコードを検索して認識できるようにする$message .= "$site/activate.php?user=$getuser&code=$code\n";
必要があり、データベースActive
でそのユーザーの列を0 to
1`から更新して、ユーザーがアクティブになるようにする必要があります。次の記述は正しいですか。
"UPDATE Teacher SET Active='1' WHERE TeacherUsername = '$getuser'"
"SELECT * FROM Teacher WHERE TeacherUsername='$getuser' AND Active='1'"
このactivate.php
ページには、アカウントがアクティブ化されたことを示すメッセージが表示されるだけです。ユーザーが既にアクティブ化されている場合は、ユーザーが既にアクティブ化されていることを示すメッセージを表示します。