我正在使用$ _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表中的字段。
有人可以帮忙吗?
谢谢,
尼克
答案 0 :(得分:0)
您可以通过navigator.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);