Передать сессионную переменную?

Дима

Новичок
Передать сессионную переменную?

Подскажите, как можно передавать сессионную переменную через ссылку? Необходимо создать в цикле несколько ссылок, при нажатии на которые нужно перегрузить страницу и задать значение переменной в зависимости от нажатой ссылки.
код примерно такой

PHP:
session_start();  
session_register('cur_page'); 
 for ($i=1;$i<=$num_pages;$i++)  	
{  	
	echo "<a href=".$_SERVER['PHP_SELF']."?cur_page=".$i.">".$i."</a>";
}
echo $_SESSION['cur_page'];
при нажатии на ссылки в строке браузера: "index.php?cur_page=7"
но при этом выводится значение cur_page равное нулю.
 

Beavis

Banned
Дима
а покажи в своем коде строчку, в которой в переменную сессии записывается 7
 

Дима

Новичок
сначала переменная была зарегистрирована как сессионная, а потом в ссылке задано значение:
PHP:
cur_page=".$i."
или нужно как-либо иначе поступить?
 

Beavis

Banned
Дима
Чтобы $_SESSION['cur_page'] было равно 7, надо сначала эту 7 туда записать..
Кстати, а зачем тебе вообще тут сессия нужна? Обычно нет необходимости номер страницы писать в сессию
 

Дима

Новичок
а как можно добавить в строку ссылки SESSION['cur_page']???
как ни пробывал добавлять - не работает.

П.С. как иначе, если не в сессии, передавать значение переменной по ссылке (не через форму)? Ведь в новых версиях ПХП старый метод уже не катит. Править php.ini тоже не хочется - нужно найти цивильный способ...
 

Ravanger

Новичок
чего-то я не понял...
1. $_SESSION['cur_page'] = 7;
2. index.php?cur_page=7
3. какие это старые/новые методы некатят? методы передачи данных? и при чем тут PHP к передаче данных?
 

Дима

Новичок
1. Такой вариант не работает:
PHP:
echo "<a href=".$_SERVER['PHP_SELF']."?".$_SESSION['cur_page']=$i;">".$i."</a>";
может, где нужно кавычки убрать/поставить?

2. этот вариант я делал изначально, но он работал только в 3-м ПХП. Для ПХП 5 уже не работает (читал в мануале на этом сайте).

3. "Во всех старых руководствах по РНР написано, что даные, полученные из формы, или переданные по ссылке, вот так: script.php?peremennaya=znachenie&variable=value
автоматически становятся переменными PHP, $peremennaya и $variable
Эта информация устарела."
 

Дима

Новичок
в том то и дело, что мне нужно, чтобы "данные, переданные по ссылке, автоматически становились переменными ПХП":

PHP:
for ($i=1;$i<=$num_pages;$i++)
	{
	echo "<a href=".$_SERVER['PHP_SELF']."?cur_page=".$i.">".$i."</a>";
	}
в статье не указывается, как по событию нажатия на гиперлинк устанавливать значение переменной для новой странички. может, "он клик" нужно использовать?
 

Ravanger

Новичок
читай столько раз пока не дойдет, что "он клик" ты использовать не можешь.. как в принципе и любой другой ивент
 

Beavis

Banned
Дима
если ты переходишь по ссылке ...?cur_page=7
то получить цифру 7 можно из $_GET["cur_page"]
а причем тут сессия, я так и не понял..
 

kstati

Новичок
В дополнение Beavis

Дима, подскажи-ка, а где ты задаешь значение сессионной переменной? ;)

Есть три варианта решения.

PHP:
// Рекомендуемый (http://ru.php.net/session_register)
$_SESSION['var'] = 'value'; 

// И два устаревших...
$var = 'value';
session_register('var'); 

$HTTP_SESSION_VARS["var"] = "value";
Если ты глянешь внимательно, то заметишь, что session_register('var') вызывается после того, как переменная $var уже объявлена и ей присвоено значение.
В твоем же мучении, есть *строка* "?cur_page=" , но переменной $cur_page нет.
 

Дима

Новичок
Автор оригинала: Beavis
Дима
если ты переходишь по ссылке ...?cur_page=7
то получить цифру 7 можно из $_GET["cur_page"]
а причем тут сессия, я так и не понял..
ура, заработало! надо было выводить не просто cur_page (как я это делал раньше на ПХП 3) а при помощи $_GET. а сессии действительно не при чем - это я от безнадёги пытался что-нить придумать. спасибо за суппорт!

-~{}~ 21.10.08 10:10:

Автор оригинала: Beavis
Да не нужна ему тут сессия.. Не надо глупостей советовать
да, действительно, не нужна.
кстати, какую литературу (на эл. или бум. носителе) стоит подчитать? а то я ринулся изучать ПХП на практических примерах, но, как видно, без теоретической базы будет туговато.
посоветуйте, пожайлуста, какой-нить хороший учебник, в котором при помощи небольших примеров можно постичь секреты ПХП.
 

Beavis

Banned
tardis
вы бы хотели, например, чтоб вашего ребенка в школе учили не по учебникам а по факам, в которых обозначено только несколько проблем и их решение?
 
Сверху