私は単に何かを見落としていると確信しています、そして私はこれに取り組んで数日を費やしました、そしてそれを理解することができないようです。
前のページにログインした後、ユーザー名とパスワードを取得します。
$username = mysql_escape_string($_POST['adminusername']);
$password = mysql_escape_string($_POST['adminpassword']);
次に、データベースにアクセスして、データベースからユーザー名とパスワードを取得します。
$sql = "SELECT username, password FROM `weaponsadmin`";
$rows = $db->query($sql); while ($record = $db->fetch_array($rows)) {
今ここに私を混乱させている部分があります、私が以下を持っているならば、私がユーザー名またはパスワードに何を使用しても、それは私がログインすることを許可しません、
if ( ($record[username]==$username) && ($record[password]==$adminpassword) ){
$_SESSION['loggedin'] = true;
$_SESSION['username'] = $adminusername;
header( "Location: admin.php" ) ;
}
else {
header( "Location: index.php?login=error" ) ;
}
ただし、以下を使用すると、ユーザー名が正しければログインできますが、パスワードは何でも入力でき、機能します。
$adminusername = $record[username];
$adminpassword = $record[password];
if ( ($adminusername==$username) && ($adminpassword==$adminpassword) ) {
$_SESSION['loggedin'] = true;
$_SESSION['username'] = $adminusername;
header( "Location: admin.php" ) ;
}
else {
header( "Location: index.php?login=error" ) ;
}
要約すると、何らかの理由で&&
パーツが正しく機能していないようです。誰かがコードを手伝ってくれて、セキュリティを向上させるためにコードを改善できる場所と、これを正しく機能させる方法を教えてくれたら、ありがとうございます。