Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как реализовать выход и уничтожение сессий(PHP)?

31K
15 марта 2010 года
reyn90
38 / / 07.06.2009
Вот код
Код:
<?
session_start();
unset($_SESSION['username']); // уничтожаем логин
session_destroy();
?>

<?php include("config.php"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Refresh" content="5;URL=index.php"/>
<head>

<title>Главная</title>
<Meta name="Author" Content="Шавалиев Ренальд">
<Meta name="Description" Content="Развлекательный портал У нас как дома!">
<Meta name="Keywords" Content="скачать,бесплатно,футбол,трансляция,сайт,обучение,видеоуроки">
<Meta name="Reply-to" Content="biglec90@mail.ru">
<Meta Name="Date" Content="2010.12.03 20:15">
<Meta Http-equiv="Content-Type" Content="text/html; charset=Windows-1251">
<?php include "css.php"; ?>
</head>

<body class="thrColHybHdr">

 
<div id="container">

  <?php include "header.php"; ?>
 
  <?php include "menu.php"; ?>
 
 
  <div id="mainContent">
    <h1>Мы убили вашу сесию.</h1>
    <?php
   
    /*
                unset($_SESSION['username']); */
                $_SESSION['username']= "Гость";
                echo "Вы теперь ".$_SESSION['username'];
    ?>
   
</div>
    <br class="clearfloat" />
   <?php include "footer.php"; ?>
</div>
</body>
</html>

Когда я вхожу на сайт то запускаю сессию и регестрирую переменную $username как введённы ник. Потом жму на выход(logout.php - его код указан выше) я уничтожаю сессию и дерегестрирую переменную $username? а потом регестрирую её как ГОСТЬ. Потом жму на главную. И там я снова тот кто недавно вводил логин.
Вот кусок кода проверки посетителя. Т.е. кто на сайте $username='ГОСТЬ' или $username='введённы логин'
Это файл accaunt.php
Код:
<div id="sidebar2">
<?php
$name=$_SESSION['username'];
$proverka=mysql_query("SELECT * FROM users WHERE nike='$name'");//эта строчка показывает ошибку -  or die(mysql_error());
$vibor=mysql_num_rows($proverka);
//echo mysql_errno($vibor);
    if(empty($vibor))
   
    {      
        echo "<h3>Панэль управления для гостей ограничена</h3><p><a href='regf.php'>Регистрация</a></p><p><a href='loginf.php'>Вход</a></p>";
    }
    else
    {
        echo "<h3>Панэль управления для ".$_SESSION['username']."</h3><p><a href='stealbblaets.php'>Секретнве таблицы</a></p>
    <p><a href=''>Добавит новость</a></p><p><a href='logout.php'>Выход</a></p>";
        }
?>
 </div>

На главной странице я использую код для отображения данных с этого кода такой:
 
Код:
<?php include "accaunt.php"; ?>
394
15 марта 2010 года
MegaMozg
317 / / 18.03.2006
Я в веб-программировании не силен, но к сведению: панель пишется через Е
274
15 марта 2010 года
Lone Wolf
1.3K / / 26.11.2006
мм. а зачем делать session_destroy(), а потом назначать перемменой сессии какое-то значение?
31K
16 марта 2010 года
reyn90
38 / / 07.06.2009
Цитата:
мм. а зачем делать session_destroy(), а потом назначать перемменой сессии какое-то значение?


А как тогда? Я просто пробоал session_destroy() а потом редирект на главную, но увы и так тоже нет эффекта

Цитата:
Я в веб-программировании не силен, но к сведению: панель пишется через Е


МОЛОДЕЦ!!!

70K
16 марта 2011 года
Juliette
1 / / 16.03.2011
Тебе не нужно регистрировать посетителя, который вышел, как гостя. Как минимум нужно снова запускать новую сессию, чтобы массив переменных сеанса $_SESSION был доступен. Но это глупо. Можно просто в основном сценарии вначале выполнять проверку: если пользователь не авторизирован, то по умолчанию в меню отображается строка "Здравствуйте Гость", а если вошел в систему, то есть if(isset($_SESSION['username']) { echo 'Здравствуйте '.$_SESSION['username'];}

Да и вообще, не вижу смысла делать такую огромную страницу, чтобы только уничтожить сессию и выйти из системы. Можно просто создать страницу содержащую
<?php
session_start();

unset($_SESSION['username']);
session_destroy();
header("Location: http://".$_SERVER['HTTP_HOST']."/");
?>
И запускать ее когда посетитель жмет "Выход". Она перенаправляет его на главную, которая снова проверяет что полз-ль не авторизирован и выводит обычное содержимое и строку "Здравствуйте Гость".
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог