Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: авторизация без базы данных.
Форумы портала PHP.SU » » Работа с файловой системой и файлами » авторизация без базы данных.

Страниц (1): [1]
 

1. jonston - 05 Мая, 2011 - 11:36:15 - перейти к сообщению
Здравствуйте!Подскажите как использовать текстовый файл для авторизации пользователей?
2. EuGen - 05 Мая, 2011 - 12:15:24 - перейти к сообщению
Примерно так
users.txt
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. admin;cfcd208495d565ef66e7dff9f98764da
  3. user;c4ca4238a0b923820dcc509a6f75849b
  4. someone;c81e728d9d4c2f636f067f89cc14862c
  5.  

В скрипте:
PHP:
скопировать код в буфер обмена
  1.  
  2. class Txt_Auth
  3. {
  4.    const CSV_DELIMITER=';';
  5.    const CSV_MAXLENGTH=1024;
  6.    protected $sAuthFile;
  7.    function __construct($file)
  8.    {
  9.       $this->sAuthFile=$file;
  10.    }
  11.    function auth($login, $password)
  12.    {
  13.       if(!file_exists($this->sAuthFile))
  14.       {
  15.          return false;
  16.       }
  17.       $rFile=fopen($this->sAuthFile, 'r');
  18.       while (($rgData = fgetcsv($rFile, Txt_Auth::CSV_MAXLENGTH, Txt_Auth::CSV_DELIMITER)) !== FALSE)
  19.       {
  20.           if($login==$rgData[0] && md5($password)==$rgData[1])
  21.           {
  22.               return true;
  23.           }
  24.       }
  25.       return false;
  26.    }
  27. }
  28.  

Соответственно использовать например так
PHP:
скопировать код в буфер обмена
  1.  
  2. $login=$_POST['login'];
  3. $password=$_POST['password'];
  4. $rAuth=new Txt_Auth('users.txt');
  5. $bResult=$rAuth->auth($login, $password);
  6. echo($bResult?'Авторизовался':'Неверная пара логин-пароль');
  7.  

 

Powered by ExBB FM 1.0 RC1