重定向不适用于IE 9的PHP代码

重定向不适用于IE 9的PHP代码,php,internet-explorer,Php,Internet Explorer,该页面不会重定向IE9,但可以在Chrome和IE11中使用。当用户在没有完成凭据的情况下单击登录按钮时,代码应显示文本和错误消息。该页面将粘贴到URL,不会响应以下代码 IE9及以下版本是否存在导致重定向无法在PHP中工作的已知问题 if(!empty($_POST["email"])){ $_SESSION["Email"] = $_POST["email"]; redirect("customer.php?action_nm=custlogin&a

该页面不会重定向IE9,但可以在Chrome和IE11中使用。当用户在没有完成凭据的情况下单击登录按钮时,代码应显示文本和错误消息。该页面将粘贴到URL,不会响应以下代码

IE9及以下版本是否存在导致重定向无法在PHP中工作的已知问题

    if(!empty($_POST["email"])){
        $_SESSION["Email"] = $_POST["email"];

        redirect("customer.php?action_nm=custlogin&action=xpwd"); 
        exit; 
        }
        else
        {

        redirect("customer.php?action_nm=custlogin&action=nocredentials"); 
        exit;           
        }
    }
这是下面的功能:

function redirect($s){
echo '<script language="JavaScript">
function redir()  { document.location="'.$s.'"; }
console.log("' . $s . '")
redir();

 </script>';
}
函数重定向($s){
回声'
函数redir(){document.location=“'.$s.'”;}
console.log(“.$s.”)
redir();
';
}

我认为您的重定向功能出现故障,因为您没有在那里发布它,我正在发布我自己的版本

我使用这个功能重定向,到目前为止还没有任何问题

 function redirect($url) {
        try {
            if (!headers_sent()) {
                @header('Location: ' . $url);
                exit;
            } else
                throw new Exception();
        } catch (Exception $ex) {
            // Headers already sent!! Redirect via Javascript?
            echo '<script type="text/javascript">';
            echo 'window.location.href="' . $url . '";';
            echo '</script>';
            // Javascript disabled, redirect via metatags?
            echo '<noscript>';
            echo '<meta http-equiv="refresh" content="0;url=' . $url . '" />';
            echo '</noscript>';
            exit;
        }
    }
函数重定向($url){
试一试{
如果(!headers_sent()){
@标题('位置:'。$url);
出口
}否则
抛出新异常();
}捕获(例外$ex){
//标题已发送!!是否通过Javascript重定向?
回声';
echo'window.location.href=“”.$url.“;”;
回声';
//Javascript已禁用,是否通过元标记重定向?
回声';
回声';
回声';
出口
}
}

要进行重定向,必须在响应的HTTP头中输入以下行:

Location: customer.php?action_nm=custlogin&action=xpwd
现在,要将任何内容放入头中,您可能还没有将任何内容写入输出缓冲区,或者您所能做的就是将内容放入HTTP主体中

换句话说,在该行之前渲染的任何内容(即使是空白)都会使该方法无法工作

PHP的最佳实践是从第一个字节开始打开标记:

<?php

这是毫无疑问的。如果没有,那是因为响应脚本的某个部分已经填充了输出缓冲区。无法绕过此参数。

向我们展示
重定向()
函数的内容?该函数已添加,并且不会接受Post的格式为什么使用javascript进行重定向?10美元是
控制台.log()
;)这是别人的密码…我是被雇来修的。再次感谢您的帮助,它适用于其他浏览器。我认为你的答案与所有浏览器有关,对吗?将这些行复制并粘贴到一个简单的静态页面中,然后用IE9打开它。最后一件可能影响这一点的事情是你自己的浏览器。如果可以,试着从另一台机器上用IE9打开这个简单的静态页面。
<?php

header('Location: customer.php?action_nm=custlogin&action=xpwd');