将变量从操作脚本插入到 MySQL 表中


inserting variable from actionscript into MySQL table

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

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

有人可以帮忙吗?

谢谢

缺口

您可以通过 navigator.userAgent 获取带有 javascript 的用户代理

在 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);