Koenig (05.06.2012/07:42)
dakilla, в твоем случае не так много информации надо передать, сохранять нет смысла, спокойно залезет в урл
так а как? помоги пожалуйста чето до меня никак не дойдёт как это можно обьединить в моем случае
dakilla,
$n = isset($_REQUEST['n']) ? abs(intval($_REQUEST['n'])) : 0;
$url = '';
$url2 = '';
if (isset($_POST['vubor'])) {
switch ($_POST['vubor']) {
case 1:
header('Location: ' . $url);
exit;
break;
default:
header('Location: ' . $url2);
exit;
break;
}
}
if (isset($_POST['n'])) {
echo '<form action="?n=' . $n . '" method="post">
Вы уверены ?<br/>
<select name="vubor" title="Выберите">
<option value="1">Да</option>
<option value="2">Нет</option>
</select><br/>
<input type="submit" name="submit" value="Подтвердите"/>
</form>';
} else {
echo '<form action="" method="post">
<input type="text" name="n" maxlength="25"/><br/>
<input type="submit" name="submit" value="Далее"/>
</form>';
}
echo '<pre>'; print_r($_POST);
Koenig (05.06.2012/07:39)
не сохраняет
[php]
if (empty($_GET)) {
$age = 1;
$name = 'test';
$_SERVER['FORM_DATA'] = array(
'name' => $name,
'age' => $age
О-ё-ё-й! Прошу прощения! Сижу на работе и чот запарился совсем...

Нубас блин. Конечно же я имею ввиду массив
$_SESSION!!! Сотня извинений. =)
SlyDeath, по сути та же запись в файл, по сути тоже временный
Koenig (05.06.2012/08:12)
SlyDeath, по сути та же запись в файл, по сути тоже временный
Просто проще для новичков и плохо разбирающихся, и делается в две строчки - установка и ансет (либо до конца жизни сессии).
SlyDeath, В общем сделал так как вы советовали )) получил универсальную форму подтверждения, но теперь вопрос можно ли быть уверенным что $form_1['n'] из примера ниже больше 0 и меньше 80 или нужно делать дополнительные проверки?
if(isset($_SESSION['form_1'])){
$form_1 = unserrialize($_SESSION['form_1']);
// Запись $form_1['n'];
unset($_SESSION['form_1']);
}else{
if(isset($_POST['submit'])){
$n = isset($_POST['n']) ? abs(intval($_POST['n'])) : 0;
if($n > 0 && $n < 80){
if(isset($_POST['vubor'])){
if($_POST['vubor'] == 1){
$_SESSION['form_1'] = serrialize(
array(
'n' => $n
)
);
}
//redirect
}else
echo'<form action="' . a_url('index'). '" method="POST">
Вы уверены ?<br/>
<select name="vubor" title="Выберите">
<option value="1">Да</option>
<option value="2">Нет</option>
</select><br/>
<input type="submit" name="submit" value="Подтвердите"/>
</form>';
}else
echo'Ошибка!';
}else
echo'<form action="' . a_url('index') . '" method="POST">
<input type="text" name="n" maxlength="25"/><br/>
<input type="submit" name="submit" value="Далее"/>
</form>';
}
и вообще возможно ли в $_SESSION дописать/подменить из вне
Именно в данный момент вы используете суперглобальный массив как обычный POST или GET потому конечно все данные из формы попадут туда, и их как и при POST или GET надо фильтровать обычными способами. Кроме формы никак не возможно получить доступ к ячейке массива которую вы создаёте, иначе бы сессии ломали постоянно. =) Это уже дело сниферов и фишинга, но врядли кто-то узнает как вы назвали ячейку для хранения данных, ведь это идёт на уровне пэхэпэ.

По поводу 0 и 80 у вас есть проверка и всё ок. =)
$_SESSION часто используют онлайн магазины для хранения выбранных товаров ещё не зареганным пользователем.
Я уже достал наверно вас обоих )) но что-то я не доверяю если честно этой $_SESSION )) точно враже туда ничего добавить не смогут из вне? может всетаки фильтровать переменные перед записью в mysql или это уже лишнее