如何将结果转发到URL

时间:2015-11-18 05:58:53

标签: php

如果没有错误,如何让下面的代码重定向到另一个页面?

// If there are no errors, send the email
if (!$errName && !$errEmail) {
    if (mail ($to, $subject, $body, $from)) {
        $result= 'http://www.example.com';
            } else {
    $result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later.</div>';
    }

目前,由于网址位于刻度线之间,因此将其写入页面,我不知道用于制作的符号实际上是有效的。

4 个答案:

答案 0 :(得分:2)

在您的网址后使用以下内容:

header('Location: ' . $result, true);
exit;

它会重定向到您想要的页面。

答案 1 :(得分:1)

使用PHP标头功能,如下所示:

// If there are no errors, send the email
if (!$errName && !$errEmail) {
    if (mail ($to, $subject, $body, $from)) {
        header('Location: http://www.example.com');
        die();
    } else {
        $result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later.</div>';
    }

标头功能必须在任何echo,print或其他输出语句之前。

确保在重定向后使用die(),否则可能是安全问题。如果没有die()命令,PHP将继续将其余的PHP文件发送到Web客户端。用户可以通过阻止任何重定向来捕获此信息。当然如果在此之后文件中没有其他语句你不需要使用die(),但每次你有一个重定向都是一个好习惯,你永远不知道是否可以添加更多代码。

答案 2 :(得分:0)

您可以简单地使用location.href

if (!$errName && !$errEmail) {
    if (mail ($to, $subject, $body, $from)) {
        $result= 'http://www.example.com';
        echo "<script>location.href='$result'</script>";
    } else {
    $result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later.</div>';
}

或PHP的header功能

if (!$errName && !$errEmail) {
        if (mail ($to, $subject, $body, $from)) {
            $result= 'http://www.example.com';
            header("Location: $result"); 
        } else {
        $result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later.</div>';
}

但是当你使用标题功能时:

  

请记住,在任何实际输出之前必须调用header()   通过普通HTML标记,文件中的空行或PHP发送。   使用include或require读取代码是一个非常常见的错误,   函数或其他文件访问函数,并且有空格或空   调用header()之前输出的行。一样的问题   使用单个PHP / HTML文件时存在。

答案 3 :(得分:0)

简单重定向

要将访问者重定向到另一个页面(在条件循环中特别有用),只需使用以下代码:

<?php    
  header('Location: http://www.example.com');    
?>

如果目标页面在另一台服务器上,则包含完整的

<?php    
  header('Location: http://www.example.com/mypage');    
?>

HTTP标头

临时/永久重定向

默认情况下,上面显示的重定向类型是临时的。这意味着谷歌等搜索引擎不会考虑索引。 因此,如果您想通知搜索引擎页面已永久移动到其他位置:

<?php 
  header('Status: 301 Moved Permanently', false, 301);    
  header('Location: http://www.example.com');    
?>

解释PHP代码

位于header()之后的PHP代码将由服务器解释,即使访问者移动到重定向中指定的地址,这意味着在大多数情况下,您需要一个遵循header()函数的方法exit()函数,以减少服务器的负载。

<?php
  header('Status: 301 Moved Permanently', false, 301);    
  header('Location: http://www.example.com');    
?>