php代码中的标头重定向不起作用

时间:2013-04-14 17:41:55

标签: php http-headers http-redirect

我想在给我发电子邮件后重定向用户。
代码运行,除非我在email() - 方法之后放置一些东西(如header() - 方法) 任何提示?

function process()
{
    $msg = "Form Contents: \n\n";
    foreach($this->fields as $key => $field)
        $msg .= "$key :  $field \n";

    $to = 'mymail@gmail.com';
    $subject = 'thesubject';
    $from = $this->fields['email'];

    mail($to, $subject, $msg, "From: $from\r\nReply-To: $from\r\nReturn-Path: $from\r\n");

    header('Location: thanks.html');
}

4 个答案:

答案 0 :(得分:5)

当我遇到类似的问题时,它通常会在一行末尾丢失分号,或者就像这里的情况一样,缺少括号,因为foreach代码块应该被{}阻止。见documentation

答案 1 :(得分:0)

您的位置应该是绝对的,而不是相对的。

header("Location: /myPath/thanks.html");

答案 2 :(得分:0)

<?php
header("Location: http://www.example.com/"); /* Redirect browser */

/* Make sure that code below does not get executed when we redirect. */
exit;
?>

就我而言,有那些引用标志。这样做了。

答案 3 :(得分:-1)

标题后('location:....');你应该添加一个出口;否则脚本会一直运行直到结束。

header('Location: thanks.html');
exit;