0

ユニーク ビジター数を表示できるスクリプトを見つけましたが、問題があるようです。停止するまでに 3 回カウントします。私はPHPが得意ではありませんが、問題を理解しようとしましたが、できませんでした。私のコードに何か問題がありますか? これを行うための別のより良い、より簡単な方法はありますか?

<?php

$filename = "UniqueCount.txt";

if (!file_exists($filename))
{
// hits.txt doesn't exist, let's try to create it.
$fd = fopen($filename, "w+");
fclose($fd);
}

$file = file($filename);
$file = array_unique($file);
$hits = count($file);

// Print out the number of unique visitors we have had.
echo $hits;

$fd = fopen($filename, "r");
$fstring = fread($fd, filesize($filename));
fclose($fd);

$fd = fopen($filename, "w");
$fcounted = $fstring . "
" . $_SERVER["REMOTE_ADDR"];
$fout = fwrite($fd, $fcounted);
fclose($fd);

?>

ファイルを作成するときに起動します。私は言って、エラーを取得します

0 Warning: fread() [function.fread]: Length parameter must be greater than 0 in /home/content/46/10721146/html/UniqueHits.php on line 20

前もって感謝します、

エリートゲーマー

4

1 に答える 1

1

データベースにデータを保存するためのより簡単で完璧な方法があります。

2 つのテーブルを作成する

CREATE TABLE `pageview` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`page` text NOT NULL,
`userip` text NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1

// トータルビュー

CREATE TABLE `totalview` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`page` text NOT NULL,
`totalvisit` text NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1

挿入テーブルと更新テーブル

$check_ip = mysql_query("select userip from pageview where page='yourpage' and userip='$user_ip'");
if(mysql_num_rows($check_ip)>=1)
{

}
else
{
  $insertview = mysql_query("insert into pageview values('','yourpage','$user_ip')");

  $updateview = mysql_query("update totalview set totalvisit = totalvisit+1 where page='yourpage' ");
}

完全なチュートリアルはこちらhttp://talkerscode.com/webtricks/create-a-simple-pageviews-counter-using-php-and-mysql.php

于 2016-03-08T15:34:38.357 に答える