在不使用header方法的情况下在PHP中重定向

时间:2014-11-25 09:51:43

标签: php header location

此contact.php表单正在处理提交,然后重定向到新页面,然后突然停止工作。我已经尝试添加错误处理,并将标题移动到所有其他前面的顶部,但都不起作用。表单仍然按预期提交数据,只是重定向不起作用。任何想法都将不胜感激。

  <?php 
    include 'config.php';
    $post = (!empty($_POST)) ? true : false;
    if($post)
    {
    $email = trim($_POST['email']);
    $subject = "Downloaded Course Units";
    $error = '';
    if(!$error)
    {
    $mail = mail(WEBMASTER_EMAIL, $subject, $message, 
        "From: ".$email."\r\n"
       ."Reply-To: ".$email."\r\n"
       ."X-Mailer: PHP/" . phpversion());   
    if($mail)
    {
    echo 'OK';
    header('location: http://www.google.com.au/');
    exit();
    }
    }
    }
    ?>

5 个答案:

答案 0 :(得分:20)

使用javascript。

而不是

header('location: http://www.google.com.au/');

使用,

?>
<script type="text/javascript">
window.location.href = 'http://www.google.com.au/';
</script>
<?php

即使您的浏览器输出了某些内容,它也会重定向。

但是,要做出一个预防措施:即使页面上印有某些内容,Javascript重定向也会重定向您的页面。

确保它不会跳过用PHP编写的任何逻辑。

答案 1 :(得分:4)

在include,echo之后

标头不起作用。 再试一次没有包括,回声。 或者代替函数头 使用

echo '<meta http-equiv="refresh" content="0; URL=http://www.google.com.au/">';

答案 2 :(得分:3)

If you want to redirect to another page after html code then use
location.href javascript method.

参考这个简单的代码

<html>
    <head>
    <title> Using the href property of the Location object</title>
    </head>
    <body>
    <script language="JavaScript">
    <!--
    function show(){
         document.location.href ="http://www.java2s.com";
    }
    -->
    </script>
    <form name="form1">
    <br>
    <input type="button" name="sethref" value="Set href" onClick='show()'>
    <br>
    </form>
    </body>
    </html>

答案 3 :(得分:3)

我用以下方法解决了这个问题:

&#13;
&#13;
function GoToNow ($url){
    echo '<script language="javascript">window.location.href ="'.$url.'"</script>';
}
&#13;
&#13;
&#13;

使用:     GoToNow(&#39; http://example.com/url-&error=value&#39;);

答案 4 :(得分:0)

除了上述答案外,您还可以在文档和主窗口以及iframe中使用以下JavaScript代码:

<script type="text/javascript" >
        window.open('http://www.google.com.au/', '_self');
</script>

_self 在与原来相同的框架中打开链接的文档。

在上面的命令中,第二个参数的值类似于HTML中标记A(<a></a>)中目标属性的值,除了以外,还可以使用以下值_self 值:

_blank 在新窗口或标签中打开链接的文档

_parent 在父框架中打开链接的文档

_top 在窗口的整个正文中打开链接的文档

框架名称:在命名框架中打开链接的文档