Php 相同的if-else代码不适用于移动设备
我有一个代码,可以检测referer是否来自facebook,并显示他/她的facebook弹出框 它在pc和所有浏览器上都能完美工作,但在手机上却不能 我能做什么Php 相同的if-else代码不适用于移动设备,php,mobile,refer,Php,Mobile,Refer,我有一个代码,可以检测referer是否来自facebook,并显示他/她的facebook弹出框 它在pc和所有浏览器上都能完美工作,但在手机上却不能 我能做什么 <?php $ref=$_SERVER['HTTP_REFERER']; $target_site = "https://www.facebook.com/"; if (isset($_SERVER['HTTP_REFERER']) && preg_match("/".preg_quote($target_
<?php
$ref=$_SERVER['HTTP_REFERER'];
$target_site = "https://www.facebook.com/";
if (isset($_SERVER['HTTP_REFERER']) && preg_match("/".preg_quote($target_site,"/")."/i",$_SERVER['HTTP_REFERER'])) {
include "likebox.php";
}
else {
$line = date('Y-m-d H:i:s') . " - $_SERVER[REMOTE_ADDR]";
file_put_contents('visitors.log', $line . PHP_EOL, FILE_APPEND);
include "nolike.php";
}
?>
我刚刚添加了referer,它可以正常工作
<?php
$ref=$_SERVER['HTTP_REFERER'];
$target_site = "https://www.facebook.com/";
$mob="https://m.facebook.com/";
if (isset($_SERVER['HTTP_REFERER']) && preg_match("/".preg_quote($target_site,$mob,"/")."/i",$_SERVER['HTTP_REFERER'])) {
include "archive.php";
}
else {
$line = date('Y-m-d H:i:s') . " - $_SERVER[REMOTE_ADDR]";
file_put_contents('visitors.log', $line . PHP_EOL, FILE_APPEND);
include "404.php";
}
?>
标题Referer
由大多数浏览器发送,但不是必需的标题,因此用户可以省略甚至修改它。看起来移动浏览器不发送referer,因此您最终没有HTTP\u referer
。有什么解决方案吗?如果您可以控制用户如何重定向到您的网站(url),然后更新url以使用get参数,而不是检查get参数是否存在。请注意,默认情况下,手机上的www.facebook.com会重定向到m.facebook.com。请打印($\u服务器['HTTP\u REFERER'])以查看您在移动设备上有哪些引用。@Davidsilosani您需要阅读有关$\u服务器['HTTP\u REFERER']
的内容并了解这些内容