[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Потеря сессии при открытии файла по ссылке
zvezda_t
Здравствуйте!
Скажите пожалуйста как быть в такой ситуации?

если я регистрирую сессию, а потом открываю файл file1.php через ссылку:


print "val_ses=".$_SESSION['val_ses']; //показывает значение правильно
echo "<A HREF=file/file1.php?a=".$id.">документ № ".$id."</A>";


file1.php:
<?php 

//зарегистрировать сеанс
session_start();

print "ses=".$_SESSION['val_ses'];

if(isset($_GET['a']))
{
//подключение к БД и вывод документа
}

?>



То в файле file1.php ошибка :

Цитата
Notice: Undefined index: val_ses in C:\www\file\file1.php on line 6




Спустя 1 час, 13 минут, 3 секунды (24.08.2010 - 08:00) Basili4 написал(а):
zvezda_t
Сессия здесь не причем у тебя индекс не известный val_ses

Спустя 1 минута, 48 секунд (24.08.2010 - 08:02) zvezda_t написал(а):
а почему он не известный?
я же зарегистрировала его перед тем как осуществить переход по ссылке...

Спустя 42 секунды (24.08.2010 - 08:03) Basili4 написал(а):
zvezda_t
в коде не видно. покажи кусок кода где он есть
Цитата
Notice: Undefined index: val_ses in C:\www\file\file1.php on line 6
к тому же ошибка сама говорит за себя

Спустя 54 секунды (24.08.2010 - 08:04) olgatcpip написал(а):
удивила. на нотисы обращаешь внимание smile.gif) молодец.
А мне как-то сказали что это не важно, и я не стала на них обращать внимание, но сейчас чет-то мне не нравится когда их столько много.......

Спустя 2 минуты, 32 секунды (24.08.2010 - 08:06) zvezda_t написал(а):
Цитата (olgatcpip @ 24.08.2010 - 05:04)
удивила. на нотисы обращаешь внимание smile.gif) молодец.
А мне как-то сказали что это не важно, и я не стала на них обращать внимание, но сейчас чет-то мне не нравится когда их столько много.......

не поняла...
как на них внимание не обращать - если из за того что $_SESSION['val_ses']- у меня не определена - дальше код не работает...

Basili4
дописала в самом начале...

Спустя 1 минута, 44 секунды (24.08.2010 - 08:08) Basili4 написал(а):
zvezda_t
Ты скажи починила свой код или нет ?

Спустя 55 секунд (24.08.2010 - 08:09) zvezda_t написал(а):
Цитата (Basili4 @ 24.08.2010 - 05:08)
zvezda_t
Ты скажи починила свой код или нет ?

нет не работает...

Спустя 4 минуты, 1 секунда (24.08.2010 - 08:13) Basili4 написал(а):
zvezda_t
Тогда код покажи который к делу отношение имеет. Если не хочеешь

в file1.php: после session_start()

пиши print_r(session_start() );

и смотри что есть а чего нету.

Спустя 7 минут, 44 секунды (24.08.2010 - 08:21) linker написал(а):
А куки случайно себе недавно не отключали?

Спустя 1 минута, 6 секунд (24.08.2010 - 08:22) zvezda_t написал(а):
print_r(session_start() );// вернула: 1

foreach($_SESSION as $key=>$val)
{
echo $key."=".$val;
}
//пусто

Спустя 1 минута, 19 секунд (24.08.2010 - 08:23) zvezda_t написал(а):
Цитата (linker @ 24.08.2010 - 05:21)
А куки случайно себе недавно не отключали?

как проверить?

А это может быть из-за cms Joomla?

Спустя 3 минуты (24.08.2010 - 08:26) linker написал(а):
В настройках браузера. Просто, если в настройках PHP предписано использовать куки для хранения хэша сессии, а их вдруг отключили, то нифига не будет работать.

Спустя 36 минут, 56 секунд (24.08.2010 - 09:03) twin написал(а):
В обоих файлах стартовать надо сессию.
//зарегистрировать сеанс
session_start();
print "val_ses=".$_SESSION['val_ses']; //показывает значение правильно
echo "<A HREF=file/file1.php?a=".$id.">документ № ".$id."</A>";


//зарегистрировать сеанс
session_start();

print "ses=".$_SESSION['val_ses'];

if(isset($_GET['a']))
{
//подключение к БД и вывод документа
}


Спустя 4 минуты, 28 секунд (24.08.2010 - 09:08) twin написал(а):
olgatcpip
Цитата
А мне как-то сказали что это не важно, и я не стала на них обращать внимание, но сейчас чет-то мне не нравится когда их столько много.
Зря. Совсем недавно разбирали мистическую ситуацию. По логике так быть не должно - в хроме не ставилась кука, а в других бразерах ставилась. Причем только в скрипте. Отдельно работало. Выяснилось, что это из-за нотиса, хотя они были подавлены.

Я в механизм не вникал, но был сильно удивлен.

Спустя 18 минут, 44 секунды (24.08.2010 - 09:26) zvezda_t написал(а):
Цитата (twin @ 24.08.2010 - 06:03)
В обоих файлах стартовать надо сессию.

print "val_ses=".$_SESSION['val_ses']; //показывает значение правильно
echo "<A HREF=file/file1.php?a=".$id.">документ № ".$id."</A>";


в первом файле (где ссылка) сссия стартуется автоматически - там cms Joomla стартует, а вот второй - из за того что я сама его открываю по ссылке - не использую index.php от cms, где все настройки в том числе и запуск сесии видимо...
вот из за этого в нём не видно моей сессии и команда:
Цитата
//зарегистрировать сеанс
session_start();


- не помагла rolleyes.gif

Спустя 30 минут, 19 секунд (24.08.2010 - 09:57) twin написал(а):
так посмотри что будет
echo "<A HREF=file/file1.php?a=".$id . SID .">документ № ".$id."</A>";

Спустя 56 минут, 33 секунды (24.08.2010 - 10:53) Basili4 написал(а):
twin
SID может быть пустым даже при отключенных куках если в php.ini настроено (не помню где использовать только куки)

Спустя 2 минуты, 18 секунд (24.08.2010 - 10:55) twin написал(а):
Я и говорю - посмотрим, что будет.

Спустя 29 секунд (24.08.2010 - 10:56) olgatcpip написал(а):
twin, да, зря поверила, но теперь по возможности стараюсь их исправлять. вот. smile.gif

Спустя 15 минут, 33 секунды (24.08.2010 - 11:11) zvezda_t написал(а):
Цитата (twin @ 24.08.2010 - 06:57)
так посмотри что будет
echo "<A HREF=file/file1.php?a=".$id . SID .">документ № ".$id."</A>";

всё по прежнему...
Цитата
Notice: Undefined index: val_ses in C:\www\file\file1.php on line 6

Спустя 32 минуты, 43 секунды (24.08.2010 - 11:44) Basili4 написал(а):
zvezda_t
а когда на сылку на водишь что с строке состояния пишет ??

Спустя 8 минут, 25 секунд (24.08.2010 - 11:53) zvezda_t написал(а):
Цитата (Basili4 @ 24.08.2010 - 08:44)
zvezda_t
а когда на сылку на водишь что с строке состояния пишет ??

Цитата
http://localhost/file/file1.php?a=1

Спустя 5 минут, 27 секунд (24.08.2010 - 11:58) twin написал(а):
Сделай просто два тестовых файла и посмотри, как сессия себя ведет. Может правда в настройках чего то не так.

Спустя 32 минуты, 39 секунд (24.08.2010 - 12:31) zvezda_t написал(а):
какие настройки, что смотреть? можно по подробнее пожалуйста? rolleyes.gif

Спустя 1 час, 22 минуты, 25 секунд (24.08.2010 - 13:53) twin написал(а):
Ну сделай один файл тупо так:
1.php
<?php
session_start();
$SESSION['test'] = 'test';

?>
<a href="2.php" >пуск</a>

второй так:
2.php
<?php
session_start();
echo $SESSION['test'];

и щелкни. Если видно - значит дело в скрипте. Если нет - в настройках.

Спустя 8 минут, 6 секунд (24.08.2010 - 14:01) Basili4 написал(а):
twin
Она уже так делала

Цитата

<?php
session_start();

$_SESSION['a']=1;

print_r($_SESSION);
?>

<a href="file.php">Файл №2</a>


результат:Цитата
Array ( [__default] => Array ( [session.counter] => 3 [session.timer.start] => 1282633044 [session.timer.last] => 1282633052 [session.timer.now] => 1282633053 [session.client.browser] => Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) [registry] => JRegistry Object ( [_defaultNameSpace] => session [_registry] => Array ( [session] => Array ( [data] => stdClass Object ( ) ) ) [_errors] => Array ( ) ) [user] => JUser Object ( [id] => 0 [name] => [username] => [email] => [password] => [password_clear] => [usertype] => [block] => [sendEmail] => 0 [gid] => 0 [registerDate] => [lastvisitDate] => [activation] => [params] => [aid] => 0 [guest] => 1 [_params] => JParameter Object ( [_raw] => [_xml] => [_elements] => Array ( ) [_elementPath] => Array ( [0] => C:\wamp\www\libraries\joomla\html\parameter\element ) [_defaultNameSpace] => _default [_registry] => Array ( [_default] => Array ( [data] => stdClass Object ( ) ) ) [_errors] => Array ( ) ) [_errorMsg] => [_errors] => Array ( ) ) ) [DBCONNECT] => 1 [valid_user] => 2 [valid_role] => 1 [rr] => Array ( [0] => 107 [1] => 64 [2] => 111 [3] => 110 [4] => 109 [5] => 108 [6] => 106 [7] => 92 [8] => 116 [9] => 115 [10] => 113 [11] => 114 [12] => 22 [13] => 112 ) [a] => 1 )



file.php

<?php
session_start();
?>
Второй файл
<?php
print_r($_SESSION); // Вот здесь смотри что вылезит
?>


результат:
Цитата
Array ( )

Спустя 1 минута, 48 секунд (24.08.2010 - 14:03) zvezda_t написал(а):
Цитата (twin @ 24.08.2010 - 10:53)
Ну сделай один файл тупо так:
1.php
<?php
session_start();
$SESSION['test'] = 'test';

?>
<a href="2.php" >пуск</a>

второй так:
2.php
<?php
session_start();
echo $SESSION['test'];

и щелкни. Если видно - значит дело в скрипте. Если нет - в настройках.

сделала.
Так два файлика - работают!

Спустя 2 минуты, 19 секунд (24.08.2010 - 14:05) Basili4 написал(а):
zvezda_t
После клика на ссылку пишет test ?

Спустя 1 минута, 52 секунды (24.08.2010 - 14:07) zvezda_t написал(а):
Цитата (Basili4 @ 24.08.2010 - 11:05)
zvezda_t
После клика на ссылку пишет test ?

да.

НО- это я отдельно от cms два файлика сделала.
а если тоже самое вставляю в свой код - не работает...

Спустя 4 минуты, 22 секунды (24.08.2010 - 14:12) Basili4 написал(а):
Значит дело не в настройках. Причина в коде....

Спустя 35 минут, 32 секунды (24.08.2010 - 14:47) zvezda_t написал(а):
причина может в cms?
я когда в свой первый файл вставляю:
//зарегистрировать сеанс
session_start();


выходит:
Цитата
A session had already been started - ignoring session_start()

Спустя 57 минут, 1 секунда (24.08.2010 - 15:44) Basili4 написал(а):
zvezda_t
Это типа сессия стартована

можно вот что по прообывать во втором файле
echo session_name(); и смотри что выходит

Спустя 22 часа, 14 минут, 29 секунд (25.08.2010 - 13:59) zvezda_t написал(а):
Цитата (Basili4 @ 24.08.2010 - 12:44)
zvezda_t
Это типа сессия стартована

можно вот что по прообывать во втором файле
echo session_name(); и смотри что выходит

PHPSESSID

Спустя 16 часов, 58 минут, 22 секунды (26.08.2010 - 06:57) zvezda_t написал(а):
а когда сделала:
echo session_name();

в первом файле - получила буквенно-числовой набор...
из-за этого может не работать?

Спустя 8 минут, 52 секунды (26.08.2010 - 07:06) Basili4 написал(а):
zvezda_t
session_name() возвращает имя сессии. Если именна сессий не совпадают то и переменные сохраненные в одной сессии не доступны в другой. Это нормальный подход. Все что тебе надо это передать имя сессии в свой скрипт. и там её использовать

Спустя 7 минут, 18 секунд (26.08.2010 - 07:13) zvezda_t написал(а):
Цитата (Basili4 @ 26.08.2010 - 04:06)
zvezda_t
session_name() возвращает имя сессии. Если именна сессий не совпадают то и переменные сохраненные в одной сессии не доступны в другой. Это нормальный подход. Все что тебе надо это передать имя сессии в свой скрипт. и там её использовать

а примерчик можно? rolleyes.gif

Спустя 7 минут, 28 секунд (26.08.2010 - 07:21) Basili4 написал(а):
Насчет безопасности не знаю.
<?php
$SID=session_name();
session_start();
$_SESSION['a']=1;
?>
<a href='file.php?SID='.$SID>Жми</a>


втрой файл
<?php
$SID=session_name($_GET['SID']);
session_start();
print_r($_SESSION);
?>

Спустя 6 часов, 13 минут, 51 секунда (26.08.2010 - 13:34) zvezda_t написал(а):
не помогло(
массив $_SESSION во втором файле пуст


_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.