以下是我在登录页面上的代码。我希望能够计算出有多少次使用我的网站,以及他们是从哪里登录的。我会计算,但不会计算I地址。
在表中,我希望它像这样显示每个用户的数据
这些是我的表中的列。用户名、上次登录时间、登录次数、IPADDRESS、IPADDRESS1、IPADDRESS、......IPADDRESS10。我已经创建了所有10个不同的ip地址列(我不太确定如何使以下内容看起来像表中的内容,所以我真的很抱歉)
用户名|上次登录|登录次数| IPADDRESS2 | IPADDRESS1 | IPADDRESS ......| IPADDRESS10
IHOP | 21-12-2012 8.59 21|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;
}发布于 2012-08-27 17:10:41
最好使用一个包含(USERNAME | IPADDRESS | TIME)列的单独的表。这样,您将能够更有效(也更容易)地为给定用户存储不同的IP地址。然后,您必须选择一种算法来保留这些信息(保留前10个不同的IP地址?保留最后10个?...)
发布于 2012-08-27 17:16:29
uSe使用userid、ipaddress、logged_in_date_time分隔表。每次他们登录的时候,都要检查他们的IP地址。用于在查询中按ip地址分组,并查看该用户是否有10个不同的ip。现在,如果用户有相同的IP,那么让他in...if这个IP是不同的,并且有超过10个IP不让他进入。
编辑:
但在用户看来,您的需求并不方便。我使用ADSL连接,我的IP地址经常被更改,所以如果你的数据库有我的10个不同的IP地址,我就不能登录到你的系统,这对用户不友好。另外,如果我的系统在网络中,100 %的用户可能会使用相同的IP访问您的系统。
使用准备好的语句、PDO或至少mysqli函数来保证应用程序的安全性。mysql函数已折旧。
发布于 2012-08-27 17:24:47
您应该使用两个表。一个用于存储用户的用户名、密码、上次登录时间和登录计数,另一个用于存储用户的IP地址。您可以存储用户每次登录时的username/userid,ip地址和登录时间戳。
这样,如果您只想存储用户的最后10个ip地址,您可以只过滤sql搜索,使其仅显示该特定用户的ip地址,然后用最新的ip地址条目替换最早的ip地址条目,这样您将始终拥有最后10个条目。
https://stackoverflow.com/questions/12139046
复制相似问题