webew
Войти » Регистрация
 
PHP

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

15 марта 2010, 6:21
Автор: reyn90
Вот код

<?
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"; ?>
Добавить комментарий
Отображение комментариев: Древовидное | Плоское

1234ru

Может быть, сессия сохраняется в cookie, а в коде допущена ошибка и при выходе cookie не стираются (механизм работы сайта видит, что cookie есть, и присваивает переменные сессии).
Нужно посмотреть остальные файлы и поискать фрагменты вида setcookie() или $_COOKIE.
То, что не убивает нас, делает нас инвалидами.
16.03.2010, 02:56
Ответить
NO USERPIC

reyn90

механизм работы сайта видит, что cookie есть, и присваивает переменные сессии
Тогда почему он присваевает на странице выхода имя ГОСТЬ а на главной переприсваевает обратно?
Нужно посмотреть остальные файлы и поискать фрагменты вида setcookie() или $_COOKIE.
Таких фрагментов у меня в коде нет и нужно ли их использовать? Я читал что сессиями можно ограничеться вот и пользуюсь сессиями. Но если нужно с сессиями использовать куки то ты объсни простой примерчик пожалуста.
16.03.2010, 05:45
Ответить

1234ru

В начале и в конце скрипта поставьте print_r($_SESSION).
Что показывает при залогинивании и разлогинивании?
То, что не убивает нас, делает нас инвалидами.
18.03.2010, 00:35
Ответить
NO USERPIC

reyn90

При залогинивании показывает логин.При разлогинивании показывает ГОСТЬ.Когда перехожу на главную, то показывает логин.
18.03.2010, 06:27
Ответить

1234ru

А у Вас в адресах страниц нет фрагментов вида PHPSESSID=... ?
То, что не убивает нас, делает нас инвалидами.
18.03.2010, 17:00
Ответить
NO USERPIC

reyn90

Нет нету
20.03.2010, 00:31
Ответить

1234ru

Попробуйте после перехода на главную нажать Ctrl+F5 (возможно, у Вас браузер страницу закешировал, и показывается её устаревшая версия; Ctrl+F5 принудительно запросит страницу с сервера заново)
То, что не убивает нас, делает нас инвалидами.
21.03.2010, 23:25
Ответить
NO USERPIC

reyn90

нажать Ctrl+F5
И это непомогло. Мне кажется что где в коде ошибка. Я поищу а потом напишу.
22.03.2010, 06:35
Ответить
Добавить комментарий
Отображение комментариев: Древовидное | Плоское
© 2008—2017 webew.ru, связаться: x собака webew.ru
Сайт использует Flede и соответствует стандартам WAI-WCAG 1.0 на уровне A.
Rambler's Top100