php重定向不';我不能正常工作

php重定向不';我不能正常工作,php,redirect,header,Php,Redirect,Header,我在我的主页上得到了一个简单的重定向,它会对用户使用智能手机或tablett做出反应。课堂正在进行,当智能手机打开侧面时,会给出一个真实的反馈 因此,如果我在if语句中写入一个echo,它就会得到响应。但是重定向不起作用,我弄不懂。有人知道我错过了什么吗 include ('includes/Mobiledetecter.php'); $detect = new Mobiledetecter;

我在我的主页上得到了一个简单的重定向,它会对用户使用智能手机或tablett做出反应。课堂正在进行,当智能手机打开侧面时,会给出一个真实的反馈

因此,如果我在if语句中写入一个echo,它就会得到响应。但是重定向不起作用,我弄不懂。有人知道我错过了什么吗

include ('includes/Mobiledetecter.php');                 
$detect = new Mobiledetecter;                                  
                                 //
if($detect->isMobile() or $detect->isTablet()) {           
    header('Location: http://www.example.com/');
} 

如果没有其他操作,请在设置标题后立即退出:

if($detect->isMobile() or $detect->isTablet()) {           
    header('Location: http://www.example.com/');
    exit;
} 

还考虑头文件只有在尚未将输出发送到浏览器的情况下才能工作,或者显式地(例如:<代码> ECHOR>代码>)(例如:通过在

之前添加任何内容(包括空格),确保您的代码在任何输出之前都位于脚本的最顶端,并且在开始的php标记之前没有空格字符。本质上,您的脚本应该如下所示:

<?php // NOTICE THAT THERE IS NO SPACE BEFORE <?php & NO ECHO BEFORE header(...)

    include ('includes/Mobiledetecter.php');                 
    $detect = new Mobiledetecter;                                  
                             //
    if($detect->isMobile() or $detect->isTablet()) {           
        header("Location: http://www.example.com/");
        exit;
    } 

关于其他人都正确地说您不能同时响应和执行服务器端重定向的内容,这里有一种方法可以说点什么然后重定向:

include ('includes/Mobiledetecter.php');                 
$detect = new Mobiledetecter;                                  
                                 //
if($detect->isMobile() or $detect->isTablet()) {           
     echo "Redirecting you to the example website";
     echo "Click <a href='http://www.example.com/'>here</a> if you are not redirected within 5 seconds";        
     echo "<script> setTimeout(function () { window.location.href='http://www.example.com/'; }, 3000);</script>"
     exit;
} 
include('includes/Mobiledetecter.php');
$detect=新的移动检测器;
//
如果($detect->isMobile()或$detect->isTablet()){
echo“将您重定向到示例网站”;
echo“如果在5秒内未重定向,请单击”;
echo“setTimeout(函数(){window.location.href=”http://www.example.com/'; }, 3000);"
出口
} 

在收割台前尝试ob\u end\u clean功能:

您可能不会在
标题()之前输出任何内容。
是吗?标题在正文之前。这是规则。重定向标题意味着客户端看不到任何中间内容。这很有创意:-)向上投票:对前面的空间有很好的想法听到这个可能听起来有些奇怪,但老实说,你是一个非常真诚和直率的人…只是从目前为止与你的2-3次会面中观察到的…非常感谢向上投票加上表扬;-)非常感谢。如果“输出缓冲”处于启用状态,则将正确设置
标题
,而无需此功能(刚刚测试过此功能)。如果输出缓冲关闭,此函数将不会修复输出问题,因为将没有要清理的缓冲区。所以我不知道这个函数实际上改善了什么情况。我是不是误会了?禅师也来了;-)