まず、私はphpが初めてです。私はMySQLも初めてなので、優しくしてください。第二に、mysql_* が減価償却されていることを知っています。これは、後で詳しく理解した時点で修正される予定です。
だから私は次のコードを持っています:
if(isset($_POST['email']) && !empty($_POST['email']) AND isset($_POST['password']) && !empty($_POST['password'])){
$email = mysql_escape_string($_POST['email']);
$password = mysql_escape_string($_POST['password']);
$search = mysql_query("SELECT * FROM users WHERE email='".$email."' AND password='".$password."' AND active='1'") or die(mysql_error());
$match = mysql_num_rows($search);
if($match > 0){
$user=$search['forename'] .' '.$search['surname'];
$_SESSION['username']=$user;
$msg = 'Login Complete! Thanks, '.$user.'!';
}else{
$msg = 'Login Failed!<br /> Please make sure that you enter the correct details and that you have activated your account.';
}
}
簡単に言えば、メールとパスワードが一致することを確認しています(ハッシュ化されたパスワードではないことはわかっています...これもテストなので問題ではありません)。それらがあり、アカウントがアクティブ化されている場合は、ユーザーの姓名 (users テーブルの名/姓) を返し、それらをセッション変数に格納します。その変数が設定されている場合、この情報を使用して、ユーザーがログインしたことを確認します (したがって、特定のページにアクセスできます)。ただし、このテストはユーザー名を返さず、代わりに次を出力します。
ログイン完了!ありがとう、 !
どんな助けでも大歓迎です。