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 :: Помогите пожалуйста, сделать кнопочку "logout"...

 PHP.SU

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


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

> Описание: Как сделать кнопочку "logout"
M@X
Отправлено: 09 Июля, 2007 - 16:14:35
Post Id


Новичок


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


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

[+]


Помогите пожалуйста сделать кнопочку "logout", чтобы стерся пароль и имя юзера с памяти браузера(если можно) и появлялась страничка регистрации заново. Заранее спасибо!
 
 Top
evgenijj
Отправлено: 09 Июля, 2007 - 16:40:22
Post Id



Участник


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if ( isset( $_GET["action"]) and $_GET["action"]=="logout" ) unset( $_SESSION["login"] );
  4. // Если пользователь не авторизован
  5. if ( !isset($_SESSION["login"]) )
  6. {
  7.         // Если форма для ввода логина и пароля была заполнена
  8.         if ( isset($_POST["auth"]) )
  9.         {
  10.                 $logpass = file( "passwords.txt" );
  11.                 foreach ( $logpass as $value )
  12.                 {      
  13.                         list( $login, $password ) = explode( "|", trim( $value ) );
  14.                         if( ($_POST['login']==$login) && ($_POST['password']==$password) )
  15.                         {
  16.                                 // авторизация прошла успешно
  17.                                 $_SESSION['login'] = $_POST['login'];
  18.                                 header( "Location: ".$_SERVER["PHP_SELF"] );
  19.                         }
  20.                 }
  21.         }
  22.         else
  23.         {
  24.                 echo '<form name="authForm" method="post" action="'.$_SERVER["PHP_SELF"].'">';
  25.                 echo 'Логин: <input type="text" name="login" value=""><br/>';
  26.                 echo 'Пароль: <input type="password" name="password" value="">';
  27.                 echo '<input type="submit" name="auth" value="Вход">';
  28.                 echo '</form>';
  29.         }
  30.         die();
  31. }
  32.  
  33. echo "<button type='button' onclick='location.href=\\"index.php?action=logout\\"'>Выйти</button><br/>";
  34.  
  35. // Дальше идет сам скрипт
  36. echo "Hello, ".$_SESSION["login"];
  37. ?>
  38.  
 
 Top
M@X
Отправлено: 09 Июля, 2007 - 16:51:09
Post Id


Новичок


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


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

[+]


Спасибо большое Евгений, буду разбираться!
 
 Top
evgenijj
Отправлено: 09 Июля, 2007 - 17:03:50
Post Id



Участник


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


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




M@X пишет:
Спасибо большое Евгений, буду разбираться!

В чем тут разбираться? Добавилось в твой скрипт всего две строчки
PHP:
скопировать код в буфер обмена
  1.  
  2. if ( isset( $_GET["action"]) and $_GET["action"]=="logout" ) unset( $_SESSION["login"] );
  3. ..........................................................................................
  4. echo "<button type='button' onclick='location.href=\\"index.php?action=logout\\"'>Выйти</button><br/>";
  5.  

Кнопка, по событию onclick загружает в текущее окно документ index.php?action=logout
Здесь методом GET передается переменная action=logout. А в начале скрипта мы проверяем - не хочет ли пользователь выйти - т.е. не установлена ли переменная $_GET["action"]=="logout". Если установлена - удаляем переменную $_SESSION["login"]

Вместо кнопки можно использовать просто ссылку
< a href="index.php?action=logout" >Выйти< /a >
 
 Top
Zeta-johns
Отправлено: 09 Июля, 2007 - 17:23:11
Post Id



Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Июль 2007  
Откуда: Deutschland, Plauen


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

[+]



забыли эту функцию использовать


-----
Amy Lee ab jetzt in Vogtland
 
 Top
M@X
Отправлено: 09 Июля, 2007 - 17:57:46
Post Id


Новичок


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


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

[+]


Я сделал через форму и строку в index.php я написал следующую:
if ( isset( $_POST['logout']) ) { unset( $_SESSION['logged'] ); }

Все работает, спасибо Евгений.
 
 Top
evgenijj
Отправлено: 09 Июля, 2007 - 19:19:25
Post Id



Участник


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


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




Zeta-johns пишет:
забыли эту функцию использовать

А зачем я ее должен использовать? Пусть у нас есть Интернет-магазин. В массиве $_SESSION я храню много разной информации - например, покупательскую корзину, список просмотренных товаров и т.п. При использовании session_destroy() я потеряю всю эту информацию.
 
 Top
-SCHATTEN-
Отправлено: 10 Июля, 2007 - 14:18:06
Post Id



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


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


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




M@X
Если данные хранятся к куках то вместо массива $_SESSION пиши $_COOKIE .
 
 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