|
|
|
| У меня есть таблица в БД в которую с форм записывается данные. Формы разбиты на несколько страниц. Тоесть в первой форме указывается основные данные, потом кнопка далее появляется сл форма в ней еще данные подробнее вводятся и т.д. Так 5 форм. Все идет через POST и по значению action вылавливает состояние страницы, тоесть при нажатии кнопки Продолжить, передается переменная сл формы например "?action=step2". Всего у меня 1 файл в нем и через if / else ловится action == например step2 и вызывается соответственная форма. В первой форме с вводится переменная с именем input_depart. Вот вначале скрипта я его вылавливаю.
$state[depart] = trim($_REQUEST['input_depart']);
Эта переменная $state[depart] присваивает себе значение только после выполнения формы с полем input_depart, а если переходить на следующие шаги, тоесть идти дальше по формах, то переменная $state[depart] исчезает. Тоесть я заполнил форму, перешел на сл заполнять там еще эта переменная сущестует, потому что предалась, а когда еще 1 прыжек уже на сл форму ее не видно. В конце когда уже все формы заполнены с них нужно данные записать в бд с переменных типа как $state[depart] в которые по заполнению форм я туда впихал данные. Воспрос в следующем. Как сделать так чтобы массив данных $state был не пустой а содержал все заполненое что было по формам. | |
|
|
|
|
|
|
|
для: Flare
(01.07.2009 в 11:29)
| |
<?
if($_GET['action'] == "step1")
{
echo '<form action="?action=step2" method="POST">
<input name="per1" type="text"><input type="submit"></form>';
}
if($_GET['action'] == "step2")
{
echo '<form action="?action=step3" method="POST">
<input type="hidden" name="per1" value="'.$_POST['per1'].'">
<input name="per2" type="text"><input type="submit"></form>';
echo $_POST['per1'];
}
if($_GET['action'] == "step3")
{
echo '<form action="?action=step4" method="POST">
<input type="hidden" name="pers" value="'.$_POST['per1'].''.$_POST['per2'].'">
<input name="per3" type="text"><input type="submit"></form>';
echo $_POST['per1'].$_POST['per2'];
}
if($_GET['action'] == "step4")
{
echo '<form action="?action=step5" method="POST">
<input type="hidden" name="pers2" value="'.$_POST['pers'].''.$_POST['per3'].'">
<input name="per4" type="text"><input type="submit"></form>';
echo $_POST['pers'].$_POST['per3'];
}
if($_GET['action'] == "step5")
{
echo '<form action="?action=ok" method="POST">
<input type="hidden" name="pers3" value="'.$_POST['pers2'].''.$_POST['per4'].'">
<input name="per5" type="text"><input type="submit"></form>';
echo $_POST['pers2'].$_POST['per4'];
}
if($_GET['action'] == "ok")
{
echo $_POST['pers3'].$_POST['per5'];
}
?>
|
| |
|
|
|
|
|
|
|
для: Diplex
(01.07.2009 в 22:25)
| | т.е. в общем случае ничто мне не мешает создать форму последнего этапа и записать все промежуточные данные в нужном мне (хакеру) виде.
Сессии использовать надо или хранить промежуточные данные в некоей временной таблице (файле и т.п.) но не показывать явным образом. | |
|
|
|
|
|
|
|
для: GeorgeIV
(01.07.2009 в 22:43)
| | А кто говорил о безопасности? Я показал наипростейший скелет... | |
|
|
|
|
|
|
|
для: Diplex
(02.07.2009 в 00:53)
| | Наипростейший - это сессия | |
|
|
|
|
|
|
|
для: GeorgeIV
(02.07.2009 в 10:23)
| | $_SESSION[’state_depart’] =$_REQUEST['input_depart'];
т.е. так, да? | |
|
|
|
|
|
|
|
для: Flare
(02.07.2009 в 10:32)
| | так, с обезопасиваанием входной информации желательно | |
|
|
|
|
|
|
|
для: GeorgeIV
(02.07.2009 в 14:47)
| | понятно, спасибо | |
|
|
|