Я уверен, что я просто что-то пропускаю, и я провел несколько дней, работая над этим, и не могу понять, как это понять.Простой if() не работает как ожидалось
после регистрации на предыдущей странице я получаю имя пользователя и пароль,
$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") ;
}
Таким образом, в целом по какой-то причине &&
часть, кажется, не правильно работать, и если кто-то может мне помочь с кодом и дайте мне знать, где мой код может быть улучшен для повышения уровня безопасности и как сделать эту работу правильно, благодаря
Индексы массива должны быть целыми числами или строками, поэтому '$ record [username]' должно быть '$ record ['username']'. Без кавычек PHP пытается найти константы 'username' /' password'. Документы: http://php.net/manual/en/language.types.array.php – Jasper
'$ adminpassword == $ adminpassword' всегда истинно .... – Wrikken
@Wrikken, это проблема, спасибо, я знал это было что-то простое –