Maison  >  Article  >  développement back-end  >  Comment atteindre le nombre de visiteurs en php

Comment atteindre le nombre de visiteurs en php

藏色散人
藏色散人original
2021-12-13 09:39:282618parcourir

Comment réaliser le nombre de visiteurs en PHP : 1. Créez deux tables de base de données ; 2. Ajoutez le code "$realip=getip();modifyipcount($realip);" visiteurs.

Comment atteindre le nombre de visiteurs en php

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.4, ordinateur Dell G3.

Comment atteindre le nombre de visiteurs en php ?

PHP implémente avec précision les statistiques de visite de page

1. Deux tables de base de données sont requises

①, la table d'enregistrement IP

create table ip (ipid int(11) NOT NULL default '',ipdata varchar(16) NOT NULL default '',iptime varchar(30) NOT NULL default '', primary key(ipid));

Remarque : ipdata est l'adresse IP du visiteur enregistré, iptime est la visite IP enregistrée

②.

create table count (todayipcount int(11) NOT NULL default '',allipcount int(11) NOT NULL default '',day varchar(2) NOT NULL  default '');
insert into count (todayipcount,allipcount,day) values ('0','0','0');

2. Méthode d'implémentation

Mettez le code suivant sur la page où vous souhaitez compter le nombre de fois :

$realip=getip();
modifyipcount($realip);

Le code de la fonction getip() est :

function getip()
{
        if (isset($_SERVER)) 
        {
                if (isset($_SERVER[HTTP_X_FORWARDED_FOR]) && strcasecmp($_SERVER[HTTP_X_FORWARDED_FOR], "unknown"))//代理
                {
                        $realip = $_SERVER[HTTP_X_FORWARDED_FOR];
                } 
                elseif(isset($_SERVER[HTTP_CLIENT_IP]) && strcasecmp($_SERVER[HTTP_CLIENT_IP], "unknown"))
                {
                        $realip = $_SERVER[HTTP_CLIENT_IP];
                } 
                elseif(isset($_SERVER[REMOTE_ADDR]) && strcasecmp($_SERVER[REMOTE_ADDR], "unknown"))
                {
                        $realip = $_SERVER[REMOTE_ADDR];
                } 
                else
                {
                        $realip = 'unknown';
                }
        } 
        else
        {
                if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
                {
                        $realip = getenv("HTTP_X_FORWARDED_FOR");
                }
                elseif(getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
                {
                        $realip = getenv("HTTP_CLIENT_IP");
                } 
                elseif(getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
                {
                        $realip = getenv("REMOTE_ADDR");
                } 
                else
                {
                        $realip = 'unknown';
                }
        } 
        return $realip;
}

Remarque : ce code de fonction Le code de la fonction

modifyipcount() est partout sur Internet :

function modifyipcount($ip)
{
        <-----------------------数据库的连接省略------------------------->
        $query="SELECT * FROM ip where ipdata=&#39;".$ip."&#39;";
        $result=mysql_query($query);
        $row=mysql_fetch_array($result);
        $iptime=time();
        $day=date(&#39;j&#39;);
        if(!$row)
        {
                $query="INSERT INTO ip (ipdata,iptime) VALUES (&#39;".$ip."&#39;,&#39;".$iptime."&#39;)";
                mysql_query($query);
                $query="SELECT day,todayipcount,allipcount FROM count";
                $result=mysql_query($query);
                $row=mysql_fetch_array($result);
                $allipcount=$row[&#39;allipcount&#39;]+1;
                $todayipcount=$row[&#39;todayipcount&#39;]+1;
                if($day==$row[&#39;day&#39;])
                {
                        $query="UPDATE count SET allipcount=&#39;".$allipcount."&#39;,todayipcount=&#39;".$todayipcount."&#39;";
                }
                else
                {
                        $query="UPDATE count SET allipcount=&#39;".$allipcount."&#39;,day=&#39;".$day."&#39;,todayipcount=&#39;1&#39;";
                }
                 mysql_query($query);
        }
        else
        {
                $query="SELECT iptime FROM ip WHERE ipdata=&#39;".$ip."&#39;";
                $result=mysql_query($query);
                $row=mysql_fetch_array($result);
                $query="SELECT day,todayipcount,allipcount FROM count";
                $result=mysql_query($query);
                $row1=mysql_fetch_array($result);
                if($iptime-$row[&#39;iptime&#39;]>86400)
                {
                                                $query="UPDATE ip SET iptime=&#39;".$iptime."&#39; WHERE ipdata=&#39;".$ip."&#39;";
                 mysql_query($query);
                        $allipcount=$row1[&#39;allipcount&#39;]+1;
                        if($day==$row1[&#39;day&#39;])
                        {
                                $query="UPDATE count SET allipcount=&#39;".$allipcount."&#39;";
                        }
                        else
                        {
                                $query="UPDATE count SET allipcount=&#39;".$allipcount."&#39;,day=&#39;".$day."&#39;,todayipcount=&#39;1&#39;";
                        }
                         mysql_query($query);
                }
                if($day!=$row1[&#39;day&#39;])
                {
                        $query="UPDATE count SET day=&#39;".$day."&#39;,todayipcount=&#39;1&#39;";
                         mysql_query($query);
                }        
        }
}

Remarque : Ici, j'ai défini le nombre de statistiques d'accès dans les 24 heures pour n'ajouter que 1

afin que nous puissions obtenir l'adresse IP d'accès d'aujourd'hui en appelant aujourd'huiipcount et allipcount dans le nombre de tables de base de données Personnellement, je pense que l'adresse IP d'accès de M. He est très précise. Tout le monde est invité à avoir des opinions différentes.

Apprentissage recommandé : "

Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn