![]() |
Как его заставить забыться
Подскжите плиз начинающему.
Сделал скрипт на ПХП отправки мыла (mail() функция), заполяешь формы на страничке нажимаешь submit при нажатии данные передаются функции и происходит отправка письма, но если после нажать обновить, отправляется еще одно письмо. Она помнит и нажатие и все введенные данные. Как сделать, чтобы после отправки все забывалось. |
сделай редирект на другую страницу
|
В смысле после нажатия на кнопку отправить перенаправлять на другую с траницу?
|
угу...
if($_SERVER['REQUEST_METHOD'] == POST){ /* Заносим данные */ die(header('Location: thanks.php')); // редиректим на страницу со спасибо. } |
угу
|
Ок вроде все так как нужно, только на страницу thanks.php не переходит, почему это может быть?
|
Попробуй послать пару символов в поток:
header('Location: thanks.php'); echo ' '; |
Не помогает ;-((
|
Тогда отлаживай, смотри доходит он до header'а или нет, а там видно будет.
|
if($_SERVER['REQUEST_METHOD'] == POST){
/* Заносим данные */ echo $dopinfo; die(header('Location: ../data/thanks.php')); // редиректим на страницу echo ' '; } нажимаю на submit выводится переменная $dopinfo, значит доходит, но больше ничего не происходит у меня в определдени <form action="<?php echo $PHP_SELF ?>" method="post" name="kandidat"> может в этом причина |
да нельзя выводить ничего перед заголовком ... убери "echo $dopinfo;"
|
Убрал, оставил вот так
if($_SERVER['REQUEST_METHOD'] == POST){ /* Заносим данные */ die(header('Location: ../data/thanks.php')); // редиректим на страницу echo ' '; } все равно не переходит |
А может просто есть пример скрипта, надо всего лишь заполнить форму из нескольких полей, потом нажать кнопку отправить и через функцию mail() отправиться письмо, а напишеть "спасибо" .все работает, только при нажатии "отправить" письмо уходит еще раз со старыми данными, если использовать
if($_SERVER['REQUEST_METHOD'] == POST){ после повтора нажатия данные теперь имхо обнуляются, но при нажатии "обновить" страницу выскакивает окошко типа надо повторно отправить данные. как вот все это обойти. |
die убери. оставь header.
|
Нет, не проходит, а чем можно хеадеры посмотреть, проверить
|
Их незачем проверять. Ты лучше бы вывод ошибок включил ... а то я смотрю то ли у тебя с головой беда, то ли ошибки отключены.
|
Незнание не есть отсутствие головы, но это так... к слову...
Накидал простенько: <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> </head> <body> <form action="<?php echo $PHP_SELF ?>" method="post" name="name"> <textarea name="dopinfo" cols="52" rows="5" class="fieldsform"></textarea> <input name="Submit" type="submit" class="fieldsform" value="Отправить данные"> </form> <?php if($_SERVER['REQUEST_METHOD'] == POST){ header('Location: index.php'); // редиректим на страницу со спасибо. } ?> </body> </html> Ошибки: Notice: Use of undefined constant POST - assumed 'POST' in P:\test.php on line 13 Warning: Cannot modify header information - headers already sent by (output started at P:\test.php:8) in P:\test.php on line 14 |
POST возьми в кавычки, а на будущее замечательный сайт - www.php.net
|
Ковычки убрал, все равно не переходит на другой сайт. Warning остался
предлагаешь на php.net на форуме спросить? |
Что-то я никак не найду где я просил убрать кавычки ?
|
Блин!!!! RFTM!!!!
Нельзя выводить header если ты уже чего то напечатал: Либо делай так <?php if($_SERVER['REQUEST_METHOD'] == "POST"){ header('Location: index.php'); // редиректим на страницу со спасибо. } ?> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> </head> <body> <form action="<?php echo $PHP_SELF ?>" method="post" name="name"> <textarea name="dopinfo" cols="52" rows="5" class="fieldsform"></textarea> <input name="Submit" type="submit" class="fieldsform" value="Отправить данные"> </form> </body> </html> |
либо так
<? ob_start(); ?> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> </head> <body> <form action="<?php echo $PHP_SELF ?>" method="post" name="name"> <textarea name="dopinfo" cols="52" rows="5" class="fieldsform"></textarea> <input name="Submit" type="submit" class="fieldsform" value="Отправить данные"> </form> <?php if($_SERVER['REQUEST_METHOD'] == "POST"){ die(header('Location: index.php')); // редиректим на страницу со спасибо. } ?> </body> </html> <? ob_end_flush() ?> |
Да не, мне никак ему не впереть что у него POST без кавычек. У него ошибку из-за этого выкидывает, а ошибка это уже output started.
|
ага это точно... не заметил...
Но только это не должно генерировать ошибку ибо ПХП решит что POST это константа. |
Почитай топик ...
|
прочитал и чего?
|
Цитата:
|
RaZEr Пардон, в смысле поставил ковычки;-)))
Попробовал оба варианта от medved2002 в первом вариант: и не выводя форму сразу выбрасывает в файл index.php Второй вариант работает как нужно, фенкс большое зы. а посылают RTFM, а не RFTM ))) |
Ну тебе лучше знать ;)
|
2RaZEr
действительно :)... Сорри поленился дочитать... :)) А как посылать, это вопрос к посылающему... Я послал правильно и по адресу :) |
| Часовой пояс GMT +4, время: 02:16. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.