Проблема с сесией :(

Pikasso

Новичок
Проблема с сесией :(

У меня тут возникла проблемка, помогите пожалуйста (в поиске нашло много, часть просмотрел, не нашёл):

Так вот: допустим у меня есть сылочка на домашнюю страницу (после входа в систему и session_start), допустим я на странице форума и хочу перейти на домашнюю страницу, как надо прописать сылку ?
так не выходит :( :

echo "<tr><td><a href='home.php?<?php phpsessid?>'>Домой</a>";
 

Pikasso

Новичок
Кром
Вообщето да, но это не имеет значения, я привёл его просто как пример, скажем вместо форума есть страница информации...
 

_RVK_

Новичок
>echo "<tr><td><a href='home.php?<?php phpsessid?>'>Домой</a>";
Не понял, что именно не выходит?
 

Pikasso

Новичок
Diesel
А ххх его знает, честно говоря если бы знал не спрашивал бы :)
Короче я пытаюсь перейти на домашнюю страницу, а оно мне в url пишет:
"http://www.хххххх.ru/home.php?<?php%20phpsessid?>"
 

_RVK_

Новичок
Pikasso
PHP:
session_start();

echo '<tr><td><a href="home.php?'.session_name().'='.session_id().'">Бла-бла</a>';
 

Pikasso

Новичок
Diesel
Во первых спасибо :)
А во вторых я если честно после прочтения этой темы сам понял как сделать, не зря же говорят что если что то не понятно, то надо написать вопрос прочитав который поймёшь в чём проблема :) , я сделал так:

PHP:
echo "<tr><td><a href=home.php?user_id=$sid>Домой</a>";
( $sid=session_id(); )
 

_RVK_

Новичок
Oftopic.

Pikasso ТО как ты написал, конечно, верно с точки зрения синтаксиcа, но советую писать так как показал я. Использовать двойные кавычки следует как можно реже, т.к. они заставляют PHP парсить строку на наличие переменных. Притом, согласись, так как написал я более читабельно.
 

Pikasso

Новичок
Diesel
Тоесть ты советуешь по возможности использовать только одинарные ковычки ? Я прально тя понял ?
 

_RVK_

Новичок
Pikasso
Да, не надо нагружать PHP лишней работой. Если куски большие пиши за пределами тегов <?php ?>, если маленький кусочек надо вывести пиши как я показал.

З.Ы. Если ты в моем примере заменишь точки на запятые то тоже работать будет, и по идее, быстрее, но это работает только с echo...
 

Фанат

oncle terrible
Команда форума
Дизель.
это ты сам придумал, или подсказал кто?
из какого пальца ты высосал эту переменную - sid?!
Не знаешь, что такое сессии, и как они работают - НЕ ПИШИ ТОГДА вообще ничего!

Художник.
А это еще что за худоожественная самодеятельность?
откуда теперь этот user_id взялся? С какой радости идентификатор сессии стал идентификатором юзера? Ты что-то перепутал или решил, что ты умнее авторов РНР и что-то в механизме подкрутил? Не поделишься своими гениальными открытиями?

Во-первых, обоим читать мануал в сторону session_name(), и использовать ТОЛЬКО ЕЕ.

Во вторых. Пикассо. С чего ты взял, что ссылку надо здесь явно прописывать? А почему в других местах не надо?
 

_RVK_

Новичок
Фанат
Про session_name() я знаю. Это был пример не того как передать идентификатор сессии а как передать GET переменную. Автор топика допустил ошибку именно в этом.
 

Фанат

oncle terrible
Команда форума
ты мне еще поспорь.
быстро извинился и исправил.
 

ys

отодвинутый новичок
Кстати, я вот у себя сделал так:

Прописал переменную auto_prepend_file для всего сайта и там стартую сессию.

Теперь идентификатор сессии запихивается в cookies даже к динамическим изображениям, которые генерятся php скпиптом.

Интересно, насколько плохеет браузеру, если ему в документе с Content-type: image/gif запихивают еще и куки.
Пока ничего страшного не обнаружил, но может какие-нибудь браузеры не любят такого поведения?

Просто тут есть один плюс: идентификатор сессии не теряется при переходе на статические страницы, типа .htm, .html .
Естественно пришлось для них тоже "AddType application/x-httpd-php" выставить.
 

Фанат

oncle terrible
Команда форума
ys
Прописал переменную auto_prepend_file для всего сайта и там стартую сессию.
это дурацкая практика.
сессии надо стартовать только там, где они действительно нужны.
Сессии - отнюдь не идеальный механизм, и нужно очень хорошо подумать перед тем, как вешать их на весь сайт чохом.
Естественно пришлось для них тоже "AddType application/x-httpd-php" выставить.
это тоже не фонтан.
Так что, не лез бы ты со своими советами.
 

fixxxer

К.О.
Партнер клуба
На <a href>-ы ручками прописывать id сессии, как правило, не нужно никогда. Сами пропишутся, если надо.
 
Сверху