powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Сессии и Logout
19 сообщений из 19, страница 1 из 1
(PHP) Сессии и Logout
    #34395992
ova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работаю с сессиями, но не получается закрыть (выйти) из сессии.
Вход делаю так
Код: plaintext
1.
2.
3.
	       session_start();
	       session_register('auth');
	       $_SESSION['auth']="1";
Выход пытаюсь сделать так
Код: plaintext
1.
2.
3.
4.
5.
     session_start();
     $_SESSION['auth']='';
     $_SERVER['PHP_AUTH_USER']
     session_unregister('auth');
     unset($_SESSION['auth']);

Здесь в коде уже просто много намешано, пытался сначала каждую строчку поотдельности, потом вместе, ничего не получается, когда открывашеь страницу, в которой эта сессия работает, то переменная $_SESSION['auth'] равна "1", т.е. сессия продолжает работать, несмотря на прописанный выход. Почему?
...
Рейтинг: 0 / 0
(PHP) Сессии и Logout
    #34396055
ova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще пробовал session_destroy() - это собственно первое что делал.
...
Рейтинг: 0 / 0
(PHP) Сессии и Logout
    #34403344
Geen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
up

дестрой не помог, переменные в массиве почуму-то продолжают жить

Geen
...
Рейтинг: 0 / 0
(PHP) Сессии и Logout
    #34408744
ghostWWW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
session_unset();
session_destroy();

перед дестроем нужен ансет
...
Рейтинг: 0 / 0
(PHP) Сессии и Logout
    #34410501
ova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ghostWWW
Код: plaintext
1.
2.
session_unset();
session_destroy();

перед дестроем нужен ансет
Сейчас так
session_start();
session_unset();
session_destroy();

Все то же самое
...
Рейтинг: 0 / 0
(PHP) Сессии и Logout
    #34410988
ghostWWW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
?php
session_start();

if ($_POST['mode']=="loginning"){
	$result=mysql_query("select * from partners_admin where login='".$_POST['login']."' and pass='".$_POST['pass']."'");
	if (mysql_num_rows($result)== 1 ){
		$row=mysql_fetch_array($result);
		$loginID=$row['id'];
		session_start();
		session_register("loginID");
		header("Location: /partners/edit_partner.php");
	}
	else
		echo "<script>alert('not!');history.back();</script>";
}

if ($_GET['mode']=="logoff"){
	session_unset();
	session_destroy();
	header("Location: /partners/auth.php");
}


?>

<form method="post">
<table align="center">
	<tr>
		<td><input type=text name=login ></td>
		<td><font size="+1">Ëîãèí</font></td>
	</tr>
	<tr>
		<td><input type=password name=pass></td>
		<td><font size="+1">Ïàðîëü</font></td>
	</tr>
	<tr>
		<td colspan= 2  align="center"><input type=submit value=Âõîä></td>
	</tr>
</table>
<input type=hidden name=mode value="loginning">
</form>

всё работает=)
...
Рейтинг: 0 / 0
(PHP) Сессии и Logout
    #34414664
ova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну да практически так и есть, но все равно не работает.
Гляньте пожалуйста мой код, чего там не так
Файл login.php
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
<?php
     $logout = isset($_GET['out']) ? $_GET['out'] : '';
     if ($logout=='1')
     {
	//session_start();
	session_unset();
	session_destroy();
	//$_SESSION['auth']='logout';
	exit;
     }
     $name = isset($_SERVER['PHP_AUTH_USER']) ? $_SERVER['PHP_AUTH_USER'] : '';
     $pass = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : '';
     if ($name<>'')
     {
        require "connect_param.php";

	mysql_connect($hostname,$username,$password) or die("Не могу создать соединение");
	mysql_select_db($dbName) or die(mysql_error());
	$query="SELECT * FROM users where login='$name' ";
	$res=mysql_query($query) or die(mysql_error());
	$number=mysql_num_rows($res);
	if ($number>= 1 )
	{
	    $row=mysql_fetch_array($res);
	    if ($row['password']==$pass) 
	    {
	       session_start();
	       session_register("login");
	       if ($row['type_user']=="admin") $_SESSION['auth']="admin";
	       if ($row['type_user']=="user") $_SESSION['auth']="user";
		   
	       header("Location:". $_GET['url'].".php");
	       exit;
	    }
	} 
	Header("Location:/err401.html ");
     }
	    else Header("Location:/err401.html "); 
	
     Header("WWW-Authenticate: Basic realm=\"Авторизация\"");
     Header("HTTP/1.0 401 Unauthorized");
  ?>

В любом другом файле защищенной зоны стоит проверка
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
    session_start();
    $post_user = isset($_SESSION['auth']) ? $_SESSION['auth'] : '';
	if ($post_user=='')
	{
		header("Location: login.php?url=index");
		exit;
	}

...
Рейтинг: 0 / 0
(PHP) Сессии и Logout
    #34414841
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
Забудьте уже раз и навсегда про session_unset и session_register и работайте с массивом $_SESSION как с любым другим массивом (не забывая, разве что, о его суперглобальности).
...
Рейтинг: 0 / 0
(PHP) Сессии и Logout
    #34414849
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
...
Рейтинг: 0 / 0
(PHP) Сессии и Logout
    #34415088
ova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*Забудьте уже раз и навсегда про session_unset и session_register и работайте с массивом $_SESSION как с любым другим массивом (не забывая, разве что, о его суперглобальности).
Как я написал выше, я перепробовал все варианты, т.е. изначально не было у меня ни session_unset ни session_register, и работаю я как видите с $_SESSION.
...
Рейтинг: 0 / 0
(PHP) Сессии и Logout
    #34415194
ghostWWW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ova *Забудьте уже раз и навсегда про session_unset и session_register и работайте с массивом $_SESSION как с любым другим массивом (не забывая, разве что, о его суперглобальности).
Как я написал выше, я перепробовал все варианты, т.е. изначально не было у меня ни session_unset ни session_register, и работаю я как видите с $_SESSION.

Код: plaintext
1.
header("Location: login.php?url=index");
и тут:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
     $logout = isset($_GET['out']) ? $_GET['out'] : '';
     if ($logout=='1')
     {
	//session_start();
	session_unset();
	session_destroy();
	//$_SESSION['auth']='logout';
	exit;
     }
может быть нужно

Код: plaintext
1.
2.
3.
4.
5.
6.
if ($_GET['url'] == index){
       	//session_start();
	session_unset();
	session_destroy();

}

?
...
Рейтинг: 0 / 0
(PHP) Сессии и Logout
    #34415263
ova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Строка
Код: plaintext
1.
header("Location: login.php?url=index");
это не вызов для выхода, это просто указание откуда пришли в скрипт login.php, дабы потом вернуться на страницу, т.е. в файле index.php при необходимости авторизации стоит
Код: plaintext
1.
  login.php?url=index
А выход осуществляется login?out=1 все ка положено. Более того могу сказать что трассировал весь код, все условия входы и выходы все выполняется идеально, в условие где стоит session_destroy() происходит вход как и нужно, но потом вызываю опять страницу где проиходит проверка
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
session_start();
    $post_user = isset($_SESSION['auth']) ? $_SESSION['auth'] : '';
	if ($post_user=='')
	{
		header("Location: login.php?url=index");
		exit;
	}
переменная сессии 'auth' жива и здорова как ни в чем небывало. Включил вывод всех ошибок - ошибок нет.
...
Рейтинг: 0 / 0
(PHP) Сессии и Logout
    #34415314
ghostWWW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну тогда перезаписывай переменную и проверяй её на это значение=)
у меня всё работает с этим=)

если хочешь,могу на мыло выслать скрипты(оба,с авторизацией и другим скриптом,где выход),а вообще должно работать...
...
Рейтинг: 0 / 0
(PHP) Сессии и Logout
    #34415341
Geen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проверил - работает как нужно

<?php
session_unset();
session_destroy();
header("Location:http://bla-bla-bla");
?>
...
Рейтинг: 0 / 0
(PHP) Сессии и Logout
    #34415414
ova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ghostWWWну тогда перезаписывай переменную и проверяй её на это значение=)
у меня всё работает с этим=)

если хочешь,могу на мыло выслать скрипты(оба,с авторизацией и другим скриптом,где выход),а вообще должно работать...
Да вот попробовал твой скрипт выше - все работает, а мой нет, но у меня через окно авторизации делается, может из-за этого? Сейчас буду еще разбираться.
...
Рейтинг: 0 / 0
(PHP) Сессии и Logout
    #34415441
ova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во, уже попробовал. Если авторизацию делать как выше написали через <form>, то все заработало. А через Header("WWW-Authenticate: Basic realm=\"Авторизация\"") не работает, во блин.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
(PHP) Сессии и Logout
    #37976766
4xtrot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Аналогичная проблема была у меня. Session_destroy() у меня заработала, когда перед в скрипте была session_start().
...
Рейтинг: 0 / 0
(PHP) Сессии и Logout
    #38246833
Grats
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
session_start();
# добавить - проверка условий для выхода
session_unset();
session_destroy();
header("Location: mysite.php");
exit();
# exit обязателен, иначе скрипт продолжится
...
Рейтинг: 0 / 0
(PHP) Сессии и Logout
    #38246840
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
session_write_close();
Не?
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Сессии и Logout
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]