include("function_config.php");
if($_POST['submit'])
{
if(isset($_POST['name']))
$name = validate_string($_POST['name']);
if(isset($_POST['email']))
$email = validate_string($_POST['email']);
if(isset($_POST['message']))
$message = validate_string($_POST['message']);
if(isset($_POST['code']))
$code = validate_string($_POST['code']);
$fail = validate_name($name);
$fail .= validate_email($email);
$fail .= validate_message($message);
//$fail .= validate_code($code);
echo "<p>$fail</p>"; // Вывод ошибки если она есть
if($fail == "")
{
$date = date('d M Y, H:i:s');
$mess = $date."\nПишет - ".$name.". Его Email - ".$email."\nТекст сообщения:\n".$message;
mail($whom_email, $subject, $mess, $charset);
echo "<p>Ваше письмо отправлено!</p>";
$name = $email = $message = "";
}
}
?>
<form action="<?php $_SERVER['PHP_SELF'];?>" method="POST">
<p><label>Имя:<br><input type="text" name="name" value="<?php echo $name;?>"></label></p>
<p><label>E-mail:<br><input type="text" name="email" value="<?php echo $email;?>"></label></p>
<p><label>Текст сообщения:<br>
<textarea name="message" rows=5 cols=50><?php echo $message;?></textarea></label></p><br>
<p class="captcha_cont"><img src="captcha.php" id="captcha"/><br></p>
<p class="cap_newleft"><a href="javascript:void(0);"
onClick="document.getElementById('captcha').src='captcha.php?rid=' + Math.random();">
Обновить код</a><br></p>
<p><label>Введите код:<br>
<input name="code" type="text" size="25" maxlength="30" class="commform"></label></p>
<p><input type="submit" name="submit" value="Отправить"></p>
</form>
Всем добрый вечер! Почему у меня после перезагрузки страницы обратно отправляется письмо и высвечивается надпись - "Ваше письмо отправлено"? Как мне кажется глобальная переменная submit должна становится false. Помогите пожалуйста решить эту проблему.
Спустя 10 минут (25.05.2011 - 20:26) T1grOK написал(а):
Не понял что за глобальная переменная? submit - это же кнопка, при чем тут глобальная переменная?
То есть у тебя при обновлении страницы опять идет отсылка...так и должно быть. Во избежание этого делай переадресацию после отправки сообщения.
То есть у тебя при обновлении страницы опять идет отсылка...так и должно быть. Во избежание этого делай переадресацию после отправки сообщения.
Спустя 18 минут, 1 секунда (25.05.2011 - 20:44) stalkerk750 написал(а):
$_POST['submit'] это ведь глобальная переменная или нет?! А как переадрисовать ее подскажите пожалуйста. я недавно начал изучять php языка и много чего не знаю, зарание благодарю.
Спустя 8 минут, 31 секунда (25.05.2011 - 20:52) T1grOK написал(а):
ПОСТ глобальный массив, но он существует пока выполняется сценарий.
Переадресация:
Можно переадресовать сам на себя лишь бы избавиться от заголовка который пришел с сообщением.
Переадресация:
header('Location: ccылка');
Можно переадресовать сам на себя лишь бы избавиться от заголовка который пришел с сообщением.
Спустя 27 минут, 30 секунд (25.05.2011 - 21:20) stalkerk750 написал(а):
Наверное глупо спрашивать. А куда его вставить? Я думал что $_POST['submit'] после перезагрузки страницы должен пропустить весь код и вывести форму.
Спустя 2 дня, 21 час, 54 минуты, 40 секунд (28.05.2011 - 19:14) Лена написал(а):
if($fail == "")
{
$date = date('d M Y, H:i:s');
$mess = $date."\nПишет - ".$name.". Его Email - ".$email."\nТекст сообщения:\n".$message;
mail($whom_email, $subject, $mess, $charset);
echo "<p>Ваше письмо отправлено!</p>";
$name = $email = $message = "";
header("Location: http://" . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'];
exit;
}
Спустя 5 часов, 43 минуты, 39 секунд (29.05.2011 - 00:58) stalkerk750 написал(а):
Спасибо за помощь. Я вам очень благодарен.
Спустя 46 минут, 4 секунды (29.05.2011 - 01:44) twin написал(а):
echo "<p>Ваше письмо отправлено!</p>";????????????????????????
$name = $email = $message = "";
header("Location: http://" . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'];
Спустя 1 час, 48 минут, 34 секунды (29.05.2011 - 03:33) inpost написал(а):
Лена
Автоматическую буферизацию надо отключать. Так как на лицо ошибка
Автоматическую буферизацию надо отключать. Так как на лицо ошибка
Спустя 10 часов, 29 минут, 14 секунд (29.05.2011 - 14:02) stalkerk750 написал(а):
Цитата (inpost @ 29.05.2011 - 02:33) |
Лена Автоматическую буферизацию надо отключать. Так как на лицо ошибка |
А что за буферизация и как ее отключить? Я над этой проблемой мучаюсь уже две недели. Буду очень рад если Вы поможете решить эту проблему