我正在构建一个登录应用程序,我想存储用户注册的日期和上次登录日期以及最后一次登录ip。
创建表时,我应该为这三列中的每一列赋予哪种类型?
当我插入新的用户名和其他数据时,我该如何处理?
我应该使用PHP来获取注册日期还是应该使用mysql的当前日期?
对于上次登录日期和IP,我该怎么办?
答案 0 :(得分:1)
CreatedDate : datetime
LastLoginDate : datetime
LastLoginIp : varchar(20)
检查此链接以了解如何获取用户的IP。 http://www.plus2net.com/php_tutorial/php_ip.php
当用户尝试登录时,您检查数据库的用户名和密码,如果用户有效,请获取用户IP并更新您的表,将此IP地址作为" LastLoginIp"的值。列。
答案 1 :(得分:1)
创建表时,我应该给这三种类型中的每一种 列?
create_date
和last_login_date
DATETIME
和last_login_ip
VARCHAR
我应该使用PHP来获取注册日期,还是应该使用mysql? 当前日期?
除非您被要求不使用MySQL特定功能,否则无关紧要。
对于上次登录日期和IP,我该怎么办?
当用户登录时,运行使用当前时间戳填充last_login_date
的更新语句,并使用last_login_ip
的内容填充$_SERVER['REMOTE_ADDR']
。
答案 2 :(得分:1)
对于createdDate
和lastLoginDate
使用datetime
字段,对于IP地址int
字段并通过PHP的ip2long()
函数插入数据,请参阅{{ 3}}
要检索数据,您可以在MySQL级别上执行此操作:
SELECT INET_NTOA(ip) FROM 'log' WHERE
要获取真实的IP地址,您还要检查代理:
if (!empty($_SERVER['HTTP_CLIENT_IP'])){
$ip=$_SERVER['HTTP_CLIENT_IP'];
//Is it a proxy address
}elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$ip=$_SERVER['REMOTE_ADDR'];
}