dzhem911
@dzhem911
I know H.T.M.L. ;)

Из-за чего возникает проблема с редиректом(http_reverer)?

Всем добрый день.
Работаю на OpenServer(php 5.3, apache 2.2). Писал код на php для отправки e-mail. Сообщение отправляется как нужно, но после отправки должна появиться новая страница с выводом на экран сообщения об успешной отправки письма, но вместо этого выдается следующая ошибка:
"Object not found!

The requested URL was not found on this server. The link on the referring page seems to be wrong or outdated. Please inform the author of that page about the error.
If you think this is a server error, please contact the webmaster.
Error 404

example.com
09/29/14 10:07:49
Apache/2.2.27(Win32)"

Ниже сам код.
Файл index.php
<?php
	session_start();
	if (isset($_POST["send"])) {
	$from = $_POST["from"];
	$to=$_POST["to"];
	$subject=$_POST["subject"];
	$message=$_POST["message"];
	$_SESSION["from"]=$from;
	$_SESSION["to"]=$to;
	$_SESSION["subject"]=$subject;
	$_SESSION["message"]=$message;
	$error_from="";
	$error_to="";
	$error_subject="";
	$error_message="";
	$error=false;
	if (!preg_match("/^[a-z0-9][a-z0-9\.-_]*[a-z0-9]*@([a-z0-9]+([a-z0-9-]*[a-z0-9]+)*\.)+[a-z]+/i", $from)) {
	$error_from="Некорректный e-mail";
	$error=true;
	}
	if (!preg_match("/^[a-z0-9][a-z0-9\.-_]*[a-z0-9]*@([a-z0-9]+([a-z0-9-]*[a-z0-9]+)*\.)+[a-z]+/i", $to)) {
	$error_to="Некорректный e-mail";
	$error=true;
	}
	if (strlen($subject)==0) {
		$error_subject="Не написана тема";
		$error=true;
	}
	if (strlen($message)==0) {
		$error_message="Не написано сообщение";
		$error=true;
	}
	if (!$error) {
	$subject="=?utf-8?B?".base64_encode($subject)."?=";
	$headers="From: $from\r\nReply-to: $from\r\nContent-type: text/plain; charset=utf-8\r\n";
	mail($to, $subject, $message, $headers);
	header("Location: success.php?send=1");
	exit;
	}
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
	<title>Сервис рассылки </title>
	<meta charset="utf-8" />
</head>
<body>
<h1>Отправьте почту!</h1>
<form name="myform" action="index.php" method="post">
<table>
<tr>
<td>От кого:</td>
<td>
<input type="text" name="from" value="<?php echo $_SESSION["from"];?>" />
</td>
<td>
<span style="color: red;"><?php echo $error_from;?></span>
</td>
</tr>
<tr>
<td>Кому:</td>
<td>
<input type="text" name="to" value="<?php echo $_SESSION["to"];?>" />
</td>
<td>
<span style="color: red;"><?php echo $error_to;?></span>
</td>
</tr>
<tr>
<td>Тема:</td>
<td>
<input type="text" name="subject" value="<?php echo $_SESSION["subject"];?>" />
</td>
<td>
<span style="color: red;"><?php echo $error_subject;?></span>
</td>
<tr>
<td>Сообщение:</td>
<td>
<textarea name="message" cols="15" rows="10"><?php echo $_SESSION["message"];?></textarea>
</td>
<td>
<span style="color: red;"><?php echo $error_message;?></span>
</td>
</tr>
<tr>
<td colspan="3">
<input type="submit" name="send" value="Отправить" />
</td>
</tr>
</table>
</form>
</body>
</html>

Файл page.php
<?php 
  echo "<a href=index.php>Ссылка на страницу PHP</a><br />"; 
  echo "Содержимое - ".$_SERVER['HTTP_REFERER'];
?>
  • Вопрос задан
  • 2407 просмотров
Решения вопроса 1
Immortal_pony
@Immortal_pony Куратор тега PHP
После успешной отправки, вы перенаправляете на страницу success.php, которой не существует по-видимому.
header("Location: success.php?send=1");
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы