За последние 24 часа нас посетил 54171 программист и 1530 роботов. Сейчас ищет 1161 программист ...

Реализация кнопки "Выход" в личном кабинете

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

  1. gem

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

    С нами с:
    6 янв 2011
    Сообщения:
    51
    Симпатии:
    0
    Всем доброго времени суток
    пишу раздел админки для своего сайта
    и сталкнулся с такой проблемой
    когда пользователь ввел логи и пароль открывается главная страница личного кабинета,
    все прекрастно работает, но как сделать так чтобы при нажатии кнопки Выход его перекидывало на главную страницу сайта,
    и кода он опять пытался зайти в личный кабинет у него снова запрашивался пароль
    вот кстати скрипт подключаемый к каждому файлу личного кабинета


    PHP:
    1.  
    2. <?php
    3. include("inc/mysql.php");
    4.  
    5. if (!isset($_SERVER['PHP_AUTH_USER']))
    6.  
    7. {
    8.         Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
    9.         Header ("HTTP/1.0 401 Unauthorized");
    10.         exit();
    11. }
    12.  
    13. else {
    14.         if (!get_magic_quotes_gpc()) {
    15.                 $_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);
    16.                 $_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);
    17.         }
    18.  
    19.         $query = "SELECT pass FROM users WHERE login='".$_SERVER['PHP_AUTH_USER']."'";
    20.         $lst = @mysql_query($query);
    21.  
    22.         if (!$lst)
    23.         {
    24.             Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
    25.         Header ("HTTP/1.0 401 Unauthorized");
    26.         exit();
    27.         }
    28.  
    29.         if (mysql_num_rows($lst) == 0)
    30.         {
    31.            Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
    32.            Header ("HTTP/1.0 401 Unauthorized");
    33.            exit();
    34.         }
    35.  
    36.         $pass =  @mysql_fetch_array($lst);
    37.         if ($_SERVER['PHP_AUTH_PW']!= $pass['pass'])
    38.         {
    39.             Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
    40.            Header ("HTTP/1.0 401 Unauthorized");
    41.            exit();
    42.         }
    43.  
    44.  
    45. }
    46.  
    47.  
    48.  
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    разрушаешь сессию и редиректишь на главную. две строки =)
     
  3. make.kz

    make.kz Активный пользователь

    С нами с:
    25 апр 2011
    Сообщения:
    3
    Симпатии:
    0
    Код (Text):
    1.  
    2. include("mysql.php");
    3. session_start();
    4. $active = mysql_query("UPDATE users SET active='0' WHERE login='$_SESSION[login]'");
    5. if($active ==FALSE){
    6. exit(mysql_error());
    7. }
    8. if (empty($_SESSION['login']) or empty($_SESSION['password']))
    9. {
    10. //если не существует сессии с логином и паролем, значит на этот файл попал невошедший пользователь. Ему тут не место. Выдаем сообщение об ошибке, останавливаем скрипт
    11. exit ("Доступ на эту страницу разрешен только зарегистрированным пользователям. Если вы зарегистрированы, то войдите на сайт под своим логином и паролем<br><a href='index.php'>Главная страница</a>");
    12. }
    13.  
    14. unset($_SESSION['password']);
    15. unset($_SESSION['login']);
    16. unset($_SESSION['id']);// уничтожаем переменные в сессиях
    17.  
    18. setcookie("auto", "", time()+9999999);//очищаем автоматический вход
    19. exit("<html><head><meta http-equiv='Refresh' content='0; URL=index.php'></head></html>");
    20. // отправляем пользователя на главную страницу.
     
  4. make.kz

    make.kz Активный пользователь

    С нами с:
    25 апр 2011
    Сообщения:
    3
    Симпатии:
    0
    Код (Text):
    1.  
    2. include("mysql.php");
    3. session_start();
    4. $active = mysql_query("UPDATE users SET active='0' WHERE login='$_SESSION[login]'");
    5. if($active ==FALSE){
    6. exit(mysql_error());
    7. }
    8. if (empty($_SESSION['login']) or empty($_SESSION['password']))
    9. {
    10. //если не существует сессии с логином и паролем, значит на этот файл попал невошедший пользователь. Ему тут не место. Выдаем сообщение об ошибке, останавливаем скрипт
    11. exit ("Доступ на эту страницу разрешен только зарегистрированным пользователям. Если вы зарегистрированы, то войдите на сайт под своим логином и паролем<br><a href='index.php'>Главная страница</a>");
    12. }
    13.  
    14. unset($_SESSION['password']);
    15. unset($_SESSION['login']);
    16. unset($_SESSION['id']);// уничтожаем переменные в сессиях
    17.  
    18. setcookie("auto", "", time()+9999999);//очищаем автоматический вход
    19. exit("<html><head><meta http-equiv='Refresh' content='0; URL=index.php'></head></html>");
    20. // отправляем пользователя на главную страницу.
     
  5. siiXth

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

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    header location лучше как по мне. нелюблю я это переходы от php в хтмл и ещё хз как он заработает =)
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768