Function+$_POST=грабли

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Function+$_POST=грабли

Здраствуйте
наступил я на грабли :((
Почему-то данные, которые передаются методом POST из формы не "пишутся" в сессию при оспользовании функции.

Если функцию скопировать в ветку if (isset($add)) то всё рабайтен.... :(( Но, как Вы понимаете в таком случае это нужно будет сделать Ен-надцать раз :(

Подскажите пожалуйста где глюк?
Спасибо

session_start();
SESSION_REGISTER("FORM");
function form_register($_POST){
$FORM['id'] = $_POST['id'];
$FORM['date'] = $_POST['date'];
$FORM['time'] = $_POST['time'];
$FORM['zag'] = $_POST['zag'];
$FORM['text'] = $_POST['text'];
.....................
return $FORM;
}

if (isset($add)){//если нажата кнопка АДД формы
form_register($_POST);//вызываем функцию и передаем ей значения переменных _POST .....................
}
// иначе генерим форму
 

RomikChef

Guest
Почему-то данные, которые передаются методом POST из формы не "пишутся" в сессию при оспользовании функции.
опечатка
Но, как Вы понимаете в таком случае это нужно будет сделать Ен-надцать раз :(
не пояснишь ли, что ты имеешь в виду?
С какой стати их регистрировать много раз?

у тебя многостраничная форма что ли?
я сомневаюсь.
тогда данные формы в сессии не нужны вообще.
 

Brezee

Новичок
нужно еще проверять была ли зарегистрированна уже эта переменная сессии или нет...
 

RomikChef

Guest
Brezee, какое это имеет отношение к вопросу?
подумай хорошенько, если соберешься отвечать. а лучше - не надо отвечать вовсе.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
?
не пояснишь ли, что ты имеешь в виду?

Их и не нужно регистрировать много раз
в скрипте есть разные условия выполнения
Я имею ввиду добавление, обновление......

Чтоб не дублировать кусок идентичного кода можно ведь для данного случая использовать функции. Или я ошибаюсь?
 

RomikChef

Guest
1. Если ты уж и занимаешься такой глупостью, как запись в сессию данных одностраничной формы, и сделать это надо для ВСЕХ вариантов обработки формы, то так и сделай - в начале обработки запиши в сессию (или сделай любое другое общее действие над данными), а потом обрабатывай свои случаи.

поясняю
вместо совершенно лишней функции и абсолютно лишнего вызова ее, ты пишешь
if ($_SERVER['REQUEST_METHOD']=='POST') {
делаешь то, что тебе надо общее
дальше
if (isset($add)){

Но все это фигня.
потому, что регистрировать в сессии данные поста не нужно вообще.
Кто тебе мешает сделать, как все нормальные люди?
вместо
if (isset($add)){//если нажата кнопка АДД формы
form_register($_POST);//вызываем функцию и передаем ей значения переменных _POST .....................
}
// иначе генерим форму
сделать
if (в форме нет ошибок)){
записываем в базу и уходим локейшеном.
}
// иначе генерим форму [/QUOTE]
Дальше. А если у тебя в форме будет сто полей?
ты так и будешь писать столбик на сто строк?
а написать $FORM=$_POST не догадался?


ЗЫ. Только увидел ламерский (что, впрочем, меня ничуть не удивляет) ответ Ларсона.
Сначала хотел наехать (хотя тип совершенно необучаемый), а потом передумал. Дурака приходя в голову одинаковые мысли.
можат быть, этот мрмакс тут для нас написал $_POST? а у себя в функции все переменными делал.
 

Bocha

Guest
$_POST глобальная переменная. Ее не надо передавать в функцию. Ты же ее передаешь под тем же именем. Возможно это и создает ошибку.

2 Larson: насколько я понимаю, если работать с $_POST, $_GET и т.д. и т.п. то register_globals можно ставить и off
 

RomikChef

Guest
Bocha, ошибки в этом случае быть не должно.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Спасибо

Нет, не фигня, юзер может выбирать фотографии в новостной ленте, которые уже когда-то были загружены на сервер. Для этого я и "запоминаю" значения переменных в сессию.

2. У меня ещё и предусмотрен предварительный просмотр новости, а потом запись в базу.
 
Сверху