Сохранение даных формы после редиректа

Сохранение даных формы после редиректа

Здравствуйте!
Казалось бы банальная проблема, но...
[index.php?mod=users&action=singup]
...
PHP:
if ($form -> Validate())
   {
      USER :: Redirect('index.php?mod=users');
   }
else
   {
      USER :: Redirect('index.php?mod=users&action=singup');
   }
$form -> Validate() - метод класса, который проверяет форму на разные (только цифры, буквы и т.д.) условия. Если форма корректна возвращает true, а в противном случае пишет в сессию сообщения и возвращает false.
USER :: Redirect() - статический метод, который отправляет хидер и делает стоп. После неудачного заполнения формы пользователя отправляет назад на форму. Удобно если после неудачного заполнения правильные данные останутся. Но само собой пост-данные не передаются после перенаправления. Я решил сделать так: [php] if ($form -> Validate()) { USER :: Redirect('index.php?mod=users'); } else { $_SESSION['form'] = $_POST; USER :: Redirect('index.php?mod=users&action=singup'); } [/php] Насколько это опасно? Есть ли способы попроще? (Само собой не учитывая этого и способа без редиректа) Заранее спасибо и с наступающим.
 

A1x

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

да, тоже кстати с наступающим! :)
 

Фанат

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

поэтому проще всего выводить форму сразу, никуда не перенаправляя
но, если делаешь перенаправление, то пиши в сессию
 

FractalizeR

Новичок
Offtopic:
USER :: Redirect() - статический метод, который отправляет хидер и делает стоп.[/QUOTE] Ваше архитектурное решение кажется мне странным. Почему в классе пользователя реализован метод, позволяющий делать редирект на любую страницу, причем адрес страницы нужно в коде писать в ручную? Мне кажется, было бы логичнее, если вы разобъете ваш Redirect на несколько маленьких "редиректиков" типа: USER::redirectShowRegForm(); USER::redirectSignUp(); и так далее. Но даже такое решение по поводу инкапсуляции методов переадресации на другую страницу кажется мне не слишком красивым...[/SIZE]
 
FractalizeR
С чего Вы взяли что это класс пользователя? Пока это чисто теория.

-~{}~ 31.12.07 17:40:

Ах да... тему закройте пожайлуста.

-~{}~ 31.12.07 17:41:

Я для себя все что надо уяснил.
 

A1x

Новичок
USER :: Redirect('index.php?mod=users');
имхо кажется вообще нет смысла делать такие методы - чем хуже посто написать в коде

header('Location: blabla'); exit;

даже букв почти столько же.
 
Сверху