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
Форумы портала PHP.SU :: Версия для печати :: Помогите пожалуйста, сделать кнопочку "logout"...
Форумы портала PHP.SU » PHP » Программирование на PHP » Помогите пожалуйста, сделать кнопочку "logout"...

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

1. M@X - 09 Июля, 2007 - 16:14:35 - перейти к сообщению
Помогите пожалуйста сделать кнопочку "logout", чтобы стерся пароль и имя юзера с памяти браузера(если можно) и появлялась страничка регистрации заново. Заранее спасибо!
2. evgenijj - 09 Июля, 2007 - 16:40:22 - перейти к сообщению
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.  
3. M@X - 09 Июля, 2007 - 16:51:09 - перейти к сообщению
Спасибо большое Евгений, буду разбираться!
4. evgenijj - 09 Июля, 2007 - 17:03:50 - перейти к сообщению
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 >
5. Zeta-johns - 09 Июля, 2007 - 17:23:11 - перейти к сообщению

забыли эту функцию использовать
6. M@X - 09 Июля, 2007 - 17:57:46 - перейти к сообщению
Я сделал через форму и строку в index.php я написал следующую:
if ( isset( $_POST['logout']) ) { unset( $_SESSION['logged'] ); }

Все работает, спасибо Евгений.
7. evgenijj - 09 Июля, 2007 - 19:19:25 - перейти к сообщению
Zeta-johns пишет:
забыли эту функцию использовать

А зачем я ее должен использовать? Пусть у нас есть Интернет-магазин. В массиве $_SESSION я храню много разной информации - например, покупательскую корзину, список просмотренных товаров и т.п. При использовании session_destroy() я потеряю всю эту информацию.
8. -SCHATTEN- - 10 Июля, 2007 - 14:18:06 - перейти к сообщению
M@X
Если данные хранятся к куках то вместо массива $_SESSION пиши $_COOKIE .

 

Powered by ExBB FM 1.0 RC1