2012-10-12 31 views
0

我尝试,如果他们使用Internet Explorer将用户重定向到另一个页面,但是这个代码doen't重定向他们来说,加载页面了正常的即PHP的Internet Explorer重定向头不工作

我曾尝试不同的变化的MSIE,但似乎没有任何工作

session_start(); 

    if (strpos($_SERVER['HTTP_USER_AGENT'], '/MSIE/i') !== false){ 
header('Location: /ie.php'); 
die(); 
}else{ 
echo "User Agent not recognised."; 
} 

任何人有什么想法?

回答

6

试试这个:

session_start(); 

if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false){ 
    header('Location: /ie.php'); 
    die(); 
}else{ 
    echo "User Agent not recognised."; 
} 

的原因是,strpos的第二个参数,针,不应该是一个正则表达式。

+0

谢谢你试过这个,但是仍然没有在任何想法中工作,为什么? – neeko

+0

抱歉正在工作,非常感谢! – neeko

+0

不应该有绝对路径吗? – ninaj

0

/MSIE/i从未设置

试试这个

if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) 
{ 
    header('Location: /ie.php'); 
    die(); 
} 
else 
{ 
    echo $_SERVER['HTTP_USER_AGENT']; 
} 
-2

尽量把ob_start();在PHP文件顶部

+0

请仔细阅读问题 – GBD

+0

为什么............ – wesside

0

更改'/MSIE/i'只需MSIE并尝试它。另外,你需要die()函数吗?

1

有在你不需要的PHP在所有的另一种方式,它的条件注释:

<!--[if IE]> 
<?php echo "User is using Internet Explorer"; ?> 
<![endif]--> 

<!--[if IE 6]> 
<?php echo "User is using Internet Explorer 6"; ?> 
<![endif]--> 

等等

你也可以得到,如果在资源管理器是IE,如果的版本比X小或更大:

代码如果用户使用IE和它的下面版本9 代码如果用户使用IE和它的下方小于或等于7版0123如果 代码用户使用IE浏览器,它比版本高6

的优点是,你还可以选择浏览器的版本,容易实现,并且使用的是从你的服务器的xD少一点资源(尽管这将是一个微不足道的区别)。

另一个优点是,您可以使用它来根据浏览器在页面的标题中包含css或js文件。

缺点是,由于基于浏览器(客户端),您的控制较少。

+0

这些if会被执行浏览器端,所以php在这里没有用处,因为它会执行两条路径 – ninaj

+0

是的if是被执行的客户端,但他们仍然会触发PHP代码,这只是一种替代方案,我个人喜欢将不重要的东西留给客户端,在某些情况下您必须(例如使用Google Maps API时) – aleation