Homepage Site Map


   
PROGRAMMAZIONE
   FARE WEB
   HTML
   CSS
   PHP
   MySQL
   XML - XSL
GRAFICA
   PAINT SHOP
   ANIMATION SHOP
   SWISH
   SWISHMAX
SCRIPT
   JAVASCRIPT
   PHP
   APPLET JAVA
   CSS GENERATOR
   WEB TOOLS
DOWNLOAD
   FONTS
   ICONE E AVATAR
   SMILES
   GIF ANIMATE
   CURSORI
   CALENDARI
   KAOANI
   BASI BANNER
   SCREENMATES
   MEEGOS
   GIOCHI
   VIDEO E PPS
ARTICOLI
   ARTICOLI
   GUADAGNA SITO
LINKS
   LINK TO ME
   VOTAMI
   SCAMBIO LINK
   SCAMBIO BANNER


zanox Partner promuovono Partner


 
  

Home -> Manuali e Tutorials -> Guida PHP -> Counter  (2/2)


Scarica il tutorial      |    Stampa il tutorial      |    Cerca nel sito      



REALIZZARE UN COUNTER IN PHP



Da sottolineare è il vettore globale $_SERVER["HTTP_REFERER"], che mi cattura l'url di provenienza (ad es.: http://www.webstyling.it); per poter memorizzare nel db solo il nome del sito (cioè solo www.webstyling.it), è stata usata la funzione di stringhe explode, passandogli come valore del separatore il "/", per cui il terzo valore dell'array $c associato all'explode stesso è proprio il nome del sito da noi voluto. Tale array globale, assume un valore nullo ogni volta che si effettua un refresh di pagina o si scrive il link diretto nella barra degli URL di IE. Queste opzioni vengono tutte catalogate in un'unica voce nel db, chiamata appunto "Altro". $_SERVER['REMOTE_ADDR'], invece, serve per catturare l'ip dell'utente che si collega al sito, in base al quale viene fatto il controllo sugli utenti online e quello delle visite uniche.

Di seguito è invece riportato il codice del file graf.php che printa le statistiche su grafici o tabelle semplici:


<?
include "../config.php";

$db = mysql_connect("$dbserver", "$dbuser", "$dbpass");
mysql_select_db("$dbbase",$db);
$result = mysql_query("SELECT * FROM annuale where id=1");
while($row=mysql_fetch_array($result,MYSQL_ASSOC))
{
     $ret[]=$row;
}
$result2 = mysql_query("SELECT * FROM uniche where id=1");
while($row2=mysql_fetch_array($result2,MYSQL_ASSOC))
{
     $ret2[]=$row2;
}
$result3 = mysql_query("SELECT * FROM totali where id=1");
while($row3=mysql_fetch_array($result3,MYSQL_ASSOC))
{
     $ret3[]=$row3;
}
?>
<HTML>
<HEAD>
<TITLE>Statistiche Annuali sito www.webstyling.it</TITLE>
<style>
BODY {SCROLLBAR-FACE-COLOR: #dee3e7; SCROLLBAR-HIGHLIGHT-COLOR: #ffffff; SCROLLBAR-SHADOW-COLOR: #dee3e7; SCROLLBAR-3DLIGHT-COLOR: #d1d7dc; SCROLLBAR-ARROW-COLOR: #006699; SCROLLBAR-TRACK-COLOR: #efefef; SCROLLBAR-DARKSHADOW-COLOR: #98aab1; BACKGROUND-COLOR: #e5e5e5; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;font-size:9px;}
TD {
     FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;font-size:9px;
}
</style>
<SCRIPT LANGUAGE="JavaScript">
<!-- Hide JavaScript from Java-Impaired Browsers
function getHplot(v1,v2,v3,v4)
{
     n=new initArray(0,0,0,0)
     v=new initArray(0,0,0,0)
     document.write('<TABLE BORDER=0 cellpadding=5 cellspading=15 WIDTH=450><TR><TD ' +'COLSPAN=3 ALIGN=CENTER><B>Riepilogo Annuale ultimi due anni</' +'B><BR><BR></TD></TR>');
     v[0]=v1;
     v[1]=v2;
     v[2]=v3;
     v[3]=v4;
     n[9]=0;
     n[6]=0;
     n[7]=0;
     n[8]=0;
     for (var i=0;i<4;i++){
          if (v[i].length>n[9]){
               n[9]=v[i].length;
          }
/* The next three lines are needed for visitors who
still live on the Win3.x platform. If none of your
visitors use older platforms,
n[i]=eval(v[i]);
may be substituted for these three lines. */

          str=v[i]
          StringToNumber();
          n[i]=num; // eval(v[i]); may be substituted
          if (n[i]<0){
               n[i]=0;
          }
          n[6]+=n[i];
          if (n[i]>n[7]){
               n[7]=n[i];
          }
     }
     n[10]=(n[9]+6)*8
      n[8]=n[7]/(450-n[10]); // my divisor
     document.write('<TR><TD><B>Tot.Scorso' +'</B></TD><TD><IMG SRC="java98a.gif" HEIGHT=10 WIDTH=' +(n[0]/n[8])+' BORDER=1></TD><TD>'+v[0]+'</TD></TR>' +'<TR><TD><B>Tot_Uniche.Scorso' +'</B></TD><TD><IMG SRC="java98b.gif" HEIGHT=10 WIDTH='+(n[1]/n[8]) +' BORDER=1></TD><TD>'+v[1]+'</TD></TR>' +'<TR><TD><B>Totali' +'</B></TD><TD><IMG SRC="java98c.gif" HEIGHT=10 WIDTH='+(n[2]/n[8]) +' BORDER=1></TD><TD>'+v[2]+'</TD></TR>' +'<TR><TD><B>Tot_Uniche' +'</B></TD><TD><IMG SRC="java98d.gif" HEIGHT=10 WIDTH='+(n[3]/n[8]) +' BORDER=1></TD><TD>'+v[3]+'</TD></TR>');
     document.write('<TR><TD COLSPAN=3><HR NOSHADE></TD></TR></TABLE>');
}

function getVplot(title,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12)
{
     n=new initArray(0,0,0,0,0,0,0,0,0,0,0,0)
     v=new initArray(0,0,0,0,0,0,0,0,0,0,0,0)
     v[0]=v1;
     v[1]=v2;
     v[2]=v3;
     v[3]=v4;
     v[4]=v5;
     v[5]=v6;
     v[6]=v7;
     v[7]=v8;
     v[8]=v9;
     v[9]=v10;
     v[10]=v11;
     v[11]=v12;
     n[12]=0;
     n[13]=0;
     n[14]=0;
     n[15]=0;
     for (var i=0;i<12;i++){
          if (v[i].length>n[15]){
               n[15]=v[i].length;
          }
/* The next three lines are needed for visitors who
still live on the Win3.x platform. If none of your
visitors use older platforms,
n[i]=eval(v[i]);
may be substituted for these three lines. */

          str=v[i]
          StringToNumber();
          n[i]=num; // eval(v[i]); may be substituted
          if (n[i]<0){
               n[i]=0;
          }
          n[12]+=n[i];
          if (n[i]>n[13]){
               n[13]=n[i];
          }
     }
     n[14]=n[13]/100; // my divisor
     document.write('<P><TABLE BORDER=0 cellpadding=5 cellspading=15 WIDTH=450><TR><TD' +' COLSPAN=12 ALIGN=CENTER><B>'+title+'</B><BR><BR></TD></TR><TR>' +'<TD VALIGN=BOTTOM ALIGN=CENTER><IMG SRC="java98a.gif" HEIGHT=' +(n[0]/n[14]) +' WIDTH=50 BORDER=1></TD>' +'<TD VALIGN=BOTTOM ALIGN=CENTER><IMG SRC="java98b.gif" HEIGHT=' +(n[1]/n[14])+' WIDTH=50 BORDER=1></TD>' +'<TD VALIGN=BOTTOM ALIGN=CENTER><IMG SRC="java98c.gif" HEIGHT=' +(n[2]/n[14])+' WIDTH=50 BORDER=1></TD>' +'<TD VALIGN=BOTTOM ALIGN=CENTER><IMG SRC="java98d.gif" HEIGHT=' +(n[3]/n[14])+' WIDTH=50 BORDER=1></TD>' +'<TD VALIGN=BOTTOM ALIGN=CENTER><IMG SRC="java98e.gif" HEIGHT=' +(n[4]/n[14])+' WIDTH=50 BORDER=1></TD>' +'<TD VALIGN=BOTTOM ALIGN=CENTER><IMG SRC="java98a.gif" HEIGHT=' +(n[5]/n[14])+' WIDTH=50 BORDER=1></TD>' +'<TD VALIGN=BOTTOM ALIGN=CENTER><IMG SRC="java98b.gif" HEIGHT=' +(n[6]/n[14])+' WIDTH=50 BORDER=1></TD>' +'<TD VALIGN=BOTTOM ALIGN=CENTER><IMG SRC="java98c.gif" HEIGHT=' +(n[7]/n[14])+' WIDTH=50 BORDER=1></TD>' +'<TD VALIGN=BOTTOM ALIGN=CENTER><IMG SRC="java98d.gif" HEIGHT=' +(n[8]/n[14])+' WIDTH=50 BORDER=1></TD>' +'<TD VALIGN=BOTTOM ALIGN=CENTER><IMG SRC="java98e.gif" HEIGHT=' +(n[9]/n[14])+' WIDTH=50 BORDER=1></TD>' +'<TD VALIGN=BOTTOM ALIGN=CENTER><IMG SRC="java98a.gif" HEIGHT=' +(n[10]/n[14])+' WIDTH=50 BORDER=1></TD>' +'<TD VALIGN=BOTTOM ALIGN=CENTER><IMG SRC="java98b.gif" HEIGHT=' +(n[11]/n[14])+' WIDTH=50 BORDER=1></TD></TR><TR>' +'<TD ALIGN=CENTER><B>Gen.</B></TD>' +'<TD ALIGN=CENTER><B>Feb.</B></TD>' +'<TD ALIGN=CENTER><B>Mar.</B></TD>' +'<TD ALIGN=CENTER><B>Apr.</B></TD>' +'<TD ALIGN=CENTER><B>Mag.</B></TD>' +'<TD ALIGN=CENTER><B>Giu.</B></TD>' +'<TD ALIGN=CENTER><B>Lug.</B></TD>' +'<TD ALIGN=CENTER><B>Ago.</B></TD>' +'<TD ALIGN=CENTER><B>Set.</B></TD>' +'<TD ALIGN=CENTER><B>Ott.</B></TD>' +'<TD ALIGN=CENTER><B>Nov.</B></TD>' +'<TD ALIGN=CENTER><B>Dic.</B></TD></TR>' +'<TR><TD ALIGN=CENTER>'+v[0]+'</B></TD>' +'<TD ALIGN=CENTER>'+v[1]+'</TD>' +'<TD ALIGN=CENTER>'+v[2]+'</TD>' +'<TD ALIGN=CENTER>'+v[3]+'</TD>' +'<TD ALIGN=CENTER>'+v[4]+'</TD>' +'<TD ALIGN=CENTER>'+v[5]+'</TD>' +'<TD ALIGN=CENTER>'+v[6]+'</TD>' +'<TD ALIGN=CENTER>'+v[7]+'</TD>' +'<TD ALIGN=CENTER>'+v[8]+'</TD>' +'<TD ALIGN=CENTER>'+v[9]+'</TD>' +'<TD ALIGN=CENTER>'+v[10]+'</TD>' +'<TD ALIGN=CENTER>'+v[11]+'</TD></TR><TR><TD COLSPAN=12' +'><HR NOSHADE><P></TD></TR></TABLE>');
}
var pwr=new initArray(1,2,3,4);
pwr[0]=1;
pwr[1]=10;
pwr[2]=100;
pwr[3]=1000;
pwr[4]=10000;
pwr[5]=100000;
pwr[6]=1000000;
pwr[7]=10000000;
pwr[8]=100000000;
pwr[9]=1000000000;
pwr[10]=10000000000;
/* Add more to array - pwr[8]=100000000, etc. -
if strings longer than 8 are to be used. */
var ns="0123456789"
var cr="";
var str="";

/* Pass this function a string (named "str") and it will
return a number (named "num") Useful until all versions
of JavaScript on all platforms support string to numeric
conversions with predictability. */

function StringToNumber(){
     num=0;
     strl=str.length;
     for (var j=strl-1;j>-1;j--){
          cr=str.substring(j,j+1);
          pos=ns.indexOf(cr);
          num+=pos*pwr[strl-j-1];
     }
}

function initArray() {
     this.length=initArray.arguments.length;
     for (var i=0;i<this.length;i++) {
          this[i]=initArray.arguments[i];
     }
} // End Hiding -->
</SCRIPT>

</HEAD>

<BODY>
<BR><BR><BR>
<SCRIPT LANGUAGE="JavaScript">
<!-- Hide from JavaScript-Impaired Browsers
getHplot('<?echo($ret[0]["tot_scorso"]);?>','<?echo($ret[0]["tot_uniche_scorso"]);?>','<?echo($ret[0]["totali"]);?>','<?echo($ret[0]["tot_uniche"]);?>');
// End Hiding -->
</SCRIPT>
<BR><BR>
<SCRIPT LANGUAGE="JavaScript">
<!-- Hide from JavaScript-Impaired Browsers
getVplot('Riepilogo Visite Uniche Corrente
Anno','<?echo($ret2[0]["gen"]);?>','<?echo($ret2[0]["feb"]);?>','<?echo($ret2[0]["mar"]);?>','<?echo($ret2[0]["apr"]);?>','<?echo($ret2[0]["mag"]);?>','<?echo($ret2[0]["giu"]);?>','<?echo($ret2[0]["lug"]);?>','<?echo($ret2[0]["ago"]);?>','<?echo($ret2[0]["sett"]);?>','<?echo($ret2[0]["ott"]);?>','<?echo($ret2[0]["nov"]);?>','<?echo($ret2[0]["dic"]);?>');
// End Hiding -->
</SCRIPT>
<BR><BR>
<SCRIPT LANGUAGE="JavaScript">
<!-- Hide from JavaScript-Impaired Browsers
getVplot('Riepilogo Pag. Tot. Viste Corrente
Anno','<?echo($ret3[0]["gen"]);?>','<?echo($ret3[0]["feb"]);?>','<?echo($ret3[0]["mar"]);?>','<?echo($ret3[0]["apr"]);?>','<?echo($ret3[0]["mag"]);?>','<?echo($ret3[0]["giu"]);?>','<?echo($ret3[0]["lug"]);?>','<?echo($ret3[0]["ago"]);?>','<?echo($ret3[0]["sett"]);?>','<?echo($ret3[0]["ott"]);?>','<?echo($ret3[0]["nov"]);?>','<?echo($ret3[0]["dic"]);?>');
// End Hiding -->
</SCRIPT>
<BR><BR>
<TABLE width=450 cellpadding=0 cellspacing=0 border=1 bordercolor=black>
<TR>
     <TD><TABLE width=100% cellpadding=5 cellspacing=5 border=0>
          <TR height=30>
          <TD bgcolor=#CCCCCC>     <B>SITO di provenienza</B></TD>
          <TD bgcolor=#CCCCCC width=25> </TD>
          </TR>
          <?
          $result4 = mysql_query("SELECT * FROM url;");
          while($row4=mysql_fetch_array($result4,MYSQL_ASSOC))
          {
               $ret4[]=$row4;
          }
          foreach($ret4 as $k=>$v)
          {
               echo("<TR height=20><TD>  ".$v["ref"]."</TD><TD><I>".$v["num"]."</I></TD></TR>");
          }
          ?>
          </TABLE>
     </TD>
</TR>
</TABLE><BR><BR>  * <I>Altro</I> : Link diretto o refresh di pagina<BR><BR><BR>
</body>
</html>
<?
mysql_close($db);
?>


che non fa altro che printare le query mysql attraverso grafici, realizzati tramite codice javascript, e tabelle.




Torna su      |    Indice Guida      |    Pagina << 31 >>    


Vai al W3C CSS Validator toolkit.
Realizzato con PHP. Vai al sito ufficiale del PHP.
Testato anche con Mozilla Firefox. Vai al sito ufficiale.

Home     Contacts     Forum     FAQ     Newsletter     Mappa     Cerca     Link to me

  Vedi gli RSS del sito.      

-->  [Il tuo link qui]