Ankündigung

Einklappen
Keine Ankündigung bisher.

Reload sperre counter

Einklappen

Neue Werbung 2019

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

  • Gast-Avatar
    Ein Gast erstellte das Thema Reload sperre counter.

    Reload sperre counter

    hi,

    habe für meinen counter eine reloadsperre geschrieben nur leider sperrt sie nicht so richtig
    wäre nett wenn jemand mal schauen könnte wo der fehler liegt
    Code:
    <?
    include("db_connect.php");
    ?>
    <html>
    <body>
    <?php
    $ip=getenv("REMOTE_ADDR"); //Ip adresse ermitteln
    $uhr=date(U);
    $anfru="SELECT Datum FROM ip";
    $ergu=mysql_query($anfru);//gespeicherte uhrzeiten holen
    $zuhr=mysql_fetch_row($ergu);//zeit ins array
    $anfrip="SELECT ip FROM ip";
    $ergip=mysql_query($anfrip);
    $zip=mysql_fetch_row($ergip);//ip in array schreiben
    $num_rows=mysql_num_rows($ergip);//anzahl der datensätze ermitteln
    $anfrage="SELECT * FROM counter";
    $ergebniss=mysql_query($anfrage);
    $zeile=mysql_fetch_row($ergebniss); //ergebniss in array schreiben 
    for ($a=0;$a<=$num_rows;$a++) {
    	if ($ip==$zip[$a] && ($uhr+360)<$zuhr[$a])
    		{$aktuell=$zeile[0];
    		
    	}
    	else {
    		$aktuell=$zeile[0]+1;
    		$eintrag="INSERT INTO ip (ip, Datum) VALUES 
    		('$ip', '$uhr')";
    		$eintragen=mysql_query($eintrag);
    	}
    }
    $anfrage="UPDATE counter SET zahl='";
    $anfrage.=$aktuell;
    $anfrage.="'"; //UPDATE Anfrage zusammensetzen
    mysql_query($anfrage)or die ("Fehler bei Datenbank Update");
    mysql_close($db);//Datenbank schliessen
    //jetzt folgt die Anzeige des Zählerstandes
    $laenge=strlen($aktuell);
    for($a=0;$a<$laenge;$a++) {
    	$zahl=substr($aktuell,$a,1);
    	if($zahl=="0") {
    		echo "[img]images/counter/00.gif[/img]";
    	}
    habe mal den rest am schluss weggelassen
    habe gerade gesehen er speichert nur xx.xx von der ip, was für ein feld muss es in der mysql sein damit er die ip komplett speichern kann?

  • Gast-Avatar
    Ein Gast antwortete
    danke für die antwort werde es morgen mal testen

    Einen Kommentar schreiben:


  • imported_Ben
    antwortet
    prinzip:
    Code:
    $sql = "SELECT id FROM tabelle WHERE ip ='" . $_SERVER['REMOTE_ADDR']. "'";
    
    $res = mysql_query($sql) or die (mysql_error());
    
    if ( mysql_num_rows($res) == 0 )  
    {
        # counter erhöhen
    }
    du kannst das auch mit ner session lösen .. einfach in der session speichern, ob mit dieser session_id schon einmal der counter erhöht wurde oder nicht ..

    grüße ben ..

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    ich versuch zu verhindern das wenn jemand innerhald von einer bestimmten zeit wieder auf die seite geht das der counter nochmal erhöht wird.
    die for schleife dachte ich muss sein um alle einträge der datenbank durchzusuchen

    Einen Kommentar schreiben:


  • lazydog
    antwortet
    Das liegt nicht an deiner if-Abfrage, sondern an deiner komischen for-Schleife. Der Array $zip hat genau ein Element: die erste ip aus der Tabelle ip. Genauso, wie der Array $zuhr nur das erste Datum aus ip und $zeile den Inhalt des ersten Satzes aus counter enthält. Also könnte höchstens der erste Durchlauf der Schleife True ergeben. Alle anderen sind immer False und werden entsprechendneu in die DB eingetragen. Deshalb die Verdoppelung von $num_rows.
    Da ich aus deinem Code leider nicht erkennen kann, was du erreichen willst, kann ich dir auch nicht sagen wie du das besser lösen könntest.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    *schieb*

    wiss keiner woran es liegen könnte?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    er speichert alles wunderbar ab nur irgendiwe scheint was in meinen if net zu stimmen denn er verlässt die abfrage immer mit else.
    und warum verdoppelt sich der wert $num_rows jedesmal beim neuladen? also zB. 7,15,31,63???

    Einen Kommentar schreiben:


  • Simon9990
    antwortet
    nimm mal Varchar 30 für die IP

    Gruss Simon

    Einen Kommentar schreiben:

Lädt...
X