2017-07-26 94 views
1

帮助!我尝试了一些不同的代码,但没有任何工作可以重定向到移动设备。我是一个GoDaddy的服务器上,这里是我的代码,在index.php中我的PHP手机重定向不起作用

<?php 
$iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone"); 
$android = strpos($_SERVER['HTTP_USER_AGENT'],"Android"); 
$palmpre = strpos($_SERVER['HTTP_USER_AGENT'],"webOS"); 
$berry = strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry"); 
$ipod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod"); 

if ($iphone || $android || $palmpre || $ipod || $berry == true) 
{ 
header('Location: http://mobile.practicallunacy.com/'); 
} 
?> 

---编辑--- 这就是我把它改成。试着对我轻松一下,我对php知之甚少。

<?php 
    $iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone"); 
    $android = strpos($_SERVER['HTTP_USER_AGENT'],"Android"); 
    $palmpre = strpos($_SERVER['HTTP_USER_AGENT'],"webOS"); 
    $berry = strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry"); 
    $ipod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod"); 

if ($iphone = true) if ($android = true) if ($palmpre = true) if ($ipod =  true) if ($berry = true) 
{ 
header('Location: http://mobile.practicallunacy.com/'); 
} 
?> 

---- ----编辑

基于东西别人告诉我这样做,这是新的代码,我已经把...它仍然是行不通的。

<?php 
$iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone"); 
$android = strpos($_SERVER['HTTP_USER_AGENT'],"Android"); 
$palmpre = strpos($_SERVER['HTTP_USER_AGENT'],"webOS"); 
$berry = strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry"); 
$ipod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod"); 

if ($iphone == true) 
{ 
header('Location: http://mobile.practicallunacy.com/'); 
} 
if ($android == true) 
{ 
header('Location: http://mobile.practicallunacy.com/'); 
} 
if ($palmpre == true) 
{ 
header('Location: http://mobile.practicallunacy.com/'); 
} 
if ($ipod == true) 
{ 
header('Location: http://mobile.practicallunacy.com/'); 
} 
if ($berry == true) 
{ 
header('Location: http://mobile.practicallunacy.com/'); 
} 
?> 
+0

'如果($ iphone || $安卓|| $ PalmPre的|| $的iPod || $浆果==真)'那是不正确的语法。他们需要分开明确地完成。 –

+0

好的,我改变了它。仍然不起作用。 :/ –

+0

*“仍然不起作用”*这不是一个很好的描述什么是不工作。您需要使用您现在使用的代码更新您的文章,并发布可能通过使用php的错误报告以及如何使用它(如果在托管或本地计算机服务器上)以及如何使用它们的错误。 –

回答

0
if(($iphone || $android || $palmpre || $ipod || $berry) === true){ 
header('Location: http://mobile.practicallunacy.com/'); 
} 

你需要在if语句双paranthesis,请注意之间the operators

0

你的语法性差异是完全错误的,这个代码就不会运行。您的最终尝试在语法上是正确的,但没有考虑到strpos()的变幻莫测,如果匹配,它可以返回0

<?php 
$iphone = strpos($_SERVER['HTTP_USER_AGENT'], "iPhone"); 
$android = strpos($_SERVER['HTTP_USER_AGENT'], "Android"); 
$palmpre = strpos($_SERVER['HTTP_USER_AGENT'], "webOS"); 
$berry = strpos($_SERVER['HTTP_USER_AGENT'], "BlackBerry"); 
$ipod = strpos($_SERVER['HTTP_USER_AGENT'], "iPod"); 

if ($iphone !== false || $android !== false || $palmpre !== false || $ipod !== false || $berry !== false) { 
    header("Location: http://mobile.practicallunacy.com/"); 
} 

请注意使用严格的等式检查; 0 == true,但0 !== true

虽然,这是一个正则表达式搜索一个良好的使用:

<?php 
if (preg_match("/iphone|android|webos|blackberry|ipod/i", $_SERVER['HTTP_USER_AGENT'])) { 
    header("Location: http://mobile.practicallunacy.com/"); 
}