以下是登录页面中的代码。我希望能够计算使用我的网站的次数以及他们从哪里登录。我能够计算,但不是ipaddress。
在表格中,我希望它显示每个用户数据,如
这些是我表格中的列。 USERNAME,最后登录,登录时间,IPADDRESS,IPADDRESS1,IPADDRESS,...... IPADDRESS10。我已经创建了所有10个不同的ip地址列(我不确定如何让它们看起来像是在表中,所以我真的很抱歉)
USERNAME |最后登录|登录时间| IPADDRESS | IPADDRESS1 | IPADDRESS2 ...... | IPADDRESS10
IHOP | 21-12-2012 8.59PM | 5 | 80.81.82.83 | 80.81.82.82 | 80.81.82.83
每次使用新的IP地址从同一用户登录时,ip地址都会记录到表中。每个用户最多有10个不同的IP地址。这张桌子是我第一次想到的,所以我不确定这是否是在桌子上展示它们的最佳方式,所以请给我一个推荐。
如何将这些IP地址添加到表中?我不确定如何分隔每个IP地址列。当我得到新的IP地址时,它只是覆盖旧的IP地址。
非常感谢。
var $HOST = "website.com";
var $USERNAME = "username";
var $PASSWORD = "password";
var $DBNAME = "database";
function authenticate($username, $password) {
$Auth = new auth();
$detail = $Auth->authenticate($username, $password);
if (ereg("'", $username))
{
return "invalid username";
}
if (ereg("'", $password))
{
return "invalid password";
}
$query = "SELECT * FROM user WHERE uname='$username' AND passwd=MD5('$password') AND status <> 'inactive'";
$UpdateRecords = "UPDATE user SET lastlogin = NOW(), logincount = logincount + 1 WHERE uname='$username'";
$connection = mysql_connect($this->HOST, $this->USERNAME, $this->PASSWORD);
$SelectedDB = mysql_select_db($this->DBNAME);
$result = mysql_query($query);
$numrows = mysql_num_rows($result);
$row = mysql_fetch_array($result);
if ($numrows == 0) {
return 0;
}
*/
else {
$Update = mysql_query($UpdateRecords);
return $row;
}
答案 0 :(得分:4)
最好有一个包含(USERNAME | IPADDRESS | TIME)列的单独表格。这样,您就能够为给定用户更有效地(并且轻松地)存储不同的IP地址。 那么,你将不得不选择一种算法来保留这些信息(保留前10个不同的IP地址?保留最后10个?...)
答案 1 :(得分:0)
使用userid,ipaddress,logged_in_date_time分隔表。每次登录时,请检查他们的IP地址。在查询中使用GROUP By ipaddress,看看该用户是否有10个不同的ip。现在,如果用户拥有相同的IP,那么让他进去......如果IP不同,并且有超过10个IP,请不要让他进入。
修改强>
但是您的要求在用户看来并不方便。我使用ADSL连接并且我的IP经常更改,因此如果您的数据库有10个不同的IP,那么我不能用户友好而无法登录到您的系统。此外,如果我的系统在网络中,则有100个用户可能使用相同的IP访问您的系统。
使用预准备语句,PDO或至少mysqli函数来实现应用程序安全性。 mysql函数被折旧。
答案 2 :(得分:0)
你应该使用两张桌子。一个用于存储用户的用户名,密码,上次登录时间和登录次数,另一个用于存储IP用户的地址。每次用户登录时,您都可以存储用户的用户名/用户ID , IP地址和登录时间戳。
这样,如果你只想存储用户的最后10个ip地址,你可以只过滤sql搜索只显示该特定用户的ip地址,然后用最新的一个替换最早的ip地址条目,所以你总是有最后10个条目。