проблемы с сессиями (сохранение значения переменной)...

flashWomen

Guest
проблемы с сессиями (сохранение значения переменной)...

Честным образом прочитала http://phpfaq.ru/sessions и похожие топики, но все равно у меня не получается сохранить переменные в сессии, как надо.
Взывaю к коллективному разуму :)

если вкратце
1. в auth.php:
PHP:
session_name("Tool");
session_start();
...
$_SESSION['sess_login'] = $username;
...
header("Location: bla-bla.php?".session_name().'='.session_id());
2. bla-bla.php
PHP:
session_start();

echo "<BR>Login: ". $_SESSION['sess_login'];
ничего не выдает :(
но зато здесь:
PHP:
foreach ($_REQUEST as $key=>$value){echo "<BR>$key: $value";}
видно, что сессия действително стартовала, только почему-то никаких значений не сохранила...

output:
Tool: 8ca35e42d8d0034beac03100c80ef0b0

Помогите - почему при перенаправлении не сохраняются переменные сессии?
 

Кром

Новичок
>session_name("Tool");

Не надо.

>$_SESSION['sess_login'] = $username;
А в $username есть что нибудь?
 

SiMM

Новичок
Кстати, да... либо во втором скрипте не хватает session_name
 

flashWomen

Guest
Автор оригинала: SiMM
PHP:
foreach (array('use_cookies', 'use_trans_sid','use_only_cookies') as $v)
  echo $v.'='.intval(ini_get('session.'.$v))."<br>\n";
PHP FAQ: Самые основы. Просмотр обмена HTTP заголовками
output:
PHP:
use_cookies=1
use_trans_sid=0
use_only_cookies=0
session_name убрала, ничего не поменялось.

v $username есть значение (и кстати, когда я для теста выводила значение без перенаправления - все прекрасно сохранялось.)

кстати, скрипт из примера
PHP:
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
echo "Вы обновили эту страницу ".$_SESSION['counter']++." раз.<br>
<a href=".$_SERVER['PHP_SELF'].'?'.session_name().'='.session_id().">обновить";
у меня тоже работает.

не работает только при перенаправлении
 

flashWomen

Guest
Автор оригинала: Кром
Покажи серверные и броузерные http заголовки.
имеешь ввиду ето?
PHP:
$headers = getallheaders();
while (list ($header, $value) = each ($headers)) {
    echo "<BR>Header  $header: $value<br />\n";
}
output:
Header Accept: application/x-shockwave-flash,text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,*/*;q=0.1

Header Accept-Charset: KOI8-R,utf-8;q=0.7,*;q=0.7

Header Accept-Encoding: gzip, deflate, compress;q=0.9

Header Accept-Language: de-de,en;q=0.7,en-us;q=0.3

Header Connection: keep-alive

Header Cookie: PHPSESSID=5870c2c2a8e941eae630bab2ec8d67cf

Header Host: bla-bla-host

Header Keep-Alive: 300

Header Referer: http://bla-bla-host/bla-bla.php

Header User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.2.1) Gecko/20031007
 

Кром

Новичок
>имеешь ввиду ето?

Нет, я имею ввиду то что написано по ссылке, которую тебе дали. Установи себе программу ieHTTPHeaders (в любом случае на будущее пригодится) и скопируй заголовки сюда. Как от сервера так и от клиента.
 

flashWomen

Guest
Автор оригинала: Кром
Нет, я имею ввиду то что написано по ссылке, которую тебе дали. Установи себе программу ieHTTPHeaders (в любом случае на будущее пригодится) и скопируй заголовки сюда. Как от сервера так и от клиента.
JO!!!
какая классная штука! спасибо большое.
единственное что - оутпут огромных размеров получился - есть возможность тут ето как аттачмент привесить?
 

Кром

Новичок
Нет большой лог тут не нужен. Приведи здесь четыре заголовка.

Два для auth.php (http headers туда - обратно)
И два для bla-bla.php (http headers туда - обратно)
Остальное интереса не представляет.
 

flashWomen

Guest
вот. я правда на всякий случай еше один кусок оттуда добавила...
так что не 4, а 6 заголовков.
//--------------1----------------
GET /admin/admin/ HTTP/1.1
Accept: */*
Referer: http://bla-bla-host/admin/admin/auth.php
Accept-Language: de
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SBS; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
Host: bla-bla-host
Connection: Keep-Alive
Cookie: PHPSESSID=2deecfceefbd760806b6321e909d11b7

HTTP/1.1 200 OK
Date: Tue, 12 Jul 2005 14:30:57 GMT
Server: Apache/1.3.28 (Linux/SuSE) mod_ssl/2.8.15 OpenSSL/0.9.7b PHP/4.3.3
Last-Modified: Tue, 25 May 2004 08:45:06 GMT
ETag: "115a6-d7-40b30792"
Accept-Ranges: bytes
Content-Length: 215
Keep-Alive: timeout=15, max=98
Connection: Keep-Alive
Content-Type: text/html



//------------2---------------
//posle authentifikazii
GET /admin/admin/auth.php?username=user&password=123&act=auth HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: http://bla-bla-host/admin/admin/auth.php
Accept-Language: de
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SBS; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
Host: bla-bla-host
Connection: Keep-Alive
Cookie: PHPSESSID=2deecfceefbd760806b6321e909d11b7

HTTP/1.1 302 Found
Date: Tue, 12 Jul 2005 14:33:40 GMT
Server: Apache/1.3.28 (Linux/SuSE) mod_ssl/2.8.15 OpenSSL/0.9.7b PHP/4.3.3
X-Powered-By: PHP/4.3.3
Set-Cookie: PHPSESSID=2deecfceefbd760806b6321e909d11b7; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Location: http://bla-bla-host/admin/admin/bla-bla.php?PHPSESSID=2deecfceefbd760806b6321e909d11b7
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html

GET /admin/admin/bla-bla.php?PHPSESSID=2deecfceefbd760806b6321e909d11b7 HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: http://bla-bla-host/admin/admin/auth.php
Accept-Language: de
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SBS; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
Host: bla-bla-host
Connection: Keep-Alive
Cookie: PHPSESSID=2deecfceefbd760806b6321e909d11b7


HTTP/1.1 200 OK
Date: Tue, 12 Jul 2005 14:33:40 GMT
Server: Apache/1.3.28 (Linux/SuSE) mod_ssl/2.8.15 OpenSSL/0.9.7b PHP/4.3.3
X-Powered-By: PHP/4.3.3
Set-Cookie: PHPSESSID=2deecfceefbd760806b6321e909d11b7; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Keep-Alive: timeout=15, max=99
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
 

Кром

Новичок
Судя по заголовкам сессии работают правильно. Значит проблема в том, что у тебя просто ничего не пишется в сессию. Либо после редиректа ты просто трешь переменную $username;
Решение - метод в форме авторизации поменять на post и при добавлении значения в сессию делать проверку:
PHP:
if ('POST' == $_SERVER['REQUEST_METHOD'])
{
$_SESSION['sess_login'] = $username;
}
 

flashWomen

Guest
ничего не получается! :((
все сделала, как сказал, а ресультаты все те же - переменные не сохраняются :(

вот добавила для теста прямо перед перенаправлением в auth.php

PHP:
$_SESSION['test']='Hello world!';
header("Location: _http://bla-bla-host/admin/admin/bla-bla.php?".session_name().'='.session_id());
вместо "_http" в скрипте естественно "http" .
и вывожу в bla-bla.php
PHP:
echo "TEST  ".$_SESSION['test'];
и ничего :(((

mrak kakoj-to...
 

Кром

Новичок
Значит начинай все заново.
Создай два новых файла и напиши в них только то, что относится к сессии. И ничего больше. Потестируй их и сообщи о результатах.
 

SiMM

Новичок
flashWomen, тебе же сказали убрать session_name в auth.php либо же добавить его в bla-bla.php.
 

flashWomen

Guest
всем спасибо! особенно мудрому Крому :)
в "голом" виде у меня все работает...
точно, где-то данные затираются. :(
хотя я в упoр не пойму - где.
в моих скриптах ети переменные точно не используются и вообще, там не так уж и много кода, чтобы все так запуталось ... буду искать.

ПС
@SiMM:
я ето сразу тогда и сделала :)
 
Сверху