ユーザーテーブルに「オンライン」の列があり、90分ごとに更新され、最後にオンラインだった時間が次のように表示されます。
2012-11-22 19:15:18
ユーザーが過去 90 分以内にオンラインだった場合、ログインを停止するにはどうすればよいですか?
現在、サイト通貨の正当な金額の 10 倍を獲得することで、人々が私のシステムを悪用しています。
編集:
HTML ログインフォーム:
<form method="post" action="">
<input class="l_form" onfocus="if(this.value == '<?=$lang['b_14']?>') { this.value = ''; }" onblur="if(this.value=='') { this.value = this.defaultValue }" value="<?=$lang['b_14']?>" name="login" type="text">
<input class="l_form" onfocus="if(this.value == '<?=$lang['b_15']?>') { this.value = ''; }" onblur="if(this.value=='') { this.value = this.defaultValue }" value="<?=$lang['b_15']?>" name="pass" type="password">
<?=$errMsg?>
<div class="buttons">
<input class="gbut" name="connect" value="<?=$lang['b_13']?>" type="submit"><br /><br />
<span style="float:right;display:inline"><a href="recover.php" style="font-size:12px"><?=$lang['b_16']?></a></span>
</div>
</form>
Is online の機能があります。
/* User Session */
$is_online = (isset($_SESSION['EX_login']) ? true : false);
if(isset($_SESSION['EX_login'])){
$sql = $db->Query("SELECT *,UNIX_TIMESTAMP(`online`) AS `online` FROM `users` WHERE (`login`='".$_SESSION['EX_login']."' OR `email`='".$_SESSION['EX_login']."')");
$data = $db->FetchArray($sql);
if($data['id'] == ''){
session_destroy();
}elseif($data['online']+90 < time()){
$db->Query("UPDATE `users` SET `online`=NOW() WHERE `id`='".$data['id']."'");
}
}