将actionscript中的变量插入MySQL表

时间:2012-06-04 15:15:45

标签: php mysql flash uploadify user-agent

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

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

有人可以帮忙吗?

谢谢,

尼克

1 个答案:

答案 0 :(得分:0)

您可以通过navigator.userAgent

使用javascript获取userAgent

在Uploadify中应该有类似以下的js:
在此示例中,服务器文件是uploadify.php,因此您可以轻松地进行操作 像任何其他网址一样传递值。

$(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);