Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: $_REQUEST
 
 автор: Flare   (01.07.2009 в 11:29)   письмо автору
 
 

У меня есть таблица в БД в которую с форм записывается данные. Формы разбиты на несколько страниц. Тоесть в первой форме указывается основные данные, потом кнопка далее появляется сл форма в ней еще данные подробнее вводятся и т.д. Так 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 был не пустой а содержал все заполненое что было по формам.

  Ответить  
 
 автор: Diplex   (01.07.2009 в 22:25)   письмо автору
 
   для: 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'];
}
?>

  Ответить  
 
 автор: GeorgeIV   (01.07.2009 в 22:43)   письмо автору
 
   для: Diplex   (01.07.2009 в 22:25)
 

т.е. в общем случае ничто мне не мешает создать форму последнего этапа и записать все промежуточные данные в нужном мне (хакеру) виде.
Сессии использовать надо или хранить промежуточные данные в некоей временной таблице (файле и т.п.) но не показывать явным образом.

  Ответить  
 
 автор: Diplex   (02.07.2009 в 00:53)   письмо автору
 
   для: GeorgeIV   (01.07.2009 в 22:43)
 

А кто говорил о безопасности? Я показал наипростейший скелет...

  Ответить  
 
 автор: GeorgeIV   (02.07.2009 в 10:23)   письмо автору
 
   для: Diplex   (02.07.2009 в 00:53)
 

Наипростейший - это сессия

  Ответить  
 
 автор: Flare   (02.07.2009 в 10:32)   письмо автору
 
   для: GeorgeIV   (02.07.2009 в 10:23)
 

$_SESSION[’state_depart’] =$_REQUEST['input_depart'];
т.е. так, да?

  Ответить  
 
 автор: GeorgeIV   (02.07.2009 в 14:47)   письмо автору
 
   для: Flare   (02.07.2009 в 10:32)
 

так, с обезопасиваанием входной информации желательно

  Ответить  
 
 автор: Flare   (02.07.2009 в 15:48)   письмо автору
 
   для: GeorgeIV   (02.07.2009 в 14:47)
 

понятно, спасибо

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования