1
Когда я выполняю этот код, пользователь прав, но пропуск не является, почему? Это сводит меня с ума.Сравнение строк не работает php
<?php
$user = $_POST['myusername'];
$pass = $_POST['mypassword'];
$file_handle = fopen("db.txt", "rb");
while (!feof($file_handle)){
$line_of_text = fgets($file_handle);
$parts = explode('=', $line_of_text);
if($parts[0] == $user){
echo $parts[0];
}
if($parts[1] == $pass){
echo $parts[1];
}
}
fclose($file_handle);
?>
ли файл возврата в конце строки? Если это так, то fgets() также читает это, и он будет символом в $ parts [1]. Тест должен быть, если (trim ($ parts [1]) == $ pass) { –
Приведите пример данных, которые не совпадают с вашим кодом. – lanzz
Если вы не делаете это только для учебных целей, вы должны действительно рассмотреть возможность использования базы данных для этого вместо плоского файла! Кроме того, если файл не слишком большой (он будет загружен сразу в память), вы можете быстро перебирать строки: 'foreach (файл ('db.txt') как $ строка)' – ThiefMaster