как создать передачу параметра в сессии

Статус
В этой теме нельзя размещать новые ответы.

daniloff

Постоялец
Регистрация
31 Май 2008
Сообщения
79
Реакции
2
есть прблема.
Имеется список параметров

<select size="1" name="counter">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
</select>
надо чтобы параметр counter передавалась посредствам сессии на всем сайте.
2. Как вынять counter из сессии.
Например если выбран 1 на любой странице селект должен быть выбран на 1.
заранее спасибо за ответы!
 
Создание сессии и регистрация переменной $sCounter
PHP:
<?
  session_start();
  session_register("sCounter");
  $sCounter=$counter;
?>

Теперь на любой другой странице можешь использовать эту переменную

PHP:
<?
  echo $sCounter;
?>
 
  • Заблокирован
  • #3
session_register("sCounter");
$sCounter=$counter;
Этот код не будет работать на конфигурациях с register_globals = off. Правильно так:

PHP:
<? 
  session_start(); 
  $_SESSION['sCounter'] = $counter; 

  $_SESSION['sCounter']++;
  echo $_SESSION['sCounter']
?>
 
Или можно в таком варианте:
PHP:
<?php
if (!isset($_SESSION)) session_start();/*Этот код не просто стартует сессию, а сначал проверят не была ли она запущена раньше что бы не было ошибки*/
//Потом код занесения данных в сессию
if (isset($_POST['Submit'])) {//Пользователь нажал кнопку Submit. Значит заносим данные в сессию
	$_SESSION['counter'] = $_POST['counter'];
} else { ?> <!-- Иначе это показ-->
	<select size="1" name="counter">
	<option value=""></option>
	<?php
		for ($i=1;$i<2;++$i) {
			if ($_SESSION['counter']==$i) $select=' selected';
			else $select='';
			echo '<option value="'.$i.'" '.$select.'>'.$i.'</option>';
		}
	?>
	</select>
<?php } ?>
 
Создание сессии и регистрация переменной $sCounter

Теперь на любой другой странице можешь использовать эту переменную

PHP:
<?
  echo $sCounter;
?>

А вот так делать НЕ правльно! Все советуют и так именно и должно быть, что переменные если не были определены ранее должны определяться обязательно. Если не залить явно из сессии в $sCounter значение то будет:
1. не красиво (хз от куда эта байда взялась) - так движки не пишут!
2. не удобно - можно легко запутаться
3. на эту тему уже писали много материала про хаки :(
 
А вот так делать НЕ правльно! Все советуют и так именно и должно быть, что переменные если не были определены ранее должны определяться обязательно. Если не залить явно из сессии в $sCounter значение то будет:
1. не красиво (хз от куда эта байда взялась) - так движки не пишут!
2. не удобно - можно легко запутаться
3. на эту тему уже писали много материала про хаки :(
Если уж на то пошло, то лучше сначала сделать чтобы работало, а потом модифицировать.
Я сам использую $_SESSION['counter'], так проще, для меня по крайней мере.
 
Согласен.
Лучше хранить не в сессии
А передавать постом или гетом
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху