phpbar.de logo

Mailinglisten-Archive

[php] Zaehler in PHP mit MySQL by Wolfgang Siebecl

[php] Zaehler in PHP mit MySQL by Wolfgang Siebecl

RMI Nachrichtentechnik GmbH php_(at)_phpcenter.de
Mon, 23 Apr 2001 22:53:52 +0200


/*
 *  Zaehler fuer Seitenzugriffe
 *  Author: Wolfgang Siebeck ws_(at)_siam.de
 *          R.M.I. Nachrichtentechnik (Thailand) GMBH.
 *  (Die Punkte in der Firma sind thail. Vorschrift :-)
 *  Disclaimer: RMI Nachrichtentechnik GmbH Aachen und
 *  R.M.I. Nachrichtentechnik (Thailand) GMBH. sind nicht identisch.
 *  Auswertungsscript f=FCr die ganze Tabelle mit
 *  R=FCcksetzung des "Teilz=E4hlers" ebenfalls vorhanden.
 *  Aufruf:  counter(__FILE__)
 *  Parameter sichtbar erzeugt wahlweise das Ergebnis (Fusszeile)
 *  in der R=FCckgabevariablen, falls Webseite aus "Bits" zusammen-
 *  gesetzt werden soll.
 *  Ansehen unter: http://www.siam.de u.a. Seiten der http://www3.rmi.de
 */

function counter($fname, $sichtbar=3D1)
{
    global $gucker;
    global $diewurzel;
    global $SERVER_NAME;
    global $sysopemail;

    $fname =3D substr($fname, strlen($diewurzel));
    if (substr($fname,0,1) !=3D "/") {
    =09$fname =3D "/" . $fname;
    }
    $query =3D sprintf("select pageviews from counter where (seitenname=3D=
'%s') and (hostname=3D'%s')",
                        $fname, $SERVER_NAME);
    $handle =3D mysql("webutils", $query);
    $zaehler =3D 0;
    $zahl =3D 0;
    while ($zeile =3D mysql_fetch_array($handle)) {
        $zaehler++;
        if ($zaehler =3D=3D 1) {
            $zahl =3D $zeile[pageviews]+1;
        }
    }
    if ($zahl =3D=3D 0) {
        $zahl =3D 1;
        $bname =3D basename($fname);
        $vname =3D substr($fname, 0, strlen($fname) - strlen($bname));
        $query =3D sprintf("insert into counter (seitenname, verzeichnis, =
basename, pageviews, datum, remoteaddr, LfdNr, hostname)
                            VALUES ('%s','%s','%s',%d,%d,'%s',0,'%s')",
                            $fname, $vname, $bname, $zahl, time(), $gucker=
, $SERVER_NAME);
    }
    else {
        $query =3D sprintf("update counter set pageviews=3Dpageviews+1, re=
moteaddr=3D'%s', datum=3D%d where seitenname=3D'%s' and hostname=3D'%s'",
                            $gucker, time(), $fname, $SERVER_NAME);
    }
    $handle =3D mysql("webutils", $query);
    if (!$handle) {
        /* Hochzaehlen hat nicht geklappt */
        mail($sysopemail, "Fehler im PHP-Counter", "Kann Zaehler nicht hoc=
hsetzen ($fname)");
    }
    if ($sichtbar && ($zahl > 0))
        printf("<span class=3D\"counter\">Aufrufe dieser Seite: %d</span><=
br>\n", $zahl);
=20=20=20
}



php::bar PHP Wiki   -   Listenarchive