2

我正在使用 $_SERVER['HTTP_USER_AGENT'] 将上传文件到我的网站的用户的浏览器和操作系统插入到 MySQL 表中。我正在使用uploadifive,它可以在不支持HTML5 的浏览器中使用flash (uploadify)。使用 Flash 时,不使用 $_SERVER['HTTP_USER_AGENT'] 返回操作系统和浏览器,而是看到“Adobe Flash Player 11”。

我可以从本教程中看到,我可以在uploadify flash 文件中添加一些动作脚本以返回浏览器。ExternalInterface.call 返回与 $_SERVER['HTTP_USER_AGENT'] 相同的信息,该信息存储在 userAgent 变量中。我不确定如何将它与插入 MySQL 数据库集成。我需要一个参数来插入 MySQL 表中的字段。

有人可以帮忙吗?

谢谢,

缺口

4

1 回答 1

0

您可以通过 javascript 获取 userAgentnavigator.userAgent

在 Uploadify 中应该有一个类似于以下内容的 js:
在本例中,服务器文件是 uploadify.php,因此您可以像在任何其他 url 中一样轻松传递值。

$(function() {
    $('#file_upload').uploadify({
        'swf'      : 'uploadify.swf',
        'uploader' : 'uploadify.php' + '?ua=' + encodeURIComponent(navigator.userAgent)
    });
});

因此,在uploadify.php 中,您可以通过以下方式访问用户代理

$_GET['ua']

现在您只需要检查实际分配了哪个输入变量:

$userAgent = '';
if (isset($_SERVER['HTTP_USER_AGENT'] && false === strstr($_SERVER['HTTP_USER_AGENT'], 'Adobe Flash Player') {
    $userAgent = $_SERVER['HTTP_USER_AGENT'];
} else {
    $userAgent = $_GET['ua'];
}

所以你可以在你的 mysql 语句中使用 $userAgent 。
但是不要忘记使用mysql_real_escape_string(或使用 PDO 绑定)来逃避它:

$userAgent = mysql_real_escape_string($userAgent);
于 2012-06-04T18:00:39.000 回答