私には2つの問題があります。 問題1: ユーザーが自分のウェブサイトに登録できる登録フォームを作成しようとしています。 私が手dublicateエントリが見つからこのmysqlのステートメントを実行すると、エラー:
$sql "insert into users(username, password) values('$username, sha('$password'))";
私は、文字列のSHA(「$パスワード」)を数回変更しているにもかかわらず、キー「パスワード」 ため
重複したエントリ「da39a3ee5e6b4b0d3255bfef95601890afd80709」 。 助けてください。
else{
include("databaseconnection.php");
$databaseconnect = connect($host,$user,$password,$database)
or die("couldnot connect to database serever.\n");
$database_select = mysql_select_db($database,$databaseconnect)
or die("could not select dabases.\n " .mysql_error());
$query2 = "insert into company(username,password)
values('$username',sha1('$password'))";
$result2 = mysql_query($query2,$databaseconnect);
echo "you have been registered as '$companyloginName' <br/>";
header("Location:/index.php");
私のログインPHPスクリプトは以下の通りです:
$result ="select username, password form users where username ='$username' and password = sha('$password');
if(mysql_num_rows($reuslt)==1){
echo"welcome '$username";
}
なぜパスワードフィールドにUNIQUE制約がありますか?複数のユーザーが同じパスワードを持つことは可能でしょうか? –
私は実際にパスワードフィールドのuniqueconstraintを削除しましたが、何が起こっているのかは、異なるパスワードを持つユーザがsha( '$ password')とsha( '$ password1' )は 'da39a3ee5e6b4b0d3255bfef95601890afd80709'と同じです。 – sareeye
@Emilが言っていることに加えて、人々が同じパスワードを持っていることを許可してください。または、すでにパスワードを入力した場合にメッセージを表示しないでください。 –