ホームページ  >  記事  >  バックエンド開発  >  カウンター詳細設計_PHPチュートリアル

カウンター詳細設計_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:06:471142ブラウズ

概要:
この設計では、このカウンターに基づいてカウント分析プログラムを設計でき、ページ訪問数と IP 訪問数を分析し、レポートを作成できます。
1. データベース設計
データベースはmysqlを使用します
関連ファイル: createDatabase.sql データベースを作成します
createTblCounter.sql カウンターテーブルを作成します


テーブル名: tpCounter (ページカウンターのテーブル)
フィールド:
名前の型の意味
id Int ( 10 ) auto_increment シリアル番号
pagename varchar(20) ページ識別、デフォルトはページファイル名
count Int(10) カウント値

テーブル名: tiCounter (IP カウンタのテーブル)
フィールド:
名前 型 意味
id Int( 10) auto_increment シリアル番号
ip varchar(20) IP 識別
count Int(10) この IP への訪問数
date datetime 最近のアクセス時刻
pages text 訪問したページ ID ('|' で区切る) 2. 詳細説明:
1. 各 IP への訪問数、最新の訪問時間、および毎回の訪問ページを数えることができます。
2. Web サイト訪問者の数: tpCounter サイト ID に 1 つを設定します [pagename='0' フラグを使用することをお勧めします];
3. ページを開くたびにセッションを確認します。この時点で、このユーザーのセッションを作成し、Web サイト数を 1 増やし、[ページを開くか更新するときに] ユーザー セッションがすでに存在する場合は、訪問したページ数を 1 増やします。存在する場合、Web サイトのカウント値は増加しませんが、ページが更新されるたびにページ数の値が 1 ずつ増加します。したがって、ユーザーのセッションを破棄します。そうでない場合は、破棄されません。 [この機能はプログラムを記述する必要がなく、サーバーが自動的に実行します]
5. アクセス時に、ページが tpCounter にある場合は、識別子が存在せず、レコードも存在しません。
6. Pages は、閲覧者が訪問した時間とページを記録するテキスト タイプで、次のような形式の文字列が含まれます:
||2001-5-1 16:00:00 |1|12|5||2001-8-3 10:12:5|4|9|
この IP が 2001-5-1 16:00:00 ページ、5 ページに 1、12、および 5 を訪問したことを示します。 、4、および 9 は 2001-8-3 10:12:5 にアクセスされました [ページ番号は前の表から取得されます];
7、デザインカウントファイル (.php)、各ページには次の機能が含まれています。 :
1>セッションチェック、
2>データベースに接続、
3>カウント[パラメータはページ名、IP、現在の時刻]、
4>データベースの読み取りと書き込み、
5>ブレークデータベースとの接続を開きます。 ;
8. 訪問したページは次の方法で記録されます:
ユーザー セッションが存在しない場合は、現在のページを書き込みます。書き込みは追記方式で行われます。
9. Web サイト数はこのヘッダー ファイルにあり、ページ数はカウントされたページにあります。
10. 各ページにこのファイルが含まれる場合、ページ数をカウントしたい場合は、変数 $page_name を使用してページ名に割り当てる必要があります。ページ名を繰り返すことはできません。

3. インターフェースの説明:
関連ファイル: counter.php

1/Boolean check_session()
関数の説明: セッションチェック、元々存在する場合は true を返し、存在しない場合は false を返し、ブール変数が存在します
入力パラメータ: なし
終了パラメータ: ブール値
2/site_count($content)
関数の説明: Web サイト訪問数
入力パラメータ: データベース接続
終了パラメータ: カウント値

3/page_count($connect,$ page_name,$ flag=true)
関数の説明: Web ページ数、ページ訪問数を整数で返します、$flag はカウントを増やすかどうかのフラグです、デフォルトは true です
エントリパラメータ: $connect: データベース接続、 $page_name: Web ページ名
終了パラメーター: ページ訪問数


4/show_site_count(int type)
関数の説明: 表示カウント
入力パラメーター: type==1 はグラフィックカウントを使用します
type==2 はテキストカウントを使用します

4. 処理
0/ページへのエントリを確認する 権限
ヘッダー ファイルは参照によってコンパイルされる必要があるため、参照によって渡されているか、直接参照されているかを確認する必要があります
1/ データベースへのリンク
2/ 確認するセッションが存在しない場合は、セッションを作成し、Web サイトをカウントします
3/カウントを表示します
4/ ページカウントを実行します
5/データベースから切断します [自動実装]

5 使用方法
すべての機能は次のとおりです。使用する場合は、このヘッダーファイルをインクルードするだけです。
6. 添付ソースプログラム
/**counter.php v1.0
* by Amio 2001-5-1
* 説明: カウンター ファイル、Web サイト全体をカウントできます、
* すべてのページをカウントできます、各 IP をカウントできます
*/
/**インターフェース実装機能:
* 1>セッションチェック
* 2>データベースへの接続
* 3>カウント
* 4>データベースの読み書き
* 5>リンク部のテーブル出力
*/
?>

//セッションチェック、ブール値を返す
/ / true—このユーザーセッションは存在します
//false—このユーザーセッションは存在しませんfunction check_session(){
$existing=true;
session_start();
if (!session_is_registered("existing")){
session_register ("既存");
false を返します;}} それ以外の場合は true を返します; page_count($connect,$page_name,$flag=true){
$query=@mysql_query("select id,count from tpcounter where pagename='$page_name'",$connect ) または die("無効なページ クエリです!"); if (!(mysql_num_rows($query))){
mysql_query("insert into tpcounter (pagename) ,count) value('$page_name',1)",$connect )or die("ページの挿入に失敗しました");
$pidquery=@mysql_query("select id from tpcounter where pagename='$page_name'",$connect ) または die ("ページ ID の選択に失敗しました");
$pidarray= mysql_fetch_array($pidquery); using use using use ‐ ‐ $num=$array[count]; $pid= $ array [id];
if ($ flag)
$ num ++;
mysql_query ("Update TPCounter Set Count = $ Num WHERE PAGENAME = '$ Page_name'", $ Connect) or ("Update Page Faled"); }

$pquery=@mysql_query("select Pages from ticounter where ip='$ip'",$connect) or die ("無効なページ クエリ!");
if (($flag) &&(mysql_num_rows($pquery) ))){
|";
mysql_query("update ticounter set pages='$pstr' where ip='$ip'",$connect)or die ("update ip failed");
}
return $return_num;
}

//IP カウント、IP 訪問数を整数で返します
//カウントに加えて、時間更新もあります
//$flag はカウントを増やすかどうかのフラグで、デフォルトは true です
//注: ip_count への呼び出しは、page_count の前にある必要があります。 i");
$visit_pages="|"."$visit_time"."|";
$ipquery=@mysql_query("select count,pages from ticounter where ip='$ip'",$connect) or die ("無効な IP クエリです!");

if (!(mysql_num_rows($ipquery))){//新しい IP
$pageStr="|"."$visit_pages"
mysql_query(" ticounter (ip, count,date,pages) 値 (' $ip',1,'$visit_time','$pageStr')",$connect)or die("ip の挿入に失敗しました");
return 1; $ipquery);
$ipnum=$parray[count];
$pageStr="$parray[pages]"."$visit_pages";
$ipnum++;
mysql_query("update ticounter set count=$ipnum,date=' $visit_time', Pages='$pageStr' where ip='$ip'",$connect)or die("update ip failed");
return $ipnum; 整数、Web サイト訪問数
function site_count($connect){
if (!check_session()){ //セッションが存在しません
$ipnum=ip_count($connect)
$num=page_count($connect,"website" ,true);
$。 fileurl= "countpng.php? count=".$num;
Return $fileurl;
}

//カウント値を表示します、type は表示タイプ、length は表示される長さ、デフォルトは 6 です
//type=1 グラフィック形式
// type=2 テキスト形式 (デフォルト)
function show_site_count($num,$length=6,$type=2){

$outStr=strval($num)
for ($i=strlen($outStr )+1) ;$i<=$length;$i++){
$outStr="0"."$outStr"; スイッチ ($type){ :
}
?>

if (! isset($inc))exit ;
$connect=mysql_connect('localhost','root','');//サーバーに接続します
mysql_select_db("damio",$connect); //データベースを選択します。ダミオ

$sitecount=site_count ($connect);
if (isset($page_name))
page_count($connect,$page_name)
;



http://www.bkjia.com/PHPjc/315284.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/315284.html

技術記事

概要: この設計では、このカウンターに基づいてカウント分析プログラムを設計でき、ページ訪問数と IP 訪問数を分析し、レポートを作成できます。 1. データベース設計 データベース取得...





声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。