重定向不适用于IE 9的PHP代码
该页面不会重定向IE9,但可以在Chrome和IE11中使用。当用户在没有完成凭据的情况下单击登录按钮时,代码应显示文本和错误消息。该页面将粘贴到URL,不会响应以下代码 IE9及以下版本是否存在导致重定向无法在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
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');