php訪問人數,php如何限制每人每天訪問次數

本文目錄一覽:

怎麼用php寫個在線訪問人數統計

你所說的「其中一個人關閉了網站」是一個很明顯的錯誤,網站的來訪者所關閉的不是「網站」,只是他自己的瀏覽器。

從 Web 服務的機制上來說,伺服器只是接收到對某個網頁的請求後把相應的 HTML 格式的內容(可能包括 JavaScript程序)發送給請求者以後就關閉連接,至於瀏覽器端的用戶是什麼時候關閉瀏覽器(或者說是轉移去查看別的網站的網頁去了)伺服器端是得不到任何信息的。

PHP、ASP、JSP 之類的網頁訪問只是伺服器在發送 HTML 格式的內容之前需要先執行一下相應的文件里的程序,得到 HTML 格式的內容之後再發送而已,原理上還是發送完就關閉與請求者的連接。

伺服器能得到的信息是接收來訪者發來的網頁請求信息的時候隨同而來的IP地址,至於這個IP地址對應的用戶什麼時候跳轉去看別的網站的網頁去了伺服器得不到任何信息。在你的 PHP 程序中,可以把得到一個來訪者的IP地址的時候就給作為一個累加器用的跨網頁文件跨不同來訪者共享的變數添加1,20分鐘之內沒再接收到那個IP地址發來的請求就將累加器減1,這樣,你把那個累加器內容顯示出來就能反映你的網站在最近20分鐘內有多少個IP來訪問過,這個數就近似地反映了你的網站「在線人數」。

PHP中如何實現在線人數的統計和顯示

要使用資料庫,建立一個表,比如名字是online,至少有以下列:

name_ip 存放登錄用戶名,未登錄的存放IP,char類型

url 存放每個頁面的地址,char類型

last_time 存放刷新頁面的最後時間,int類型

表的主鍵是:name_ip+url

每個頁面一開始就要刷新這個表,使用的SQL是:

$name_ip=’用戶名或者IP’;//你能搞定

$url=$_SERVER[“PHP_SELF”];

$time=time();

$sql=”replace delayed into online (name_ip,url,last_time) values (‘$name_ip’,’$url’,$time)”;

mysql_query($sql);

獲取某頁面在線人數的查詢是語句

$limit=time()-10*60;//10分鐘內訪問的認為在線,10分鐘*60秒/分鐘

$sql=”select count(*) from online where url=’$url’ and last_time=$limit”;

$res=mysql_query($sql);

list($online_count)=mysql_fetch_row($res);

mysql_free_result($res);

echo “本頁面在線人數: $online_count”;

PHP如何統計在線人數

原理:根據不同的IP統計出當前有多少人在線。

實現方式:可以用資料庫,也可以用文本。

我這裡用了文本實現。

$user_online = “count.php”; // 保存人數的文件

touch ( $user_online ); // 如果沒有此文件,則創建

$timeout = 30; // 30秒內沒動作者,認為掉線

$user_arr = file_get_contents ( $user_online );

$user_arr = explode ( ‘#’, rtrim ( $user_arr, ‘#’ ) );

print_r ( $user_arr );

$temp = array ();

foreach ( $user_arr as $value ) {

$user = explode ( “,”, trim ( $value ) );

if (($user [0] != getenv ( ‘REMOTE_ADDR’ ))  ($user [1]  time ())) { // 如果不是本用戶IP並時間沒有超時則放入到數組中

array_push ( $temp, $user [0] . “,” . $user [1] );

}

}

array_push ( $temp, getenv ( ‘REMOTE_ADDR’ ) . “,” . (time () + ($timeout)) . ‘#’ ); // 保存本用戶的信息

$user_arr = implode ( “#”, $temp );

// 寫入文件

$fp = fopen ( $user_online, “w” );

flock ( $fp, LOCK_EX ); // flock() 不能在NFS以及其他的一些網路文件系統中正常工作

fputs ( $fp, $user_arr );

flock ( $fp, LOCK_UN );

fclose ( $fp );

echo “當前有” . count ( $temp ) . “人在線”;

想在首頁弄個在線訪問人數,一個假象的數字,用PHP怎麼實現呢

if(isset($_COOKIE[‘online_users’]))

{

$online_users = $_COOKIE[‘online_users’];

}else{

$online_users = rand(500,1000);

setcookie(‘online_users’,$online_users,time()+300);

}

echo $online_users;

這個需求用cookie其實很好處理,然後五分鐘改變一次就完了

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/182174.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-24 06:19
下一篇 2024-11-24 06:19

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python如何減少相同請求次數

    Python作為一種靈活的語言,經常用於處理網路請求。但相同的請求被重複發出會導致一些問題,因此本文將介紹如何使用Python減少相同請求次數。 一、使用緩存 在應用程序中使用緩存…

    編程 2025-04-29
  • Python代碼實現迴文數最少操作次數

    本文將介紹如何使用Python解決一道經典的迴文數問題:給定一個數n,按照一定規則對它進行若干次操作,使得n成為迴文數,求最少的操作次數。 一、問題分析 首先,我們需要了解迴文數的…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • 如何在insightface中增加次數

    insightface是一個基於深度學習的人臉識別框架,其訓練的效果在很多場景下都相當出色。在使用insightface進行訓練時,我們通常需要對數據進行增強或擴展,以提高模型的效…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • PHP版本管理工具phpenv詳解

    在PHP項目開發過程中,我們可能需要用到不同版本的PHP環境來試驗不同的功能或避免不同版本的兼容性問題。或者我們需要在同一台伺服器上同時運行多個不同版本的PHP語言。但是每次手動安…

    編程 2025-04-24

發表回復

登錄後才能評論