Страница 1 из 2

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

Добавлено: 15 мар 2010, 06:39
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"; ?> 

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

Добавлено: 15 мар 2010, 12:44
Duncon
Я делаю выход из сессии session_destroy(); и переадрисацию на главную а там скрипт сам решает.. (удалять переменную незачем!)
Незачем присваивать переменную просто проверяй if(isset($_SESSION['username'])) юзер...

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

Добавлено: 15 мар 2010, 16:41
reyn90
Duncon писал(а):Незачем присваивать переменную просто проверяй if(isset($_SESSION['username'])) юзер...
Объясни по подробней

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

Добавлено: 15 мар 2010, 18:17
Duncon
Гугл -->> функция isset php

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

Добавлено: 16 мар 2010, 05:56
reyn90
функция isset php
Функция isset — Функция определяет, установлена ли переменная.
У меня вроде юзер автаризован и просто не может быть $_SESSION['username']=""; . Если бы так было то он бы писал что Панэль управления для [тут будет пусто](Панэль управления для ".$_SESSION['username'])А он пишет имя последнего авторизованного.

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

Добавлено: 16 мар 2010, 09:46
Duncon
Ничего не понял.

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

Добавлено: 16 мар 2010, 18:13
reyn90
Ничего не понял.
Твоя функция проверяет установленна переменная или нет
Например $var=""; или $var="12"
А у меня полюбому переменная имеет значение только вот не то каторое хотелось бы

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

Добавлено: 30 апр 2010, 02:03
Fudo
а почему не сделать в базе ГОСТЯ. с усеченными правами) будет все грамотно. и если нужно будет в дальнейшем что-то посерьезнее то будет уже проще переделывать. а то так как-то странно сделано...

Тогда бы ты просто удалял старую сессию и создавал новую как ГОСТЬ. и там бы дальше шли првоерки на то что ему положено видить а что нет...

или может я чего-то непонял???


ну..или как сказал reyn90, после логаута и удаления сессии вместо регистрации переменной, просто проверяй, существует ли сессия..
и если нет, то пользователь будет видеть ограниченный контент, предназначенный только для гостя..
и не будет этих ошибок с именами. просто пусть пишет ГОСТЬ,если сессии нет...

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

Добавлено: 01 май 2010, 00:18
reyn90
Fudo писал(а):а почему не сделать в базе ГОСТЯ. с усеченными правами) будет все грамотно. и если нужно будет в дальнейшем что-то посерьезнее то будет уже проще переделывать. а то так как-то странно сделано...

Тогда бы ты просто удалял старую сессию и создавал новую как ГОСТЬ. и там бы дальше шли првоерки на то что ему положено видить а что нет...

или может я чего-то непонял???


ну..или как сказал reyn90, после логаута и удаления сессии вместо регистрации переменной, просто проверяй, существует ли сессия..
и если нет, то пользователь будет видеть ограниченный контент, предназначенный только для гостя..
и не будет этих ошибок с именами. просто пусть пишет ГОСТЬ,если сессии нет...

После этого получиться что кто зайдёт на сайт будет ГОСТЬ. При регистрации он зарегаеться как (например)user01. Попробует войти: ОК, но на ГЛАВНОЙ СТРАНИЦЕ БУДЕТ С ЛОГИНОМ ГОСТЬ!

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

Добавлено: 02 май 2010, 03:20
Fudo
ну почему. сессия ведь будет если он залогинен -> будет нормальное имя и права доступа...
а если сессии нет - то тогда он гость...
или Вы не знаете что сессия уникальна для каждого юзера? :D как может оно писать ГОСТЬ? если существует сессия. и там есть реальное имя пользователя..

ну это при условии что существуют пару строчек кода,которые проверяют есть ли сессия, и если она есть -> пишет логин, если же ее нет -> гость...