ユーザーが 1 日に Web サイトにアクセスしていない場合は、Cookie を作成し、データベース レコードのサイト カウンターを更新する次のスクリプトがあります。それ以外の場合は、現在のアクセス数を表示するだけです。現在、インデックス ページをリロードするたびに Cookie が NULL を表示しているため、テーブルが必要以上に更新され続けています。このスクリプトが含まれている場合、インデックス ページで Cookie の値を維持するにはどうすればよいですか?
if (empty($_COOKIE["visits"])) {
// increment the counter in the database
mysql_query("UPDATE visit_counter ".
" SET counter = counter + 1 ".
" WHERE id = 1");
/* Query visit_counter table and assign counter
value to the $visitors variable */
$QueryResult = mysql_query("SELECT counter ".
" FROM visit_counter WHERE id = 1");
// Place query results into an associative array if there are any
if (($row = mysql_fetch_assoc($QueryResult)) !== FALSE) {
$visitors = $row['counter'];
} else {
// else if this is the first visitor set variable to 1
$visitors = 1;
}
// Set cookie value
setcookie("visits", $visitors, time()+(60*60*24));
} else {
$visitors = $_COOKIE["visits"];
}
Cookieスクリプトはインデックスファイルに含まれているため、以下がインデックスファイルになります...
<?php include("Includes/cookie.php"); ?>
var_dump($_COOKIE["visits"]); /* Always returns NULL on this page but
returns the cookies real value if
run straight from cookie.php script */
/* Some main page content goes here */
/* The cookie value is echoed in the footer file that is included by
creating a statement that says echo "total visitors: ".$visitors; */
<?php include("Includes/footer.php"); ?>