そのため、ログインフォームを作成しています。ユーザー入力を検証して、電子メール形式が正しいかどうか、パスワードが6文字を超えているかどうかを確認します。これらが有効な場合は、ログイン資格情報が有効であり、に保存されている電子メール/パスワードと一致するかどうかを確認しますusers テーブル。登録フォームで、sha1 と特定のソルトを使用してパスワードを暗号化しています。パスワードが正しいかどうかを確認するときに同じチェックを書きますが、正しいログイン資格情報を入力してもログインを検証できないようです。だからここに私のコードがあります: ユーザーログイン機能:
function user_login($email, $password){
global $db;
$salt='%#@#@**#_-!';
$userid = id_from_email($email);
$email = sanitize($email);
$password = sha1($password.$salt);
$query="SELECT UserId FROM users WHERE Email= '".$email."' and UserPass= '".$password."' ";
$result=$db->query($query);
$valid = $result->num_rows;
return ($valid >1) ? $userid : false;
}
そして、ログインが有効かどうかをチェックする login.php の部分は次のとおりです。
else if(empty($errors) == true) {
$userlogin=user_login($email, $password);
if ($userlogin==false){
$errors[]='Wrong email/password combination.';
} else {
//set the user session
session_start();
$_SESSION['UserId']=$userlogin;
header('Location:success.php');
}
正しいパスワードとメールアドレスを入力しても問題ありません。それは常に「間違った電子メール/パスの組み合わせ」を出力しますそして、これがregister.phpのデータベースにパスを保存する方法です
$salt='%#@#@**#_-!';
$password = sha1($password.$salt);
あなたが私を助けてくれるなら、私はとても感謝しています。
ありがとうございました。