0

成功提交表单后,我想将用户重定向到感谢页面。我使用以下脚本,但收到错误消息。请帮忙。

<?php
session_start();

$name = check_input($_POST['name'], "Name cannot be empty.");
$email     = check_input($_POST['email'], "Email address cannot be empty.");

if(!preg_match("/^([A-Za-z\s\-]{2,45})$/i", $name))
{ 
show_error("name not valid.");
}

if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
show_error("Email address not valid.");
}

htmlentities ($message, ENT_QUOTES);

require("../PHPMailer/class.phpmailer.php");

$mail = new PHPMailer();

$mail->From     = "$email";
$mail->AddAddress("myfriend@example.net");

$mail->Subject  = "An HTML Message";
$mail->Body     = "Hello, <b>my friend</b>! \n\n This message uses HTML entities!";
$mail->WordWrap = 50;

foreach(array_keys($_FILES['photo']['name']) as $key) {
$source = $_FILES['photo']['tmp_name'][$key]; // location of PHP's temporary file for this.
$filename = $_FILES['photo']['name'][$key]; // original filename from the client

$mail->AddAttachment($source, $filename);
}

/* Redirect visitor to the thank you page */
header('Location: pthankyou.php');
exit();

function check_input($data, $problem='')
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlentities($data);
if ($problem && strlen($data) == 0)
{
    show_error($problem);
}
return $data;
}

function show_error($Error)
{}
?>

错误信息

警告:无法修改标头信息 - 标头已由第 66 行 process.php 中的(输出开始于 PHPMailer/class.phpmailer.php:1370)发送

4

1 回答 1

1

redirect()是一个特定的 php 内置函数,需要在任何输出之前调用。

输出可能是:

  • 回声
  • html标签
  • 变量转储
  • <?php标签前的空格

但是,我没有看到redirect()包含在您的代码中。如果您需要更具体的帮助,您必须在问题所在的位置包含代码片段。

于 2013-03-06T08:51:42.353 回答