搜尋
首頁後端開發php教程計數器詳細設計_PHP教程

計數器詳細設計_PHP教程

Jul 21, 2016 pm 04:06 PM
分析基礎概述次數程式計數計數器設計訪問詳細進行頁面

概述:
此設計可以在本計數器基礎之上設計計數分析程序,可以對頁面訪問、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訪問次數進行分析,並形成報表。 一、資料庫設計 資料庫採...


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何使PHP應用程序更快如何使PHP應用程序更快May 12, 2025 am 12:12 AM

tomakephpapplicationsfaster,關注台詞:1)useopcodeCachingLikeLikeLikeLikeLikePachetoStorePreciledScompiledScriptbyTecode.2)MinimimiedAtabaseSqueriSegrieSqueriSegeriSybysequeryCachingandeffeftExting.3)Leveragephp7 leveragephp7 leveragephp7 leveragephpphp7功能forbettercodeefficy.4)

PHP性能優化清單:立即提高速度PHP性能優化清單:立即提高速度May 12, 2025 am 12:07 AM

到ImprovephPapplicationspeed,關注台詞:1)啟用opcodeCachingwithapCutoredUcescriptexecutiontime.2)實現databasequerycachingingusingpdotominiminimizedatabasehits.3)usehttp/2tomultiplexrequlexrequestsandreduceconnection.4 limitesclection.4.4

PHP依賴注入:提高代碼可檢驗性PHP依賴注入:提高代碼可檢驗性May 12, 2025 am 12:03 AM

依赖注入(DI)通过显式传递依赖关系,显著提升了PHP代码的可测试性。1)DI解耦类与具体实现,使测试和维护更灵活。2)三种类型中,构造函数注入明确表达依赖,保持状态一致。3)使用DI容器管理复杂依赖,提升代码质量和开发效率。

PHP性能優化:數據庫查詢優化PHP性能優化:數據庫查詢優化May 12, 2025 am 12:02 AM

DatabasequeryoptimizationinPHPinvolvesseveralstrategiestoenhanceperformance.1)Selectonlynecessarycolumnstoreducedatatransfer.2)Useindexingtospeedupdataretrieval.3)Implementquerycachingtostoreresultsoffrequentqueries.4)Utilizepreparedstatementsforeffi

簡單指南:帶有PHP腳本的電子郵件發送簡單指南:帶有PHP腳本的電子郵件發送May 12, 2025 am 12:02 AM

phpisusedforsenderemailsduetoitsbuilt-inmail()函數andsupportivelibrariesLikePhpMailerAndSwiftMailer.1)usethemail()functionForbasiceMails,butithasimails.2)butithasimail.2)

PHP性能:識別和修復瓶頸PHP性能:識別和修復瓶頸May 11, 2025 am 12:13 AM

PHP性能瓶颈可以通过以下步骤解决:1)使用Xdebug或Blackfire进行性能分析,找出问题所在;2)优化数据库查询并使用缓存,如APCu;3)使用array_filter等高效函数优化数组操作;4)配置OPcache进行字节码缓存;5)优化前端,如减少HTTP请求和优化图片;6)持续监控和优化性能。通过这些方法,可以显著提升PHP应用的性能。

PHP的依賴注入:快速摘要PHP的依賴注入:快速摘要May 11, 2025 am 12:09 AM

依賴性注射(DI)InphpisadesignPatternthatManages和ReducesClassDeptions,增強量強制性,可驗證性和MATIALWINABIOS.ItallowSpasspassingDepentenciesLikEdenciesLikedAbaseConnectionStoclasseconnectionStoclasseSasasasasareTers,interitationAseTestingEaseTestingEaseTestingEaseTestingEasingAndScalability。

提高PHP性能:緩存策略和技術提高PHP性能:緩存策略和技術May 11, 2025 am 12:08 AM

cachingimprovesphpermenceByStorcyResultSofComputationsorqucrouctationsorquctationsorquickretrieval,reducingServerLoadAndenHancingResponsetimes.feftectivestrategiesinclude:1)opcodecaching,whereStoresCompiledSinmememorytssinmemorytoskipcompliation; 2)datacaching datacachingsingMemccachingmcachingmcachings

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱門文章

熱工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具