Web サイトのヒット カウンターを作成しようとしており、そのための次のコードを開発しました。次のコードは、ホームページの Codeigniter のメイン コントローラーにのみ含めました。
最初はコードが正常に機能していると思っていましたが、ページを閲覧し続けないと、再びホームページにアクセスしてもデータが更新されないことがわかりました。たとえば、初めてホームページにアクセスするとデータが更新されますが、10 秒後にページを更新してもデータは更新されません。しかし、10秒間更新し続けると、機能します。
ページを何度も閲覧したり、ホームページを更新したりせずにデータを更新する方法を教えてください。
ありがとう :)
function __construct() {
parent::__construct();
// Visitor Counter
if (!$this->session->userdata('timeout')) {
$out = time() + 10; // I will change it to $out = time() + 60*60; later
$this->session->set_userdata('timeout', $out);
mysql_query("UPDATE cane_visitor_counter SET visitor_stat = visitor_stat+1
WHERE id = '1'");
} else {
$timeout_time = $this->session->userdata('timeout');
if (time() > $timeout_time) {
$this->session->set_userdata(array('timeout' => ''));
$this->session->sess_destroy();
}
}
}
編集
私が達成しようとしているのは、ユーザーが初めて Web ページにアクセスしたときに、データベースを更新したいということです。10 秒以内に (目的など)、訪問者が再びホームページにアクセスした場合、データベースは更新されません。しかし、10 秒後に彼が再びホームページにアクセスした場合、データベースを更新したいと思います。
ありがとう :)