Php 相同的if-else代码不适用于移动设备

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_

我有一个代码,可以检测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_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']
的内容并了解这些内容