2015-03-03 3 views
-3

Я использую текстовый файл как свою «базу данных».
Я использую его для поиска пользователей.
Моя проблема: он ищет имена и работает, но не ищет пароли.
Я знаю, что это сбивает с толку, но, пожалуйста, смотрите мой код, это намного проще для understeandПроблемы при чтении содержимого из текстового файла

PHP

<?php 
$file = fopen("msskladanj_login/admins.txt","r"); 
$name = "Jonathan"; 
$password = "Jon123"; 

while(!feof($file)){ 
    $array = explode("****",fgets($file)); 
    $file_name = $array[0]; 
    $file_password = $array[1]; 

    if($file_password == $password && $file_name == $name){ 
    echo "Wellcome: ".$file_name; 
    } 
} 
?> 

admins.txt

Jonathan****Jon123 
Arthur****arthur123 

Я не знаю, что такое проблема и как это возможно, они не совпадают, когда они есть?

+0

использовать $ array [0] для имени файла. –

+1

пароли открытого текста в текстовом файле ..... baaaaad. Даже для практических занятий – DevDonkey

+0

@MihirBhatt я отредактировал мой вопрос, извините :) – user3254754

ответ

0

Ваш пароль к файлу получил пустое пространство, просто используйте обрезку.

<?php 
$file = fopen("msskladanj_login/admins.txt","r"); 
$name = "Jonathan"; 
$password = "Jon123"; 

while(!feof($file)){ 
    $array = explode("****",fgets($file)); 
    $file_name = $array[0]; 
    $file_password = $array[1]; 

    if(trim($file_password) == trim($password) && file_name == $name){ 
    echo "Wellcome: ".$file_name; 
    } 
} 
?> 
+0

Спасибо, вы удивительны. :) – user3254754

0

Вы использовали тот же самый индекс массива для пароля и имени. попробуй это.

<?php 
    $file = fopen("msskladanj_login/admins.txt","r"); 
    $name = "Jonathan"; 
    $password = "Jon123"; 

    while(!feof($file)){ 
     $array = explode("****",fgets($file)); 
     $file_name = $array[0]; 
     $file_password = $array[1]; 

     if($file_name == $name){ 
     echo "Wellcome: ".$file_name; 
     } 
    } 
    ?> 
+0

Я отредактировал мой вопрос ... – user3254754

0

У вас есть еще опечатку здесь

if($file_password == $password && file_name == $name){ 

она должна быть $ имя_файла. Если это не решит проблему, попробуйте повторить имя файла и пароль перед оператором de if для каждой строки, и, вероятно, вы обнаружите разницу.

+0

Я пробовал это, и результат эха был таким же, но он все еще не работает ... – user3254754

+0

также попытаться повторить count ($ file_password) и count ($ password) – Szaby

Смежные вопросы