За последние 24 часа нас посетили 15272 программиста и 1671 робот. Сейчас ищут 859 программистов ...

Авторизация на сайте

Тема в разделе "PHP для новичков", создана пользователем seregarem, 27 авг 2008.

Статус темы:
Закрыта.
  1. seregarem

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

    С нами с:
    26 авг 2008
    Сообщения:
    23
    Симпатии:
    0
    Только начинаю работать с PHP, так что если код некорректный, пожалуйста, исправьте. Делаю авторизацию на сайт.
    Скрипт проверки пользователя и создания сессии:
    PHP:
    1.  
    2. function get_ip()
    3. {
    4. return getenv("REMOTE_ADDR");
    5. }
    6.  
    7. function is_user($user, $password){
    8. $fp = fopen("users.txt", "r");
    9. if ($fp){
    10. while ($userinfo = fscanf($fp, "%s%s\n")) {
    11.     list ($user_b, $password_b) = $userinfo;
    12.     if (($user==$user_b)&&($password==$password_b)) return true;
    13. }
    14. fclose($fp);
    15. }
    16. }
    17.  
    18. $user=substr($_POST['name'],0,20);
    19. $password=substr($_POST['pass'],0,20);
    20.  
    21. if (is_user($user, $password)){ /*если пользователь есть в списке, то создаем сессию
    22.     $_SESSION['stat'] = 'administrator';
    23.     $_SESSION['user'] = $user;
    24.     $_SESSION['pass'] = $password;
    25.     $_SESSION['ip'] = get_ip();
    26.     $f = fopen("curuser.txt",a);
    27.     if ($f){
    28.         fwrite($_SESSION['ip']);
    29.     }
    30.  
    31.     Header("Location: secret.php");
    32. }
    33. ?>
    34.  
    Страница, просматривать которую имееет право только зарегеный пользователь:
    PHP:
    1.  
    2. <?php
    3. session_start(); // создаем новую сессию или восстанавливаем текущую
    4. if ($_SESSION['ip']!="192.168.10.29")  
    5.     Header("Location: index.html"); // если ошибка, то перенаправляем на страницу авторизации
    6. ?>
    7. ...
    8. ...
    9. ...
    10.  
    Все, что я смог придумать по теме авторизации - это сравнение ip текущего посетителя со списком ip пользователей сайта, но это, на мой взгляд, неэффективно. Кроме того, при завершении сессии нужно удалять ip из списка ip-адресов - как узнать, что сессия завершена?
    Вопрос: Как можно проверить, что текущий посетитель сайта имеет права доступа к некоторой информации? И если можно, подробно :oops:
     
  2. R22

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

    С нами с:
    24 мар 2008
    Сообщения:
    78
    Симпатии:
    0
    Адрес:
    Odessa
  3. Sofia

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

    С нами с:
    25 сен 2008
    Сообщения:
    969
    Симпатии:
    2
    R22 в ней помойму сам черт ногу сломает :)
     
  4. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
  5. Sofia

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

    С нами с:
    25 сен 2008
    Сообщения:
    969
    Симпатии:
    2
    ага, переделывать ее просто руки отвалятся :) очки понадобятся через сутки с толстыми линзами... видела ее, но к сожалению не подойдет она мне.
     
  6. Anonymous

    Anonymous Guest

    Даме подходят скрипты только от Евгения Попова™.
    А я ведь сразу говорил, надо банить.
     
  7. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    у меня там 137 строк кода, из которых около 50 html
    ну и чиво там может отвалиться? 0о
     
  8. Sofia

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

    С нами с:
    25 сен 2008
    Сообщения:
    969
    Симпатии:
    2
    Горбунов Олег значит тут Вы ответить можете, а в приват нет? все-же прошу ответить в привате, в чем я не права, пока факты в мою сторону... почему-то как жареным пахнет, так сразу в кусты, зато тут пальцы крутить можете. Все с вами понятно, просто ответить нечего. На будущее прошу не отвечать на форуме, так как ваши ответы совершенно бесполезны, или выделяйте их оффтопом.

    Mr.M.I.T. первоначально я и хотела его использовать, так как в поиске он выдался самый первый, я не разобралась куда сесии записывает просто :) вот и сдалась.
     
  9. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    т.е. как это куда сессии записывает 0о
    сессии записывает в сессии, по умолчанию все сессии хранятся в файловой системе....
    главная сессия $_SESSION['user']=array (
    'group'=>значения: user или guest,
    'login'=>значения: логин пользователя если не guest,
    )
    а я его поддерживаю =)
    а не объясняет потому что:
    1. Лень
    2. Всё равно не поймёшь, т.к. знаешь только Поповский код и ничего другого...
    какие например? 0о
     
  10. Anonymous

    Anonymous Guest

    потому что за эти два года я видел таких уже сто раз. И я никому ничего не должен обьяснять.
     
  11. Anonymous

    Anonymous Guest

    В чужой монастырь не лезьте со своим уставом. Тут я правила устанавливаю, а не вы.
    Это последнее предупреждение.
     
  12. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Зы. А что за 2 года?
     
  13. Sofia

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

    С нами с:
    25 сен 2008
    Сообщения:
    969
    Симпатии:
    2
    Mr.M.I.T.
    да просто мне интересно было, почему закрыли тему, оказывается потаму что так захотелось Олегу, он когда захочет, тогда закроет, когда захочет, откроет. Конечно это понятно, права выданы, можно делать все что хочешь, особенно когда совести нет у человека, нужно показать кто в доме хозяин. В ответ вобщем ничего не получила, и даже никаких предупреждений.
    в привате все, на всех форумах знаю что нельзя опубликовывать приватную переписку, хотя очень хочется... Но я уверена на 100% что это будет последнее что я напишу тут, так как Олег там обсалютно не прав, и теперь отмалчивается :) зато на форуме пишет что не обязан, хотя его никто и не обязывал та собственно :) вобщем интересно было-бы почитать. Да вроде и пишу на форуме для новичков с пометкой "если есть время и желание, то прошу помочь".. я так и не поняла, с чего он решил что я его обязываю :)

    Горбунов Олег а до этого куда Вы предупреждения писали? ато я не видела. Может Вы меня с кем-то путаете?
     
  14. Anonymous

    Anonymous Guest

     
  15. Anonymous

    Anonymous Guest

    Опубликуйте.
     
  16. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    да, мне очень интересно какие там могут быть факты в пользу Поповского кода, да ещё и не рабочего 0о
     
  17. Sofia

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

    С нами с:
    25 сен 2008
    Сообщения:
    969
    Симпатии:
    2
    Горбунов Олег
    готово, вот ссылка http://php.ru/forum/viewtopic.php?p=119169#119169

    причем тут Попоский код? я в свою защиту пишу, мне этот ваш Попов и даром ненужен :)
     
  18. Anonymous

    Anonymous Guest

    Sofia, в качестве аватара разрешены только личные фото. Мне это надоело, даю четыре часа на смену или удаление.
     
  19. Sofia

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

    С нами с:
    25 сен 2008
    Сообщения:
    969
    Симпатии:
    2
    Горбунов Олег хоть одно предупреждение прозвучало, конечно сменю на фото. Ведь можете же нормально, когда хотите :)
     
  20. Anonymous

    Anonymous Guest

    Хочу - могу. Хочу - не могу. =)
     
  21. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    надоели оба
     
  22. Anonymous

    Anonymous Guest

    не будь букой
     
Статус темы:
Закрыта.