Задать вопрос
kemply
@kemply
школьник

Почему не работает проверка в PHP?

Есть файл users.php:
function user($login, $password){
    $file = file_get_contents(__DIR__ . '/users.txt');
    $users = explode("\n", $file);

    $all = array();
    foreach($users as $str){
      $temp = explode(' ', $str);
      if( $str[1] ) $all[$temp[0]] = $temp[1];
    }

    if( $all[$login] == $password ) echo 'ok'; // Проверка ложная

    if( $all[$login] && $all[$login] == $password )
      return true;

    return false;
  }

И в том же каталоге файл users.txt
admin pass
Когда я вызываю функцию с Правильным логином и паролем мне возвращает ложный результат.
Хотел узнать, в чем проблема, выяснил, что проверка не проходит. На экран должен был вывести ok, но ничего нет.
При отдельном выводе $all[ $login ] и $password, оба идентичны (pass и pass), но проверка всё равно ложная. Почему?
  • Вопрос задан
  • 193 просмотра
Подписаться 1 Оценить 9 комментариев
Решения вопроса 1
alsopub
@alsopub
Как вариант - лишние пробелы в файле users.txt
Но что более вероятно - переводы строк в users.txt - \r\n, а вы разделяете его только по \n
Соответственно в пароль попадает еще символ \r
Проверить это вы можете выведя strlen обоих паролей.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы