Jump to content
  • 0

как из обработчика формы вернуться обратно


qtk
 Share

Question

18 answers to this question

Recommended Posts

  • 0

Пробовал функцию heаdеr но ничего не выходит.

покажите код, возможно до вызова header('Location: http://site.ru'); стоит что-то вроде echo 'bla-bla...';

тогда стоит сделать так: в том месте где будет происходить обработка данных в самом верху написать ob_start(); а если обработчик инклудится скажем в index.php то в нем в самом верху, а потом вот так вызывать переадресацию: ob_clean(); header('Location: http://site.ru');

Link to comment
Share on other sites

  • 0

<?php

$list=$_POST["list"];

$date="[".date("d.m.y")."]";

$name=$_POST["name"];

$phone=$_POST["phone"];

$message=$_POST["message"];

$text="<div class=\"name\">Имя: ".$name."</div>".

"<div class=\"phone\">Телефон: ".$phone."</div>".

"<div class=\"message\">Сообщение:<br>".$message."</div>".

"<div class=\"date\">Добавлено: ".$date."</div><br>"."

";

if($name==""){echo "Введите имя.";}

else

if(strlen($phone)>12){

echo "Введите последние 10 цифр телефона";}

else

if(is_numeric($phone)) {

if($message=="")

{echo "Введите сообщение";}

else

$open=fopen("$list.dat","a");

fwrite($open,$text);}

else

echo "Доступны только цифры";

?>

Подскажите пожалуйста где тут надо воткнуть хейдер. Это сам обработчик.

Link to comment
Share on other sites

  • 0

Сразу после fwrite

А ещё у тебя фигурные скобки пропущены перед fopen.

А ещё нифига не безопасно так вот без проверки совать параметры куда попало. А если тебе в list передадут что-то не то, что ты ожидаешь?

  • Like 1
Link to comment
Share on other sites

  • 0

Хейдер не воткнёте, ибо он уже отправлен при выводе содержимого, остаётся вернуться мануально, т.е. предложить ссылку обратно: Echo '<p><a href="'.$_SERVER['HTTP_REFERER'].'">продолжить заполнение формы</a></p>';

Link to comment
Share on other sites

  • 0

Хейдер не воткнёте, ибо он уже отправлен при выводе содержимого, остаётся вернуться мануально, т.е. предложить ссылку обратно: Echo '<p><a href="'.$_SERVER['HTTP_REFERER'].'">продолжить заполнение формы</a></p>';

почему нет? у меня все именно так и работает как написал выше, т.е. при помощи ob_clean(); и ob_start();

Link to comment
Share on other sites

  • 0

Если чесно,у меня нефига не работает. Я нуб и не очень понимаю, сунте в мой код хейдер и покажите пожалуйста как это в коде должно выглядить

int, все безопасно, т.к. передаю через pоst и переменная list это список select

Вот, все сделал одним файлом

<?php

$submit=$_POST["submit"];

$list=$_POST["list"];

$date="[".date("d.m.y")."]";

$name=$_POST["name"];

$phone=$_POST["phone"];

$message=$_POST["message"];

$text="<div class=\"name\">Имя: ".$name."</div>".

"<div class=\"phone\">Телефон: ".$phone."</div>".

"<div class=\"message\">Сообщение:<br>".$message."</div>".

"<div class=\"date\">Добавлено: ".$date."</div><br>"."

";

if($submit=="Добавить")if($name!=""){ if($phone!=""){ if(is_numeric($phone)){ if($message!=""){ $open=fopen("$list.dat","a");fwrite($open,$text);ob_clean(); header

('Location: http://site.ru');}

else

{$dd="Введите сообщение";}

;}

else

$cc="Доступны только цифры";

;}

else

{$bb="Введите номер";}

;}

else

{$aa="Введите имя";}

echo "<form action=\"index.php\" method=\"POST\">

Ваше имя:<br>

<input type=\"text\" name=\"name\"><br>".

$aa."<br>

Номер телефона:<br>

<input type=\"text\" name=\"phone\"><br>".$bb.$cc."<br>

<select name=\"list\" size=\"10\">

<option selected value=\"estate\">

Недвижимость

</option>

<option value=\"avto\">

Авто, мото, вело

</option>

<option value=\"computer\">

Компьютеры и

комплектующие

</option>

<option

value=\"tech\">

Бытовая техника

</

option>

<option

value=\"service\">

Услуги

</ option>

<option

value=\"furniture\">

Мебель

</

option>

<option

value=\"pets\">

Животные

</ option>

<option

value=\"wear\">

Одежда

</

option>

<option

value=\"work\">

Работа

</

option>

<option

value=\"other\">

Разное

</option></select><br>

Ваше сообщение:<br>

<input type=\"text\" name=\"message\"><br>".$dd."<br>

<input type=\"submit\" name=\"submit\" value=\"Добавить\">

</form>";

?>

Link to comment
Share on other sites

  • 0

Как вам написал Int:


<?php

$list=$_POST["list"];
$date="[".date("d.m.y")."]";
$name=$_POST["name"];
$phone=$_POST["phone"];
$message=$_POST["message"];
$text="<div class=\"name\">Имя: ".$name."</div>".
"<div class=\"phone\">Телефон: ".$phone."</div>".
"<div class=\"message\">Сообщение:<br>".$message."</div>".
"<div class=\"date\">Добавлено: ".$date."</div><br>"."

";

if($name==""){echo "Введите имя.";}
elseif(strlen($phone)>12){
echo "Введите последние 10 цифр телефона";}
elseif(is_numeric($phone)) {

if($message=="")
{echo "Введите сообщение";}
else {
$open=fopen("$list.dat","a");
fwrite($open,$text);
header('Location: http://site.ru');
}
}
else {
echo "Доступны только цифры";
}
?>

int, все безопасно, т.к. передаю через pоst

Спасибо, поржал от души :)

  • Like 1
Link to comment
Share on other sites

  • 0

Обоснуйте. Если сделано всё правильно, он должен работать.

Не всегда.

Однако, лечится следующим образом:

<?php
header('...');
exit();
?>

Честно говоря, не знаю почему =)

Edited by Radiocity
Link to comment
Share on other sites

  • 0

Дак вы попробуйте сами, у вас есть мой код. Вставте и проверте

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

А если хотите чтоб вам помогали (а не делали всё за вас) включайте мозги и проявляйте инициативу, здесь цель не то чтоб у вас всё работало, а чтоб вы понимали что не работает, почему, и как это исправить.

Надеюсь вы понимаете разницу между «помогите» и «сделайте за меня»

Link to comment
Share on other sites

  • 0

А смысл ? что-то выводить если это невозможно прочитать ?

да почему невозможно то?


а где-то в самом верху буферезируем: ob_start();

if(isset($_GET['g']) && $_GET['g'] == 'test') {
выполняем какие-то действия относительно переданному параметру в $_GET['g'];
и если все успешно, то выводим сообщение об этом: echo 'все ок'; else echo 'все ужасно';
}
elseif(isset($_GET['t']) && $_GET['t'] == 'bla') {
выполняем какие-то действия относительно переданному параметру в $_GET['t'];
и если все успешно, то перенаправляем юзера через:
ob_clean();
header('Location: http://site.ru');
}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy