我想知道php是否可以远程存储当用户登录时,如日期和ipaddress,也许使用"COOKIES"或数据库,我不知道,我不确定。顺便说一句,我的问题是,如果我最后一次登录是"4/5/2014从108.25.1.123"
会回显
- 上次登录:4/5/2014从108.25.1.123
忽略数据库和cookies如果我错了
你可以在网站的所有文件中加入一个foot.php文件。这个foot.php的代码是这样的:
<?php
$ip_address = $_SERVER['REMOTE_ADDR'];
$last_login = date("Y-m-d H:i:s");
$connection = mysql_connect($server, $username, $password);
mysql_select_db($db, $connection);
$query = sprintf('UPDATE table_users SET ip_address=%s, last_login=%s WHERE user_id=%s', $ip_address, $last_login, $_SESSION['user_id']);
?>
这将确保每当用户访问您网站中的页面时,数据库将自动更新。希望这对你有所帮助。:)
编辑: PDO版本:
<?php
$ip_address = $_SERVER['REMOTE_ADDR'];
$last_login = date("Y-m-d H:i:s");
$connection = new PDO('mysql:host=localhost;dbname=testdb', $username, $password);
$query = sprintf('UPDATE table_users SET ip_address=%s, last_login=%s WHERE user_id=%s', $ip_address, $last_login, $_SESSION['user_id']);
$count = $connection->exec($query);
printf('Updated $count rows.');
?>
数据库方法在用户成功登录后,我猜你重定向用户,例如
login.hp
if(){
//validations
}
else{
update_last_sign_in();//call function which updates the last login
//success redirect the user
}
如果你愿意,你可以在其他文件或同一页面上设置这个函数。
function update_last_sign_in()
{
$username = $_SESSION['logged_in_user'];
$ip = $_SERVER['REMOTE_ADDR'];
$date = date('Y-m-d H:i:s');
$database = new mysqli('localhost', 'user', 'pass', 'database_name');
$stmt = $database->prepare('UPDATE last_login set username = ?, user_ip = ?, login_date = ?');
$stmt->bind_param('sss', $username, $ip, $date);
$stmt->execute();
}