Автор Тема: Файл с паролями  (Прочитано 5274 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн wheelszeus

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 32
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Файл с паролями
« : 20 Января 2005, 13:48:00 »
Здравствуйте уважаемые! У меня есть текстовый файл passw.txt с паролями такого вида:
Пароль(это шапка)
1111111; 1111112; 1111113

есть форма в которой юзер вводит пароль и далее скрипт обрабатывает это все:
$filename = "passw.txt"; //
$fp = fopen( $filename, "r" ) or die("ошибка"); while ( ! feof( $fp ))
  {
   $line = fgets($fp, 1024);
   $line_array = explode(";", $line);
   $folder = $line_array[0];
   }
   if ($folder == $password)
    {
     echo "Пароль правильный!";
    }
   else
    {
      echo "Пароль неверный!";
    }
?>
но он мне выдает, что неверный всегда! Как сделать так, что б  я мог хранить в файле несколько разных паролей и вход работал корректно?
Заранее спасибо.

Оффлайн Lutik

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 184
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.galiongroup.ru
Файл с паролями
« Ответ #1 : 20 Января 2005, 13:56:58 »
Пробуй так:

$filename 
"passw.txt"// 
$fp fopen$filename"r" ) or die("ошибка"); 
while ( ! 
feof$fp ))
{
$line fgets($fp1024);
$line_array explode(";"$line);
for(
$i=0$i<count($line_array); $i++){
if (
trim($line_array[$i]) == trim($password))
{
echo 
"Пароль правильный!";
}
else
{
echo 
"Пароль неверный!";
}
}
}
Разум когда-нибудь победит

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Файл с паролями
« Ответ #2 : 20 Января 2005, 14:00:50 »
Храни пароли в таком формате: одна строчка - один пароль.


1111111
1111112
1111113



А проверку так делай:


$passwords 
file("passwd.txt");
if (
in_array($your_pass$passwords)) {
  print \
'Пароль верный.\';    
} else {
  print \'Пароль не верный.\';
}


Но: помимо паролей есть еще и логины. Хранить их надо парами. Типа:


user1@1111111
user2@1111112
user3@1111113


и проверка соотвественно:

...
if (
in_array($your_login."@".$your_pass$passwords)) {
...


+ Чтобы совсем хорошо было, храни пароли не в открытом виде, а зашифрованые в [P]MD5[/P].
Не все коту матрица.

Оффлайн wheelszeus

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 32
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Файл с паролями
« Ответ #3 : 20 Января 2005, 14:18:03 »
Всем огромное спасибо! Но пока ничего не получается (((
Lutik: все работает, но если ввести например 2-ой пароль, то он один раз напишет что пароль неверный и после что верный, если ввечти 3-й пароль, то напишет 2 раза неверный и потом верный
в чем тут проблема?
==========
Croaker: если делать как ты предложил, то верный пароль всегда будет только последний... странно

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Файл с паролями
« Ответ #4 : 20 Января 2005, 14:23:43 »
Цитировать
wheelszeus:
если делать как ты предложил, то верный пароль всегда будет только последний...


С чего ты взял?
Не все коту матрица.

Оффлайн wheelszeus

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 32
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Файл с паролями
« Ответ #5 : 20 Января 2005, 14:26:45 »
проверил

Оффлайн wheelszeus

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 32
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Файл с паролями
« Ответ #6 : 20 Января 2005, 14:29:09 »
Если я делаю файл с паролями с логином и паролем и потом вот так обрабатываю, то он всегда выдает что пароль неверный
$passwords = file("password.txt");
if (in_array($login."@".$password, $passwords)) {
  print \'Пароль верный.\';
} else {
  print \'Пароль невеный.\';
}
?>

если делать так, что пароль всегда неверный

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Файл с паролями
« Ответ #7 : 20 Января 2005, 14:34:49 »
Цитировать
wheelszeus:
если делать так, что пароль всегда неверный


Сделай в конце файла


print $login."@".$password

print \
'<pre>\';
print_r($passwords);
print \'</pre>\';


Что выводится?
Не все коту матрица.

Оффлайн wheelszeus

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 32
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Файл с паролями
« Ответ #8 : 20 Января 2005, 14:39:00 »
Croaker
В том и дело, что я ввожу правильный пароль и он должен видеть что он правильный... выводит вот это:
Пароль не верный.user2@124
Array
(
   
  • => user1@123
  • [1] => user2@124

        [2] => user3@125
    )

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Файл с паролями
« Ответ #9 : 20 Января 2005, 17:12:45 »
wheelszeus

А что нам говорит вот такой код в конце файла?


if ($passwords[1] == $login."@".$password) {
    print 
"Пароль и логин совпали.";
} else {
    print \
'Пароль и логин не совпали.\';
}
Не все коту матрица.

Оффлайн Lutik

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 184
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.galiongroup.ru
Файл с паролями
« Ответ #10 : 20 Января 2005, 18:52:02 »
Цитировать
wheelszeus:
 все работает, но если ввести например 2-ой пароль, то он один раз напишет что пароль неверный и после что верный, если ввечти 3-й пароль, то напишет 2 раза неверный и потом верный в чем тут проблема?

Так делай редирек на секретный фаил, как только найдет совпадение. А в начале скрипта поставь какуюто переменную типа:

$err
=null;
$filename "passw.txt"// 
$fp fopen$filename"r" ) or die("ошибка"); 
while ( ! 
feof$fp )) 

$line fgets($fp1024); 
$line_array explode(";"$line); 
for(
$i=0$i<count($line_array); $i++){ 
if (
trim($line_array[$i]) == trim($password)) 

echo 
"Пароль правильный!"

else 

$err="Пароль неверный!"


}
echo 
$err;
Разум когда-нибудь победит

Оффлайн wheelszeus

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 32
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Файл с паролями
« Ответ #11 : 21 Января 2005, 11:17:27 »
Цитировать
Croaker:
А что нам говорит вот такой код в конце файла?

 if ($passwords[1] == $login."@".$password) {print "Пароль и логин совпали.";} else {print \'Пароль и логин не совпали.\';}

Т.е. получается если я ввожу еще один пароль в файл с паролями, то мне придеться дописывать такой блок проверки?

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Файл с паролями
« Ответ #12 : 21 Января 2005, 12:14:22 »
Цитировать
wheelszeus:
Т.е. получается если я ввожу еще один пароль в файл с паролями, то мне придеться дописывать такой блок проверки?


Нет не получается. Этот код нужен для отладки твоего скрипта.
Не все коту матрица.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28