0

サインアップフォームのphpコードがあり、詳細をテーブル(temp_members_db)に保存し、入力したメールに確認コードを送信します。コードをクリックすると、temp_members_db からの詳細が新しいテーブル registered_members に転送され、ユーザーがログインした場合にログインの詳細がチェックされます。

問題はサインアップ コードに関連しています。メールとユーザー名の重複を避けるにはどうすればよいですか? 私のコードは次のとおりです。

<?php

include('config.php');

$tbl_name=temp_members_db;

$confirm_code=md5(uniqid(rand()));

$name=$_POST['name'];
$email=$_POST['email'];
$password=$_POST['password'];
$password_confirm=$_POST['password_confirm'];

$sql="INSERT INTO $tbl_name(confirm_code, name, email, password)VALUES('$confirm_code', '$name', '$email', '$password')";
$result=mysql_query($sql);

if
($password != $password_confirm)
{
echo "Password do not match";
}
else if
($result)
{

$to=$email;

$subject="Your confirmation link here";

$header="from: Name  <confirm@domain.org>";

$message="Your Comfirmation link \r\n";
$message.="Click on this link to activate your account \r\n";
$message.="http://mydomain@domain.org/confirmation.php?passkey=$confirm_code";

$sentmail = mail($to,$subject,$message,$header);

}

else {
echo "Email not found";
}

if($sentmail){
echo "Your Confirmation link Has Been Sent To Your Email Address.";
}
else {
echo "<BR/>Cannot send Confirmation link to your e-mail address";
}

?>

ありがとう

4

1 に答える 1

0

SQL を実行して、名前または電子メールがINSERTデータベースに入る前にテーブルに既に存在するかどうかを判断します。クエリが を返す場合、エラー メッセージを表示できます>0

例えば、

SELECT COUNT(*) FROM temp_members_db, registered_members WHERE email = $email OR name = $name;

于 2013-05-09T05:56:20.207 に答える