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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Авторизация и ссылка Выход ?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Viper
Отправлено: 17 Февраля, 2007 - 11:49:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




собстно здесь на сайте в примерах есть авторизация с использованием PHP_AUTH.

вопрос как сделать так чтобы при нажатии на ссылку выход, а потом на Вход снова запрашивался логин/пароль ??


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
valenok Модератор
Отправлено: 17 Февраля, 2007 - 12:23:49
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




$_SESSION = Array(); session_destroy();


-----
Truly yours, Sasha.
 
My status
 Top
-SCHATTEN-
Отправлено: 20 Февраля, 2007 - 19:41:40
Post Id



Пользователь


Покинул форум
Сообщений всего: 615
Дата рег-ции: Июль 2006  
Откуда: Оттуда !


Помог: 0 раз(а)




Если там используется $_SESSION то при входе он создает идентефикатор сессии... и при последующем входе (без уничтожения этого идентификатора) он берет старый и заходит..

Поэтому надо просто мделать уничтожение этой сессии:
valenok пишет:
$_SESSION = Array(); session_destroy();


 
 Top
Viper
Отправлено: 21 Февраля, 2007 - 08:30:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




а это справедливо ли для HTTP Basic Auth ?


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
evgenijj
Отправлено: 21 Февраля, 2007 - 08:38:10
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




При HTTP авторизации создаются две переменные
$_SERVER['PHP_AUTH_USER']
$_SERVER['PHP_AUTH_PW']
Из книги Антона Орлова "PHP: полезные приемы"
Цитата:

Однако переменные $PHP_AUTH_USER и $PHP_AUTH_PW - не простые. Если они один раз были определены, то впоследствии они передаются всем web-страницам, которые загружаются в то же самое окно браузера, где произошла авторизация! Иными словами, если по каким-то причинам требуется проверять логин и пароль посетителя на каждой из страниц сайта (скажем, выводить разную информацию авторизованным и неавторизованным посетителям), то каждый раз запрашивать эти данные не нужно - достаточно использовать значения переменных $PHP_AUTH_USER и $PHP_AUTH_PW. Значения данных переменных теряются в случае закрытия окна браузера, в котором изначально произошла авторизация (а в другие окна они и не передаются). При выходе за пределы виртуального сервера, на котором произошла авторизация (обычно его границы совпадают с границами аккаунта), данные переменные перестают передаваться страницам, однако при повторном входе на исходный адрес вновь становятся доступными (это обеспечение безопасности - за пределами вашего виртуального сервера логины и пароли ваших посетителей никто узнать из их браузеров не сможет).

Соответственно можно попробовать
unset( $_SERVER['PHP_AUTH_USER'] );
unset( $_SERVER['PHP_AUTH_PW'] );
 
 Top
Viper
Отправлено: 21 Февраля, 2007 - 10:00:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




почему то не работает.
ссылка вида ?action=exit

if ((isset($_GET['action'])) && ($_GET['action'] != "")) {
unset($_SERVER['PHP_AUTH_USER']);
unset($_SERVER['PHP_AUTH_PW']);
header("Location: ../index.php");
}
т.е. header("Location: ../index.php"); - работает, но не работает unset для переменных


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
evgenijj
Отправлено: 21 Февраля, 2007 - 11:38:05
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




У меня работает:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. if ( (isset($_GET['action'])) and ($_GET['action'] == "exit") )
  5. {
  6.     unset($_SERVER["PHP_AUTH_USER"]);
  7.     unset($_SERVER["PHP_AUTH_PW"]);
  8. }
  9.  
  10. if ( isset($_SERVER["PHP_AUTH_USER"])
  11.      and ($_SERVER["PHP_AUTH_USER"] == "login")
  12.      and ($_SERVER["PHP_AUTH_PW"] == "pass") )
  13. {
  14.     echo "<p >Вы вошли в защищенную зону</p>";
  15.     echo "<p ><a href='auth2.php'>Следующая страница</a></p>";
  16.     echo "<p ><a href='auth.php?action=exit'>Выйти</a></p>";
  17. }
  18. else
  19. {
  20.     Header("WWW-Authenticate: Basic realm=\"Защищенная зона\"");
  21.     Header("HTTP/1.0 401 Unauthorized");
  22.     // Если пользователь нажал кнопку "Отмена"
  23.     exit("<p >Нет доступа</p>");
  24. }
  25.  
  26. ?>
  27.  

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. if ( isset($_SERVER["PHP_AUTH_USER"])
  5.      and ($_SERVER["PHP_AUTH_USER"] == "login")
  6.      and ($_SERVER["PHP_AUTH_PW"] == "pass") )
  7. {
  8.     echo "<p >Вы находитесь в защищенной зоне</p>";
  9.     echo "<p ><a href='auth.php'>Предыдущая страница</a></p>";
  10. }
  11. else
  12. {
  13.     exit("<p >Нет доступа</p>");
  14. }
  15.  
  16. ?>
  17.  
 
 Top
-SCHATTEN-
Отправлено: 22 Февраля, 2007 - 18:27:21
Post Id



Пользователь


Покинул форум
Сообщений всего: 615
Дата рег-ции: Июль 2006  
Откуда: Оттуда !


Помог: 0 раз(а)




Viper пишет:
почему то не работает.
ссылка вида ?action=exit

if ((isset($_GET['action'])) && ($_GET['action'] != "")) {
unset($_SERVER['PHP_AUTH_USER']);
unset($_SERVER['PHP_AUTH_PW']);
header("Location: ../index.php");
}
т.е. header("Location: ../index.php"); - работает, но не работает unset для переменных


Вот этой скобки там быть недолжно (отмечена красным) !

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB