Помогите с сессиями

  • Автор темы ALEX_SHEPA
  • Дата начала

ALEX_SHEPA

Guest
Помогите с сессиями

Создал 3 файла, хочу проверить передаётся ли значение сессий по страницам!
php4.3.8, в .ини всё простроено.
файл1:
PHP:
<?php   
session_start();
session_register('sess_var');
$sess_var  = "Hello world";  
echo "Содержимое \$sess_var это $sess_var <br>";  
?> 
<a href="page2.php">next page2</a>
файл2:
PHP:
<?  
session_start();  
echo "Содержимое \$sess_var это $sess_var <br>";  
session_unregister('sess_var');  
?>  
<a href='page3.php'>next page3</a>
файл3:
PHP:
<? 
session_start();
echo "Содержимое \$sess_var это $sess_var";    
session_destroy();  ?>
Но при переходе на вторую страницу содержимое сессии не передаётся!
Включил регистр_глобал, но всё равно не работает!
помогите!
 

vadimiron

Guest
Насколько я понимаю, надо сначало написать, чему переменная равна, а уже потом session_register('sess_var'); , а в твоём же коде ты добавляешь перменную в сессию, которой ещё не существует
Ещё можно так написать $_SESSION['var'] = 'ABC';, но в этом случае не нужно употреблять session_register
 

ALEX_SHEPA

Guest
Автор оригинала: vadimiron
Насколько я понимаю, надо сначало написать, чему переменная равна, а уже потом session_register('sess_var'); , а в твоём же коде ты добавляешь перменную в сессию, которой ещё не существует
В этом разницы нет, мы регистрируем эту переменную как бы на будущее, ведь на первой странице она выводится, а на 2-й уже нет.
И в чём моя ошибка не пойму!
 

IL78

Guest
ALEX_SHEPA, идентификатор сессии передается?

На всякий случай: http://phpfaq.ru/session#bugs

И действуй по-современному, через $_SESSION - и прозрачнее, и надежнее...
 

ALEX_SHEPA

Guest
всё разобрался, у меня в пхп.ини была выключена опция:
session.use_trans_sid
Но тут возник другой вопрос, если у хостера эта опция выключена как мне передавать переменные через куки?
 

IL78

Guest
По умолчанию session.use_cookies включен и куки используются автоматически - если, конечно, они поддерживаются браузером юзера.

к нужным url-ам никто не мешает дописать SID руками, например, так:

PHP:
<a href="script.php?<? echo session_name().'='.session_id(); ?>">
на всякий случай: http://www.phpfaq.ru/sessions#main ;)
 

ALEX_SHEPA

Guest
в том то и дело, что они у меня включены и в браузере и в пхп.ини, но когда я пишу в коде:
setcookie("mycookie","value");
то ничего не создаётся, всмысле никакого файла как при сессиях.
Куда копать? пхпфак уже прочёл или ещё раз предложишь :) ?
 

IL78

Guest
ничего не создаётся, всмысле никакого файла как при сессиях
где не создается? на сервере, что ли?

если echo $_COOKIE['mycookie'] выводит value в любом скрипте после установки куки до конца срока ее действия или закрытия браузера, значит, куки работают, а где какие файлы при этом создаются - не суть важно.
 

ALEX_SHEPA

Guest
я просто не разберусь с cookie, если я пишу setcookie(...), то по идеи они должны сохранятся у клиента на машине! Тогда зачем в пхп.ини прописывать эту опцию:"session.cookie_path"
Т.е. насколько я понял, там должны сохраняться те же cookies что и у клиента?

-~{}~ 07.08.04 03:01:

если echo $_COOKIE['mycookie'] выводит value в любом скрипте после установки куки до конца срока ее действия или закрытия браузера, значит, куки работают,
вот я и написал:
PHP:
setcookie("sasha","boy"); 
 echo $_COOKIE['sasha'];
но ничего не вывело.
В чём тут дело?

-~{}~ 07.08.04 03:04:

даааа, 2-ночи а нам не спиться, решаем глобальные проблемы :
СЕССИИ---ЦООКИИ :)
 

IL78

Guest
какой смысл в куках на сервере?

session.cookie_path specifies path to set in session_cookie. Defaults to /.
какой смысл параметра path любой куки, написано в [m]setcookie[/m]

пожалуй, кривовато я написал в предыдущем посте. Правильно так: с момента первого обращения к серверу после того, как кука была установлена. Т.е. setcookie посылает куку клиенту, но сам скрипт еще не знает, принял ее клиент или нет, поэтому переменная из нее недоступна. При загрузке любой новой страницы браузер добавит данные из куки в свой запрос, и можно будет считать переменную.
 

ALEX_SHEPA

Guest
может в асе познакомимся
мой уин:312179283
 

neko

tеam neko
ALEX_SHEPA
ты разницу понимаешь между сессией и кукой?
что такое настройки для сессий в php.ini соображаешь?
ман читать умеешь?
то, что СИД может хранится в куке тебе известно?
 

ALEX_SHEPA

Guest
да вот теперь я понял, но все-таки мне интерестно хранятся ли эти куки на сервере?
ведь не зря я прописал в пхп.ини:
session.cookie_path = /php/savesid/cookie
т.е. как я понимаю они там должны сохраняться, если я не пишу setcookie(...,path)
 

IL78

Guest
прописал это ты совершенно зря

еще раз: зачем им там сохраняться? Кому от этого какая польза?

Куки, которые посылает session_start при включенном session.use_cookies, ничем принципиально не отличаются от кук, которые посылает setcookie. Можно обратиться к сессионной куке как $_COOKIE['PHPSESSID'].

внимательнее читай ман
 

neko

tеam neko
ведь не зря я прописал в пхп.ини
я вчера на забора такое прописал закачаешься
и не зря поверь!

не надо писать такой ереси
надо себя пересилить и все таки читать доку
потом будешь прописывать

-~{}~ 07.08.04 03:25:

IL78
начнем с того что он сессиионные и куковские функции/настройки путает

про сид в куках это уже потом
 

ALEX_SHEPA

Guest
ман читать умеешь?
ман читал и не надо на меня так резко, я с пхп 1-ю неделю разбираюсь, то что сид храниться в куке тоже знаю!
Не пойму зачем опция session.cookie_path = /php/savesid/cookie
я так понял там куки должны сохраняться
 

IL78

Guest
такая опция (в смысле значение) абсолютно незачем

по дефолту было правильно для 99% случаев.

куки должны сохраняться только на клиентском компе - в этом их предназначение. А cookie_path (который задается на сервере относительно корня сайта) показывает, что переменная из этой куки будет доступна в скрипте, который находится в пределах этого пути.
 

neko

tеam neko
ALEX_SHEPA
настройки которые начинаются с session.
это настройки ДЛЯ СЕССИЙ
они к setcookie не имеют даже отдаленного отношения
а session.cookie_path
к файловой системе
НИКАКОГО

тебе родовая травма мешает еще раз прочесть?
там все написано, проверь уж
 

IL78

Guest
neko, ну почему так уж и никакого. Напрямую, понятно, они друг на друга не влияют, но принципы задания path в setcookie и session.cookie_path, по идее, аналогичны?
 
Сверху