0

如果用户在某个操作系统上使用某个浏览器,我需要能够运行 mysql 查询并省略某些结果。我的数据库查询发生在 AMFPHP 服务中,我有一个 javascript browserDetect 脚本,可用于获取用户浏览器和操作系统。

理想情况下,我想在用户到达我的页面时运行 browserDetect 脚本,然后将其存储在 PHP 会话变量中,但我看不到如何将 javascript 变量传递给 PHP 会话。这将允许我的数据库查询脚本查找会话并相应地修改查询。我还尝试在 AMFPHP 脚本中包含浏览器检测脚本,但这不起作用 - 我意识到这是服务器端与客户端的问题。

还有哪些其他解决方案对我有用?

谢谢

4

4 回答 4

4

为什么不只用 PHP 来完成呢?PHP 还能够获取浏览器和操作系统...
$_SERVER['HTTP_USER_AGENT']包含浏览器和操作系统...

于 2010-12-20T12:36:28.913 回答
2

正如@thedom 所说,只需$_SERVER['HTTP_USER_AGENT']在 PHP 中使用。您的用户代理(除非用户修改)将包含浏览器、浏览器版本和操作系统。这是我的:

Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.15 (KHTML, like Gecko) Chrome/10.0.612.1 Safari/534.15

但是,如果您想使用 javascript,则必须执行类似于我为实现 ajax 登录所做的事情。

我基本上把它放在脚本的顶部(login.php)

session_id($_POST['PHPSESSID']);
session_start();

这在页面中将运行 javascript 以检测会话 (index.php)

$sessionid = ($_COOKIE['PHPSESSID']) ? $_COOKIE['PHPSESSID'] : $_GET['PHPSESSID'];
<script type="text/javascript">var session = "$sessionid";</script>

然后我发布到另一个脚本(login.php)(在这种情况下通过 ajax 登录)

$.post("ajax/login.php",PHPSESSID=" + session);

使用 jQuery。

于 2010-12-20T14:03:50.933 回答
1

您可以将 browserDetect javascript 的结果设置为 javascript cookie,PHP 能够从中读取 cookie

详细信息:如何使用 PHP 读取 Javascript cookie

于 2010-12-20T12:35:29.747 回答
0

另一种解决方案是让 javascript 发出包含 OS/Browser 的 ajax 请求,但更好的方法可能是解析用户代理。

于 2010-12-20T14:08:10.350 回答