За последние 24 часа нас посетили 36570 программистов и 1718 роботов. Сейчас ищут 870 программистов ...

Авторизация

Тема в разделе "PHP для новичков", создана пользователем smala, 5 июн 2011.

  1. smala

    smala Активный пользователь

    С нами с:
    11 янв 2011
    Сообщения:
    137
    Симпатии:
    0
    подскажите как можно сделать авторизацию пользователей чтобы логин пароль хранились в текстовом файле
     
  2. smala

    smala Активный пользователь

    С нами с:
    11 янв 2011
    Сообщения:
    137
    Симпатии:
    0
    обычный скрипт есть какойто ??
     
  3. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    1. есть голова, чтобы думать
    2. есть руки, чтобы делать
    3. есть функции, чтобы реализовывать

    авторизация - делов минут на 15.

    можно взять скрипт авторизации с использованием базы данных и вместо запросов к базе делать считывание из файла.

    но при этом, возможно, на переделывание уйдёт больше времени, чем на создание с нуля.
     
  4. smala

    smala Активный пользователь

    С нами с:
    11 янв 2011
    Сообщения:
    137
    Симпатии:
    0
    та понятно, просто надо именно в текстовом файле чтоб хранилось, просто так требует компания ))) ну я в общем понял, помозговал, щас сам буду сидеть делать)))
     
  5. smala

    smala Активный пользователь

    С нами с:
    11 янв 2011
    Сообщения:
    137
    Симпатии:
    0
    admin1|pass1|1
    admin2|pass2|2
    ------------------
    логин пароль id
    ----------------------
    вот такие записи будут в текстовом документе, я так понял мне надо масив создавать, чтоб в масив загонялись эти данные, как мне правильно его создать???ну вот чтоб если админ1=админ1 , пароль = пароль , чтоб вывело цифру id, через базу данных проще, но требуется сделать именно без базы данных
     
  6. Alex_pac

    Alex_pac Активный пользователь

    С нами с:
    11 апр 2011
    Сообщения:
    285
    Симпатии:
    1
    Адрес:
    Россия, Тольятти
    текстовый файл сделай формат *.php

    PHP:
    1. <?php /*
    2. ваши данные
    3. ваши данные
    4. ваши данные
    5.  
    6.  
    тогда его никто из браузера скачать и прочитать не сможет.
     
  7. smala

    smala Активный пользователь

    С нами с:
    11 янв 2011
    Сообщения:
    137
    Симпатии:
    0
    Код (Text):
    1. admin1|pass1|1
    2. admin2|pass2|2
    ------------------
    логин пароль id
    ----------------------
    вот такие записи будут в текстовом документе, я так понял мне надо масив создавать, чтоб в масив загонялись эти данные, как мне правильно его создать???ну вот чтоб если админ1=админ1 , пароль = пароль , чтоб вывело цифру id, через базу данных проще, но требуется сделать именно без базы данных
     
  8. smala

    smala Активный пользователь

    С нами с:
    11 янв 2011
    Сообщения:
    137
    Симпатии:
    0
    Подскажите пожалуста, как вытянуть данные из текстового документа, как правильно расформатировать???
    PHP:
    1. admin1|pass1|1
    2. admin2|pass2|2
    разделитель тут "|" ну и строчка
     
  9. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    1. прочитать файл, скопировать в переменную
    2. разбить его по строкам (получим массив, каждая строка - одна запись, или один юзер)
    3. разбить каждую строку на инфу - имя юзера, пароль, ид.

    file_get_contents, explode, циклы.
     
  10. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    че гугл закрылся чтоли
     
  11. smala

    smala Активный пользователь

    С нами с:
    11 янв 2011
    Сообщения:
    137
    Симпатии:
    0
    PHP:
    1. $handle = fopen("1.php", "r");
    2. while (!feof($handle)) {
    3.     $buffer = fgets($handle, 4096);
    4.     $data = $buffer;
    5. list($user, $pass, $uid) = explode("|", $data);
    6.  
    7. if ($user == $login) { if($pass == $pasw) {echo $uid;} } else {echo "неверные данные";}
    8.  
    9.  
    10. }
    вот кусочек кода, должно выводить только одну переменную '$uid' а выводит еще и "неверные данные", хотя данные введены верно, в чем ошибка ???
     
  12. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    smala
    если пользователей будет не так уж и много, то легче:
    - serialize
    - file_get_contents
    - file

    если же файл будет довольно большим, то придётся всё же бегать вручную по строкам:
    PHP:
    1. <?php
    2.  
    3. $login = 'admin0';
    4. $pasw = 'pass0';
    5.  
    6. $user_id = 0;
    7. $file = fopen("pass.txt", "r");
    8. while(!feof($file)){
    9.   $data = fgets($file, 1024);
    10.   list($uid, $user, $pass) = explode('|', $data);
    11.   if($user == $login && $pass == $pasw){
    12.     $user_id = $uid;
    13.     break;
    14.   }
    15. }
    16.  
    17. if($user_id){
    18.   echo 'User is correct';
    19. } else {
    20.   echo 'User is incorrect';
    21. }
    pass.txt