Ankündigung

Einklappen
Keine Ankündigung bisher.

counter mit reloadsperre usw

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • counter mit reloadsperre usw

    hallo!

    ich hab mir ein script gebaut dass mir alle seitenaufrufe meiner seite anzeigt und gleichzeitig auch anzeigt wie viele verschiedene besucher ich hatte.

    ich würde jetzt gern wissen ob man daran noch etwas verbessern könnte

    PHP-Code:
    <?php
        $connection 
    mysql_connect("localhost","root"""
            or die (
    "could not connect to database"); 
                  
        
    $db mysql_select_db("counter",$connection
            or die (
    "Couldn't select database."); 

        
    $zeit date('YmdHis');
        
    $ip $_SERVER['REMOTE_ADDR'];
        
    $wartezeit "60";
        
        
    $row2 mysql_fetch_object(mysql_query("SELECT * FROM counter"));
        
    $count1 $row2->counter;
        
    $count2 $row2->counter +1;
        
        
    $row1 mysql_fetch_object(mysql_query("SELECT * FROM log"));
        
        if(
    $row1->ip == $ip)
        {
            if(
    $row1->zeit+$wartezeit $zeit)
            {
                
    mysql_query"UPDATE counter SET counter = '$count2'" ) or die ( mysql_error() ); 
                
    mysql_query"UPDATE log SET zeit = '$zeit' WHERE ip LIKE '$ip' ") or die ( mysql_error() ); 
                
    $ausgabecounterstand $count2;
            }

            else
            {
                
    $ausgabecounterstand $count1;
            }
        }

        if(
    $row1->ip != $ip)
        {
            
    mysql_query"UPDATE counter SET counter = '$count2'" ) or die ( mysql_error() ); 
            
    mysql_query"INSERT INTO log ( zeit, ip ) values ( '$zeit', '$ip' )" ) or die ( mysql_error() ); 
            
    $ausgabecounterstand $count2;
        }

        
    $row mysql_query("SELECT * FROM log");
        
    $wievieleips mysql_num_rows($row); 

        echo 
    "wieviele besuche:";
        echo 
    "
    "
    ;
        echo 
    $ausgabecounterstand;
        echo 
    "
    "
    ;
        echo 
    "wieviele verschiedene besucher:";
        echo 
    "
    "
    ;
        echo 
    $wievieleips;
    ?>

  • #2
    Achtung bin pingelig:

    1.) benenn mal deine Variablen sinnvoller als $count1 oder $row2
    2.) wenn du schon den schlechten Stil "or die()" benutzt, dann verwende wenigstens die gleiche Schreibweise und nicht "Could not bla." bzw. "could not bla"
    3.) schlechter Zeitstempel (YYYYMMDDHHIISS). Ich bevorzuge Timestamps oder in MySQL den Datentyp DATETIME. Damit kann man besser rechnen - UNIX_TIMESTAMP(datetimeSpalte) und es ist gleichzeitig anschaulicher (YYYY-MM-DD-...)
    10.) (passt hier besser rein) Deine Wartezeit-Addition ist falsch, Beispiel:
    20051104173117 + 60 = 20051104173177 (77 Sekunden?)
    4.) SELECT * FROM ist schlechter Stil, nenn die Spaltennamen direkt (dann wüsste der Leser hier z.B. welche Spaltennamen es gibt und müsste sie sich nicht erst durch deine Verwendung erschliessen
    5.) * ist nicht einmal notwendig bei $row2, da du offenbar eh nur die Counter-Spalte benötigst
    6.) die MySQL-Spalte 'counter' ist eine Zahl, warum also Anführungszeichen benutzen?
    7.) MySQL-LIKE Abfragen ohne % sind langsamer als = Abfragen
    8.) Ein MySQL-Feld hochzählen macht man mit UPDATE table SET field = field + 1 und nicht durch SELECT + UPDATE Kombi
    9.) Die Counter-Tabelle ist eigentlich unnötig, verleg das Feld doch in die log-Tabelle, dann weißt du auch wie oft ein Besucher auf deiner Seite war und aus den Werten alle counter-Zellen kannst du dann die Gesamtbesucherzahl errechnen
    11.) zum Zeilenzählen verwendet man nicht SELECT * FROM und zählt dann mit mysql_num_rows() sondern macht ein $rows = mysql_result(mysql_query("SELECT COUNT(primaryKey-Spaltenname) FROM table"),0);

    Wie gesagt, ich habe dir jetzt alles aufgezählt, was mir aufgefallen ist und zwar aus dem Zweck, dir zu zeigen was möglich ist. Ob du was davon übernimmst, ist deine Entscheidung

    Kommentar


    • #3
      boah dass is ja ganzschön viel
      naja ich bin noch ein newbie in sachen php und mqsql..
      aber die ein oder andere sache werd ich mal übernehmen!
      danke

      Kommentar


      • #4
        Wie gesagt, wollte dich nicht runter ziehen und einiges ist auch übertrieben, z.B. Punkt 2.
        Du wolltest ja offenbar nur eine Bewertung und letztlich ist ja interessant, obs funktioniert und das tut es ja scheinbar, bis auf die Wartezeit.

        Gruß, c

        Kommentar

        Lädt...
        X