ログインシステムを作成する方法についてのチュートリアル「安全なログインシステムを正しい方法で作成する」に従っています。コードではmysql_real_escape_string
、ユーザー名フィールドをクエリとしてデータベースに渡す前に使用します。つまり、
$username = mysql_real_escape_string($username);
データベースに何も追加していないので、これは必要ですか?このユーザーがすでに存在するかどうかを確認するだけですか?
とにかくそのままにしておくのではない理由は、上記のコードを使用すると、テキストが空白になり、空の文字列がデータベースに送信されるためです。なぜなのかわからないので、省略できればと思いました。
以下は、コメント投稿者からデータベース接続を開いていることに関するアドバイスです(パスワードなどが変更されています)。
function dbConnect(){
$connection = mysql_connect('localhost', 'username', 'password');
$database=mysql_select_db('database', $connection);
return $connection;
}
$username = $_POST['username'];
$password = $_POST['password'];
$password = md5($password);
$username = mysql_real_escape_string($username);
$query = mysql_query("SELECT *
FROM members
WHERE username = '$username'
AND password = '$password'",dbConnect());