[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Использование сессии
Beowolf
Есть форма, в которой стоят 2 элемента <SELECT>, c1_f и с2_f. c2_f получает значения из вспомогательной таблицы исходя из значений с1_f. Для обработки я использую сессии. При первом вызове переменных сессии не существует, c2_f не показывается. Далее вызывается select.php, в нем написано

PHP
<?
session_start();
session_unregister("c1");
session_unregister("c2");
$c1=$HTTP_POST_VARS['c1_f'];
$c2=$HTTP_POST_VARS['c2_f'];
session_register("c1");
session_register("c2");
header("Location: index.php");


Проблемы появляются, если поменять значение с1_f, при этом c2_f передает в обработку неправильное, несвязанное с c1_f значение.

Я пробовал поменять обработку на такой код:
PHP
session_start();
if ($_SESSIOM['c1']!=$HTTP_POST_VARS['c1_f'])
{
 session_unregister("c1");
 session_unregister("c2");
 $c1=$HTTP_POST_VARS['c1_f'];
 session_register("c1");
}
 else 
 
{
  session_unregister("c2");
  $c2=$HTTP_POST_VARS['c2_f'];
  session_register("c2");
 };
header("Location: index.php");


Но он почему-то не работает. Что мне надо сделать?



kirik: Используем bb коды по назначению!



Спустя 16 минут, 12 секунд (28.04.2009 - 19:34) Beowolf написал(а):
сорри, исправлюсь smile.gif

Спустя 3 часа, 20 минут, 14 секунд (28.04.2009 - 22:54) Beowolf написал(а):
Хм, неужели никто не знает как такое можно сделать?

Спустя 4 минуты, 15 секунд (28.04.2009 - 22:58) jetistyum написал(а):
Вы пишите на 2-м php ?


1. $HTTP_POST_VARS [deprecated]

2. к функции session_register есть такое замечание (взято из справочника)
Цитата

If you want your script to work regardless of register_globals, you need to instead use the $_SESSION array as $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where the PHP directive register_globals is disabled.


а еще я совсем не понял как у тебя и сколько раз вызывается select.php

Спустя 40 минут, 54 секунды (28.04.2009 - 23:39) Beowolf написал(а):
Понял, надо использовать $_POST, просто книжка которую я использую старая.
При запуске страницы второй select скрыт, мне надо как-то сделать данные из второго select сбрасывались при изменении первого. Ну например, если первый элемент изменяет страну, то список областей должен сбрасываться. Select.php вызывается при нажатии кнопки формы под этими select.

PS Т.е. session_register() будет работать только если сделать register_globals=on ? Но как мне кажется это не очень хороший вариант?

Спустя 31 минута, 26 секунд (29.04.2009 - 00:11) jetistyum написал(а):
тебе не зря так кажется, поэтому все прогрессивное человечество использует
суперглобальный массив $_SESSION
исправь свой код .. выложи и посмотрим дальше

Спустя 26 минут, 28 секунд (29.04.2009 - 00:37) Beowolf написал(а):
Обнаружил ошибку, у меня было написано
$_SESSIOM вместо $_SESSION biggrin.gif
Быстрый ответ:

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