我已经设置了一个mysql并且它已经完全正常工作但是我还想做更多的事情。有没有办法当用户输入他们的用户名和密码并点击登录时,会将他们的浏览器和浏览器版本存储在mysql的新列中?
答案 0 :(得分:2)
我假设服务器端技术是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
调用以包含useragent:
$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());
这应该是它的全部内容。