Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Сессии и Logout / 19 сообщений из 19, страница 1 из 1
16.03.2007, 14:46
    #34395992
ova
ova
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Сессии и Logout
Работаю с сессиями, но не получается закрыть (выйти) из сессии.
Вход делаю так
Код: 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
16.03.2007, 15:01
    #34396055
ova
ova
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Сессии и Logout
А еще пробовал session_destroy() - это собственно первое что делал.
...
Рейтинг: 0 / 0
20.03.2007, 16:01
    #34403344
Geen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Сессии и Logout
up

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

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

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

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

Все то же самое
...
Рейтинг: 0 / 0
23.03.2007, 11:37
    #34410988
ghostWWW
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Сессии и Logout
Код: 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
26.03.2007, 10:04
    #34414664
ova
ova
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Сессии и Logout
Ну да практически так и есть, но все равно не работает.
Гляньте пожалуйста мой код, чего там не так
Файл 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
26.03.2007, 11:09
    #34414841
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Сессии и Logout
Забудьте уже раз и навсегда про session_unset и session_register и работайте с массивом $_SESSION как с любым другим массивом (не забывая, разве что, о его суперглобальности).
...
Рейтинг: 0 / 0
26.03.2007, 11:10
    #34414849
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Сессии и Logout
...
Рейтинг: 0 / 0
26.03.2007, 12:07
    #34415088
ova
ova
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Сессии и Logout
*Забудьте уже раз и навсегда про session_unset и session_register и работайте с массивом $_SESSION как с любым другим массивом (не забывая, разве что, о его суперглобальности).
Как я написал выше, я перепробовал все варианты, т.е. изначально не было у меня ни session_unset ни session_register, и работаю я как видите с $_SESSION.
...
Рейтинг: 0 / 0
26.03.2007, 12:29
    #34415194
ghostWWW
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Сессии и Logout
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
26.03.2007, 12:49
    #34415263
ova
ova
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Сессии и Logout
Строка
Код: 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
26.03.2007, 12:57
    #34415314
ghostWWW
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Сессии и Logout
ну тогда перезаписывай переменную и проверяй её на это значение=)
у меня всё работает с этим=)

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

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

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


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