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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
BoJlod9I
Отправлено: 07 Апреля, 2011 - 06:49:48
Post Id


Частый гость


Покинул форум
Сообщений всего: 129
Дата рег-ции: Февр. 2011  


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




CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. include("db.php");
  3. if (!isset($_SERVER['PHP_AUTH_USER']))
  4.  
  5. {
  6.        Header ("WWW-Authenticate: Basic realm=\"Panel of Nad1n\"");
  7.        Header ("HTTP/1.0 401 Unauthorized");
  8.        exit();
  9. }
  10.  
  11. else {
  12.        if (!get_magic_quotes_gpc()) {
  13.                $_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);
  14.                $_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);
  15.        }
  16.        $query = "SELECT password FROM admins WHERE login='".$_SERVER['PHP_AUTH_USER']."'";
  17.        $lst = @mysql_query($query);
  18.  
  19.        if (!$lst)
  20.        {
  21.            Header ("WWW-Authenticate: Basic realm=\"Panel of Nad1n\"");
  22.        Header ("HTTP/1.0 401 Unauthorized");
  23.        exit();
  24.        }
  25.        if (mysql_num_rows($lst) == 0)
  26.        {
  27.           Header ("WWW-Authenticate: Basic realm=\"Panel of Nad1n\"");
  28.           Header ("HTTP/1.0 401 Unauthorized");
  29.           exit();
  30.        }
  31.        $pass =  @mysql_fetch_array($lst);
  32.        if ($_SERVER['PHP_AUTH_PW']!= $pass['password'])
  33.        {
  34.            Header ("WWW-Authenticate: Basic realm=\"Panel of Nad1n\"");
  35.           Header ("HTTP/1.0 401 Unauthorized");
  36.           exit();
  37.        }
  38. }
  39. ?>

Вот скрипт авторизации работает хорошо... Но необходимо сделать logout я только не могу понять как его сделать! Прошу помощи в написании + создании кнопки. Но если такая авторизация не надежная прошу помощи в том что-бы предоставить нормальную авторизацию с выходом.
 
 Top
levchick
Отправлено: 07 Апреля, 2011 - 07:54:35
Post Id



Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Июль 2010  


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




Создайте ссылку подобного вида: index.php?logout=1 и отрабатывайте выход:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. include("db.php");
  4. if ($_GET['logout']==1)
  5. {
  6.        unset($_SERVER['PHP_AUTH_USER']);
  7.        unset($_SERVER['PHP_AUTH_PW']);
  8. }
  9. if (!isset($_SERVER['PHP_AUTH_USER']))
  10.  
  11. {
  12.        Header ("WWW-Authenticate: Basic realm=\"Panel of Nad1n\"");
  13.        Header ("HTTP/1.0 401 Unauthorized");
  14.        exit();
  15. }
  16.  
  17. else {
  18.        if (!get_magic_quotes_gpc()) {
  19.                $_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);
  20.                $_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);
  21.        }
  22.        $query = "SELECT password FROM admins WHERE login='".$_SERVER['PHP_AUTH_USER']."'";
  23.        $lst = @mysql_query($query);
  24.  
  25.        if (!$lst)
  26.        {
  27.            Header ("WWW-Authenticate: Basic realm=\"Panel of Nad1n\"");
  28.        Header ("HTTP/1.0 401 Unauthorized");
  29.        exit();
  30.        }
  31.        if (mysql_num_rows($lst) == 0)
  32.        {
  33.           Header ("WWW-Authenticate: Basic realm=\"Panel of Nad1n\"");
  34.           Header ("HTTP/1.0 401 Unauthorized");
  35.           exit();
  36.        }
  37.        $pass =  @mysql_fetch_array($lst);
  38.        if ($_SERVER['PHP_AUTH_PW']!= $pass['password'])
  39.        {
  40.            Header ("WWW-Authenticate: Basic realm=\"Panel of Nad1n\"");
  41.           Header ("HTTP/1.0 401 Unauthorized");
  42.           exit();
  43.        }
  44. }
  45. ?>
  46.  
 
 Top
BoJlod9I
Отправлено: 07 Апреля, 2011 - 07:56:51
Post Id


Частый гость


Покинул форум
Сообщений всего: 129
Дата рег-ции: Февр. 2011  


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




знал бы не спрашивал =)
 
 Top
levchick
Отправлено: 07 Апреля, 2011 - 07:59:33
Post Id



Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Июль 2010  


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




Посмотрите внимательно на тот код, который я привел:


Вот отработка выхода:
PHP:
скопировать код в буфер обмена
  1.  
  2. ....
  3. if ($_GET['logout']==1)
  4. {
  5.        unset($_SERVER['PHP_AUTH_USER']);
  6.        unset($_SERVER['PHP_AUTH_PW']);
  7. }
  8. ....
  9.  
 
 Top
BoJlod9I
Отправлено: 07 Апреля, 2011 - 08:00:47
Post Id


Частый гость


Покинул форум
Сообщений всего: 129
Дата рег-ции: Февр. 2011  


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




в index вкинул
echo '<a href="index.php?logout=1">logout</a>';
Незнаю может я долго не спал но меня выбрасывает но если я открываю новую вкладку и захожу обратно в админку меня пускает. А с той стр. там где вышел уже не могу зайти =(
 
 Top
levchick
Отправлено: 07 Апреля, 2011 - 08:03:15
Post Id



Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Июль 2010  


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




Хм, мб браузер запоминает логин с паролем?
(Добавление)
Попробуйте вот так вот:

PHP:
скопировать код в буфер обмена
  1. if ($_GET['logout']==1)
  2. {
  3.        unset($_SERVER['PHP_AUTH_USER']);
  4.        unset($_SERVER['PHP_AUTH_PW']);
  5.        session_destroy();
  6. }
 
 Top
BoJlod9I
Отправлено: 07 Апреля, 2011 - 08:06:40
Post Id


Частый гость


Покинул форум
Сообщений всего: 129
Дата рег-ции: Февр. 2011  


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




Хорошо меня рассоеденяет если пароль не сохранять!
Но единственное НО оно меня бесит =) я жму на LogoUt и остаюсь на ссылке index.php?logout=1 тоесть зайти обратно с тойже вкладки на Опера я не могу как решить такую маленьку проблему? Тоесть идет перенаправление на index.php?logout=1 и сразуже на index.php просто
 
 Top
levchick
Отправлено: 07 Апреля, 2011 - 08:09:16
Post Id



Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Июль 2010  


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




Откровенно сказать, не понял вопроса.. Сформулируйте, пожалуйста, более четко и, желательно, со знаками препинания..
 
 Top
BoJlod9I
Отправлено: 07 Апреля, 2011 - 08:11:29
Post Id


Частый гость


Покинул форум
Сообщений всего: 129
Дата рег-ции: Февр. 2011  


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




Если я logout делаю таким способом
PHP:
скопировать код в буфер обмена
  1. if ($_GET['logout']==1)
  2. {
  3.        unset($_SERVER['PHP_AUTH_USER']);
  4.        unset($_SERVER['PHP_AUTH_PW']);
  5.        session_destroy();
  6. }

то у меня сразу пишет
Warning: session_destroy() [function.session-destroy]: Trying to destroy uninitialized session in W:\home\nadin\WWW\admin\start.php on line 7

Warning: Cannot modify header information - headers already sent by (output started at W:\home\nadin\WWW\admin\start.php:7) in W:\home\nadin\WWW\admin\start.php on line 12

Warning: Cannot modify header information - headers already sent by (output started at W:\home\nadin\WWW\admin\start.php:7) in W:\home\nadin\WWW\admin\start.php on line 13
 
 Top
levchick
Отправлено: 07 Апреля, 2011 - 08:12:29
Post Id



Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Июль 2010  


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




Уберите тогода - session_destroy();
 
 Top
BoJlod9I
Отправлено: 07 Апреля, 2011 - 08:12:37
Post Id


Частый гость


Покинул форум
Сообщений всего: 129
Дата рег-ции: Февр. 2011  


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




я имею ввиду сессия остаётся. Если открыть новую ВКЛАДКУ в опере то я обратно буду авторизован
 
 Top
levchick
Отправлено: 07 Апреля, 2011 - 08:14:23
Post Id



Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Июль 2010  


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




BoJlod9I пишет:
Хорошо меня рассоеденяет если пароль не сохранять!



....
 
 Top
BoJlod9I
Отправлено: 07 Апреля, 2011 - 08:14:33
Post Id


Частый гость


Покинул форум
Сообщений всего: 129
Дата рег-ции: Февр. 2011  


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




если убераю session_destroy();
при нажатии Logout мне выдаёт таблицу с авторизацией но незакрывая браузер а просто открывая новую вкладку я обратно авторизван
(Добавление)
НЕ РАССОЕДЕНЯЕТ МЕНЯ
 
 Top
levchick
Отправлено: 07 Апреля, 2011 - 08:17:27
Post Id



Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Июль 2010  


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




Отключите все запоминалки паролей в браузере. Поместите этот код в admin\start.php в самое самое начало.

PHP:
скопировать код в буфер обмена
  1.  
  2. if ($_GET['logout']==1)
  3. {
  4.        unset($_SERVER['PHP_AUTH_USER']);
  5.        unset($_SERVER['PHP_AUTH_PW']);
  6.        session_unset();
  7.        session_destroy();
  8. }
  9.  

(Отредактировано автором: 07 Апреля, 2011 - 08:22:20)

 
 Top
BoJlod9I
Отправлено: 07 Апреля, 2011 - 08:25:18
Post Id


Частый гость


Покинул форум
Сообщений всего: 129
Дата рег-ции: Февр. 2011  


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




При использовании такого
PHP:
скопировать код в буфер обмена
  1. if ($_GET['logout']==1)
  2. {
  3.        unset($_SERVER['PHP_AUTH_USER']);
  4.        unset($_SERVER['PHP_AUTH_PW']);
  5.        session_unset();
  6.        session_destroy();
  7. }
  8.  


Пишет ошибки
Warning: session_destroy() [function.session-destroy]: Trying to destroy uninitialized session in W:\home\nadin\WWW\admin\start.php on line 8

Warning: Cannot modify header information - headers already sent by (output started at W:\home\nadin\WWW\admin\start.php:8) in W:\home\nadin\WWW\admin\start.php on line 13

Warning: Cannot modify header information - headers already sent by (output started at W:\home\nadin\WWW\admin\start.php:8) in W:\home\nadin\WWW\admin\start.php on line 14
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB