galiant
Новичок
Сессии, передача переменных, опт. решение задачи
Ситуация следующая.
Есть 2 файла, step1.php и step2.php.
В первом файле юзер заполняет форму заказа, нажимает кнопку сабмит, переменные передаются во второй файл.
Второй файл их проверяет, и если какая-то не введена или неверной длины , направляет юзера опять к первому файлу и заодно направляет код ошибки, первый файл приняв этот код, пишет юзеру что он не так сделал... "исправь типа". Если же всё правильно второй файл сост. таблицу переменных, и показывает юзеру "проверьте все ли правильно", и снизу есть 2 кнопочки ("<< Редактировать") и ("Отправить заказ >>").
При нажатии на первую , юзер должен кидаться обратно к форме на step1.php , но только чтобы ранее введенные данные в полях уже были, при нажатии на вторую , говорить функции mail() (к примеру) чтобы она переменные слала на мыло, и говорила "спасибо."
Индексы файлов
Step1.php
-------------
<?
session_start();
if(isset($err)) {
тут функция дабавляющая к хтмл, текст ошибки, оринтируясь на ее код.
};
?>
<form action="step2.php" method="post" class="form_">
<input type="text" name="first" value="<? if (isset($first)) { echo $first; } ?>"> Введи 1-ю
<input type="text" name="second" value="<? if (isset($second)) { echo $second; } ?>"> Введи 2-ю
<input type="text" name="third" value="<? if (isset($third)) { echo $third; } ?>">Введи 3-ю
<input type="reset" value="Очистить">
<input type="submit" value="Далее >>">
</form>
--------------
Step2.php
-------------
<?
if(!isset($check)) { header("location:/"); exit(); }
$a=$_POST['first'];
$b=$_POST['second'];
$c=$_POST['third'];
$err=function_check($a,$b,$c);
if($err) {
session_start();
session_register('first','second','third');
$first=$_POST['first'];
$second=$_POST['second'];
$third=$_POST['third'];
header( "Location:step1.php?err=$err" );
};
?>
welcome text
<?
$table_html=table_html_create($a,$b,$c); // эта ф-ция создает табличку красивую
echo $table_html;
?>
<input type="button" value="<< Редактировать" onclick="">
<input type="button" value="Отправить" onclick="">
-------------
Вопросы у меня следующие:
1) Что вписать в onclick кнопочки, чтобы она возвращала чела назад к редактированию, ну со всеми переменными.. (но переменными наск. я понял сессия занимается)
2) как лучше сделать отсылку почты, создать step3.php и он будет мэйлить и спасибо говорить?
3)можно ли проверять форму не так геморойно как придумал я, чтобы потом при полож. рез-тет проверки, переменные в step2.php передавались невидимо. Не в Url.
4)Почему , если не написать
$a=$_POST['first'];
$b=$_POST['second'];
$c=$_POST['third'];
, то фунция, которой они нужны, их не видит хоть убей? Они же постятся в этот скрипт, она должна видеть вроде
Заранее спасибо, сорри за большие листинги кода. Функции не вписывал, т.к. отношения к делу они не имеют
Ситуация следующая.
Есть 2 файла, step1.php и step2.php.
В первом файле юзер заполняет форму заказа, нажимает кнопку сабмит, переменные передаются во второй файл.
Второй файл их проверяет, и если какая-то не введена или неверной длины , направляет юзера опять к первому файлу и заодно направляет код ошибки, первый файл приняв этот код, пишет юзеру что он не так сделал... "исправь типа". Если же всё правильно второй файл сост. таблицу переменных, и показывает юзеру "проверьте все ли правильно", и снизу есть 2 кнопочки ("<< Редактировать") и ("Отправить заказ >>").
При нажатии на первую , юзер должен кидаться обратно к форме на step1.php , но только чтобы ранее введенные данные в полях уже были, при нажатии на вторую , говорить функции mail() (к примеру) чтобы она переменные слала на мыло, и говорила "спасибо."
Индексы файлов
Step1.php
-------------
<?
session_start();
if(isset($err)) {
тут функция дабавляющая к хтмл, текст ошибки, оринтируясь на ее код.
};
?>
<form action="step2.php" method="post" class="form_">
<input type="text" name="first" value="<? if (isset($first)) { echo $first; } ?>"> Введи 1-ю
<input type="text" name="second" value="<? if (isset($second)) { echo $second; } ?>"> Введи 2-ю
<input type="text" name="third" value="<? if (isset($third)) { echo $third; } ?>">Введи 3-ю
<input type="reset" value="Очистить">
<input type="submit" value="Далее >>">
</form>
--------------
Step2.php
-------------
<?
if(!isset($check)) { header("location:/"); exit(); }
$a=$_POST['first'];
$b=$_POST['second'];
$c=$_POST['third'];
$err=function_check($a,$b,$c);
if($err) {
session_start();
session_register('first','second','third');
$first=$_POST['first'];
$second=$_POST['second'];
$third=$_POST['third'];
header( "Location:step1.php?err=$err" );
};
?>
welcome text
<?
$table_html=table_html_create($a,$b,$c); // эта ф-ция создает табличку красивую
echo $table_html;
?>
<input type="button" value="<< Редактировать" onclick="">
<input type="button" value="Отправить" onclick="">
-------------
Вопросы у меня следующие:
1) Что вписать в onclick кнопочки, чтобы она возвращала чела назад к редактированию, ну со всеми переменными.. (но переменными наск. я понял сессия занимается)
2) как лучше сделать отсылку почты, создать step3.php и он будет мэйлить и спасибо говорить?
3)можно ли проверять форму не так геморойно как придумал я, чтобы потом при полож. рез-тет проверки, переменные в step2.php передавались невидимо. Не в Url.
4)Почему , если не написать
$a=$_POST['first'];
$b=$_POST['second'];
$c=$_POST['third'];
, то фунция, которой они нужны, их не видит хоть убей? Они же постятся в этот скрипт, она должна видеть вроде

Заранее спасибо, сорри за большие листинги кода. Функции не вписывал, т.к. отношения к делу они не имеют