我设置了一个 mysql,它可以正常工作,但是我还想做一件事。有没有一种方法可以在用户输入用户名和密码并单击登录时将其浏览器和浏览器版本存储在 mysql 的新列中?
最佳答案
我假设服务器端技术是 php因为你提到了 mysql .如果这不正确,请告诉我,我会更正以下内容。
<?php
$username = $_POST['username'];
$password = $_POST['password'];
$agent = $_SERVER['HTTP_USER_AGENT'];
$db = new PDO(...);
$query = $db->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
if (($result = $query->execute(array($username, MD5($password)))) !== false){
// login user
$log = $db->prepare("INSERT INTO log (username, agent) VALUES (?, ?)");
$log->execute(array($username, $agent));
}
您可以使用 $_SERVER['HTTP_USER_AGENT']
获取他们的浏览器(并解析该值以确定实际代理(例如 IE、Firefox、Opera 等)),然后保存该信息返回数据库。
更新
首先,您需要向 user
表添加一个新列以允许添加一条额外的信息(浏览器):
ALTER TABLE user
ADD COLUMN useragent VARCHAR(100);
这需要直接在数据库上执行,所以无论您最初添加了 user
表,您都需要执行上面的代码(我猜是 phpMyAdmin?)
接下来您需要修改您的 UPDATE
调用以还包含用户代理:
$sql = "UPDATE user
SET logindate = NOW(),
useragent = '" . mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']) . "'
WHERE username = '" . $input_username . "'";
mysql_query($sql) or die('Error in SQL: ' . mysql_error());
这应该就是全部了。
关于php - 检索访问者的浏览器/版本并将其存储在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9620352/