計數器詳細設計_PHP教程
概述:
此設計可以在本計數器基礎之上設計計數分析程序,可以對頁面訪問、ip訪問次數進行分析,並形成報表。
一、資料庫設計
資料庫採用mysql
相關檔案: createDatabase.sql 建立資料庫
表名:tpCounter(table of pages counter)
欄位:
姓名 類型 意義
id Int (10)) auto_increment Int(10) 計數值
表名:tiCounter(table of ip counter)
欄位:
名稱 類型 意義
id /10) auto 意義
id /10) autouto製造序列編號count Int(10) 此ip造訪次數
date datetime 近期造訪時間
pages 1. 可以對每個頁面進行計數,也可以統計每個ip訪問的次數,最近訪問時間,以及每次訪問的頁面,需要兩個表;
2、 統計網站訪問人次:tpCounter中設定一個站標識[建議用pagename='0'標誌];
3、 每次打開頁面時都先檢查session,若不存在該用戶的session,說明是剛開始訪問本網站,此時創建一個此用戶的session,對網站計數增加1,對所訪問頁面計數增1;[打開或刷新頁面時]如果該用戶session已存在,網站計數值不增加,但是頁面計數值每刷新一次都要增1;
4、 關閉頁面時,檢查該使用者開啟本網站頁數是否為0,是則銷毀該使用者的session,否則不銷毀;[此功能不需編寫程序,伺服器自動執行]
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訪問了1、12、5頁,在2001-8-3 10:12:5訪問了5、4、9頁面[頁面的號碼從上一個表中獲得];
7、設計計數的文件(.php),每個頁面都包含這個文件,這個文件包含以下的功能:
1>session檢查,
2>連接資料庫,
2>連接資料庫,
2>連接資料庫,
計數為頁名、ip、目前時間],
4>讀寫資料庫,
5>斷開資料庫的連接; 9、 網站計數在此頭檔中,對頁面計數在所計頁面中。
10、每一個頁面在包含本文件時,如果要對頁面計數,一定要在包含之前使用變數$page_name,並賦值為頁面的名稱,頁面名稱不能重複。
三、介面描述:
相關檔案:counter.php
1/Boolean check_session()
功能描述:session檢查,原來存在回傳true;原來不存在回傳false,並創建,並註冊布林型變數existing
入口參數:無
出口參數:布林型
2/site_count($content)
:資料庫連線
出口參數:計數值
3/page_count($connect,$page_name,$flag=true)
功能描述:網頁計數,返回頁面瀏覽次數,整數類型,$ flag是增加計數的標誌,缺省true
入口參數:$connect:資料庫連線,$page_name:網頁名稱
入口參數:頁面存取次數
4/show_site_count( int type)
功能描述:顯示計數
入口參數: type==1採用圖形計數
type==2採用文字計數
四、流程
0/檢查進入頁面的權限
由於頭檔需要透過引用才可編譯,因此必須檢查是透過引用或直接瀏覽
1/連結資料庫
2/檢視session,若不存在,以建立session,進行網站計數
3/顯示計數
4/進行頁面計數
5/斷開與資料庫的連接[自動實作]
五、使用方法
所有的函數都包含在一個頭檔中,使用時,包含此頭檔即可。
六、附源程式
/**counter.php v1.0
* by Amio 2001-5-1
* 描述:計數器文件,可對整個網站計數,
* >*/
/** 介面實作功能:
* 1>session 檢查
* 2>連接資料庫
* 3>計數 連結資料庫
* 3>計數 /**使用方法:
* 此文件必須是包含在其他的php檔案之中使用,
* 在引用前需要設定$inc變數
* e. inc="inc";
* include("include.php");
*
* ?>
*/ ?>
//session檢查,返回布林型
//true-此使用者session存在
//false-此使用者session不存在
function check_session(){ existing=true;
session_start(); if (!session_is_registered("existing")){
se;
} else return true;
}
//網頁計數,回頁瀏覽次數,整型
//$flag是是否增加計數的標誌,缺省true
function page_count($connect, $page_name,$flag=true){
$ip = getenv("REMOTE_ADDR");
$query=@mysql_query("select id,count from tpcounter where pagename='$nsql_query("select id,count from tpcounter where pagename='$n_names)或 die("invalid page query!");
if (!(mysql_num_rows($query))){
mysql_query("insert intpcount) (page mysql_query("insert infcount) inname. ,$connect)or die("insert page failed");
$pidquery=@mysql_query("select id from tpcounter where pagename='$page_name'",$connect) 或 die (tpcounter where pagename='$page_name'",$connect) or die( ;
$pidarray=mysql_fetch_array($pidquery); =1;
}else {
$array=mysql_fetch_array($query) ;
$num=$array[count];
if ($flag)
$num ;
mysql_query("update tpcounter set count. $num where pagename='$page_name'",$connect)or die("update page failed");
$return_num=$ pages from ticounter where ip='$ip'",$connect) or die ("invalid pages query!");
if (($flag)&(mysql_num_rows($pquery))){ $ps="$parray[pages]";
$pstr="$parray[pages set pages='$pstr' where ip='$ip'",$connect)or die ("update ip failed");
}
//ip計數,回傳ip造訪次數,整數
//功能除了計數還有時間更新
//$flag是是否增加計數的標誌,缺省true
//注意:ip_count的呼叫必須在page_count之前!!!
function ip_count($connect){
$ip = getenv("REMOTE_ADDR"); $visit_pages="||"."$visit_time"."|";
$ipquery=@mysql_query("select count,pages from ticounter where ip='$ip'",$connect) 或 die ("invalid ip query!");
if (!(mysql_num_rows($ipquery))){//新的ip mysql_query("insert into ticounter (ip,count,date,pages) mysql_query("insert into ticounter (ip,count,date,pages) values (5) valueues ($ip'),_$. $connect)or die("insert ip failed");
return 1;
}else{ $parray=mysql_fetch_array($ipquery);
$ipnum=$parray [count];
$pageStr="$parray[pages]"."$visit_pages";
$ipnum $visit_time', pages='$pageStr' where ip='$ip'",$connect)or die("update ip failed");
return $ipnum;
}
//網站計數,返回整數,網站造訪次數
function site_count($connect){
if (!check_session()){ );
$num=page_count($connect,"website",true); connect,"website",false);
}
return $num;
}
function 集 return $fileurl ;
}
//顯示計數值,type為顯示類型,length為顯示的長度,缺省6
//type=1圖形形式
//type=2文本形式(缺省)
function show_site_count($num,$length=6,$type=2){
$outStr=strval($num); $outStr=strval($num); $outStr) 1;$i $outStr="0"."$outStr";
} echo " echo displayCount($outStr);
case 2:
default:
}
?>
if (!isset($inc))exit;
$connect=mysql_connect('localhost','root','' );//connect to server
mysql_select_db("damio",$connect); //select database ,database name is damio
$sitecount=site_count($connect);
$sitecount=site_count($connect);
if (issetet ($page_name))
page_count($connect,$page_name);
?>
http://www.bkjia.com/PHPjc/315284.html
www.bkjia.com
true
http: //www.bkjia.com/PHPjc/315284.html
TechArticle
概述: 此設計可以在本計數器基礎之上設計計數分析程序,可以對頁面訪問、ip訪問次數進行分析,並形成報表。 一、資料庫設計 資料庫採...

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

iPhone上的預設地圖是Apple專有的地理位置供應商「地圖」。儘管地圖越來越好,但它在美國以外的地區運作不佳。與谷歌地圖相比,它沒有什麼可提供的。在本文中,我們討論了使用Google地圖成為iPhone上的預設地圖的可行性步驟。如何在iPhone中使Google地圖成為預設地圖將Google地圖設定為手機上的預設地圖應用程式比您想像的要容易。請依照以下步驟操作–先決條件步驟–您必須在手機上安裝Gmail。步驟1–開啟AppStore。步驟2–搜尋“Gmail”。步驟3–點選Gmail應用程式旁

您的手機中缺少時鐘應用程式嗎?日期和時間仍將顯示在iPhone的狀態列上。但是,如果沒有時鐘應用程序,您將無法使用世界時鐘、碼錶、鬧鐘等多項功能。因此,修復時鐘應用程式的缺失應該是您的待辦事項清單的首位。這些解決方案可以幫助您解決此問題。修復1–放置時鐘應用程式如果您錯誤地從主畫面中刪除了時鐘應用程序,您可以將時鐘應用程式放回原位。步驟1–解鎖iPhone並開始向左側滑動,直到到達「應用程式庫」頁面。步驟2–接下來,在搜尋框中搜尋「時鐘」。步驟3–當您在搜尋結果中看到下方的「時鐘」時,請按住它並

4月26日消息,中興5G隨身Wi-FiU50S目前已經正式開賣,首發899元。外觀設計上,中興U50S隨身Wi-Fi簡約時尚,易於手持和包裝。其尺寸為159/73/18mm,攜帶方便,讓您隨時隨地暢享5G高速網絡,實現暢行無阻的行動辦公與娛樂體驗。中興5G隨身Wi-FiU50S該設備支援先進的Wi-Fi6協議,峰值速率高達1800Mbps,依托驍龍X55高效能5G平台,為用戶提供極速的網路體驗。不僅支援5G雙模SA+NSA網路環境與Sub-6GHz頻段,實測網速更可達驚人的500Mbps,輕鬆滿

您在嘗試使用應用程式時是否收到“無法允許存取攝影機和麥克風”?通常,您可以在需要提供的基礎上向特定物件授予攝影機和麥克風權限。但是,如果您拒絕權限,攝影機和麥克風將無法運作,而是顯示此錯誤訊息。解決這個問題是非常基本的,你可以在一兩分鐘內完成。修復1–提供相機、麥克風權限您可以直接在設定中提供必要的攝影機和麥克風權限。步驟1–轉到“設定”選項卡。步驟2–打開「隱私與安全」面板。步驟3–在那裡打開“相機”權限。步驟4–在裡面,您將找到已要求手機相機權限的應用程式清單。步驟5–開啟指定應用的“相機”

4月17日消息,HMD攜手知名啤酒品牌喜力以及創意公司Bodega,聯袂推出了一款獨特的翻蓋手機-無聊手機(TheBoringPhone)。這款手機不僅在設計上充滿新意,更在功能上返璞歸真,旨在引領人們回歸真實的人際交往,享受與朋友暢飲的純粹時光。無聊手機採用了獨特的透明翻蓋設計,展現出簡約而不失優雅的美感。其內部配備了2.8英寸QVGA顯示屏,外部則是一塊1.77英寸的顯示屏,為用戶提供了基本的視覺交互體驗。在攝影方面,雖然僅搭載了30萬畫素的鏡頭,但足以應付日常的簡

4月3日消息,台電即將推出的M50Mini平板電腦是一款功能豐富、效能強大的裝置。這款8吋小平板新品搭載了8.7吋的IPS螢幕,為用戶提供了出色的視覺體驗。其金屬機身設計不僅美觀,也增強了設備的耐用性。在性能方面,M50Mini搭載了紫光展銳T606八核心處理器,擁有兩個A75核心和六個A55核心,確保了流暢且高效的運作體驗。同時,該平板還配備了6GB+128GB的儲存方案,並支援8GB記憶體擴展,滿足了用戶對於儲存和多任務處理的需求。在續航上,M50Mini配備了5000mAh的電池,支援Ty

7月12日消息,榮耀MagicV3系列今日正式發布,搭載全新榮耀視力舒緩綠洲護眼屏,在屏幕本身俱備高規格和高素質的同時,還開創性的引入AI主動式護眼技術。據悉,傳統的緩解近視的方式是“近視鏡”,近視眼鏡度數均勻分佈,保證了視線中心區域成像在視網膜之上,但周邊區域成像在視網膜後,視網膜感應到成像在後,促進眼軸向後生長,從而使度數加深。目前主要的緩解近視發展的方式之一是“離焦鏡”,其中心區域度數正常,週邊區域透過光學設計分區調整,從而使周邊區域成像落在視網膜前,

5月13日消息,vivoX100s今晚正式發布,除了出色的影像,新機在訊號方面表現也十分強悍。根據vivo官方介紹,vivoX100s採用了創新的寰宇訊號放大系統,該系統配備了高達21根天線。這項設計基於直屏進行了重新優化,以平衡5G、4G、Wi-Fi、GPS以及NFC等眾多訊號需求。這使得vivoX100s成為了vivo有史以來訊號接收能力最強的手機。新款手機還採用了獨特的360°環繞設計,天線分佈在機身周圍。這項設計不僅增強了訊號的強度,還針對日常各種握持姿勢進行了優化,避免了因握持方式不當導
