php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.03.2005, 18:08  
Gast
 
Beiträge: n/a
Standard Schon wieder-ein funktionierender Counter mit Fehlermeldung

Hallo,

ich habe mich jetzt in meinem "PHP-Selbststudium" an einen Counter mit IP-Blocker ran gewagt. Zu meiner Freude funktioniert er auch - er zählt weiter und doppelte IP's werden nicht gezählt. Doch ein Problem gibt es dennoch: Wenn man die Seite das 1. Mal aufruft (also die IP Adresse noch nicht gespeichert ist) kommt die Fehlermeldung, dass in Zeile 44 eine unbekannte Variable steht. ($gefunden)

Hier nun erst einmal der Quellcode:

PHP-Code:
<?php

// Grafik Counter mit IP-Sperre

//0=keine Reloadsperre, 1=aktiv
$aktiv 1;

// Zeit der Sperre in Minuten
$zeit 1;

// IP-Datei
$ipdatei "counter/ips.txt";

// Counterdateiname
$datei="counter/counter.txt";

// Anzahl der führenden Nullen
$stellen 5;

// Festlegen der Bilddimensionen
$breite="12";
$hoehe="16";

// IP-Reloadsperre

function pruf_IP($rem_addr) {
    global 
$ipdatei,$zeit;
    @
$ip_array file($ipdatei);
    
$reload_dat fopen($ipdatei,"w");
    
$this_time time();
    for (
$i=0$i<count($ip_array); $i++) {
        list(
$ip_addr,$time_stamp) = explode("|",$ip_array[$i]);
        if (
$this_time < ($time_stamp+60*$zeit)) {
            if (
$ip_addr == $rem_addr) {
                
$gefunden=1;
            }
            else {
                
fwrite($reload_dat,"$ip_addr|$time_stamp");
            }
        }
    }
    
fwrite($reload_dat,"$rem_addr|$this_time\n");
    
fclose($reload_dat);




// Das ist die Zeile 44 !!! 
    
return($gefunden==1) ? 0;



}

// Counter-Abfrage

if(file_exists($datei) && ($aktiv==|| ($aktiv==&&
pruf_IP($REMOTE_ADDR)==0))) {
    
//Falls Datei existiert, wird sie ausgelesen und um eins erhöht.
    
$fp=fopen($datei,"r+");
    
$zahl=fgets($fp,$stellen);
    
$zahl++;
    
rewind($fp);
    
flock($fp,2);
    
fputs($fp,$zahl,$stellen);
    
flock($fp,3);
    
fclose($fp);

}else if (!
file_exists($datei) && ($aktiv==|| ($aktiv==&&
pruf_IP($REMOTE_ADDR)==0))) {
//wenn Datei nicht existiert, wird sie mit Wert 1 angelegt
    
$fp=fopen($datei,"w");
    
$zahl="1";
    
fputs($fp,$zahl,$stellen);
    
fclose($fp);
} else {
    
// Die Datei existiert, jedoch es ist der gleiche Nutzer
    
$fp=fopen($datei,"r");
    
$zahl=fgets($fp,$stellen);
    
fclose($fp);
}

// Diese Funktion sorgt für die führenden Nullen.
$zahl=sprintf("%0".$stellen."d",$zahl);

//Hier wird der Zähler aus Bildern zusammen gesetzt
$bild_counter='';
for(
$i=0;$i<$stellen;$i++){
$bild_counter.="<img src=counter/images/" substr($zahl,$i,1) .
".jpg align=absmiddle width=$breite height=$hoehe>";
}

?>
Irgendwie erscheint mir der Fehler auch logisch - die Zeile 44 ist in der Else-Schleife, die greift, wenn man die Seite das 1. Mal startet und die IP-Adresse noch nicht in der Datei steht. Und eben hier ist ja auch kein $gefunden definiert, doch wenn ich versuche diese Variable auch in der else-Anweisung zu definieren, dann kommt zwar keine Fehlermeldung mehr, jedoch zählt der Counter auch nicht ...

Ich habe schon alles (was mir eingefallen ist) versucht, jedoch immer ohne Erfolg, ich würde mich daher über schnelle Hilfe sehr freuen.

Vielen Dank!
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.03.2005, 18:26  
Erfahrener Benutzer
 
Registriert seit: 21.01.2005
Beiträge: 444
stf.stream
stf.stream eine Nachricht über ICQ schicken
Standard

PHP-Code:
<?php
return isset($gefunden)?1:0;
?>
__________________
stf.
stf.stream ist offline  
Alt 15.03.2005, 18:34  
Gast
 
Beiträge: n/a
Standard

Suuuuuuuuuuuuper, es geht.

Ich danke dir, du glaubst gar nicht wie sehr ich daran verzweifelt bin und letztlich fehlten nur 5 kleine Buchstaben ... komisch, dass das in dem Buch nach dem ich lerne nicht drin stand...

Nochmals: Vielen Dank für die schnelle Hilfe!
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Counter in "selbstgestrickte" Homepage - wie? magro PHP Tipps 2008 11 30.03.2008 16:37
Fehlermeldung umbenennen Soese PHP Tipps 2007 3 13.03.2007 13:33
script läuft und funktioniert gibt aber fehlermeldung aus? Promaetheus PHP Tipps 2006 5 12.09.2006 23:42
ein counter - und berechnungen netti PHP Tipps 2005-2 11 24.10.2005 21:03
Fehlermeldung PHP Tipps 2005-2 2 04.09.2005 04:04
Ich will Fehlermeldung vermeiden. Zero.exe PHP Tipps 2005-2 2 02.08.2005 13:11
fragwürdige Fehlermeldung PHP Tipps 2005 5 19.05.2005 15:45
Counter funktioniert, aber trotzdem wird Fehler gezeigt ... PHP Tipps 2005 4 07.03.2005 17:56
Suche Counter Script Beitragsarchiv 8 17.01.2005 13:42
Problem mit counter HTML, Usability und Barrierefreiheit 10 12.01.2005 06:04
Counter für registrierte user PHP Tipps 2004-2 3 26.12.2004 11:32
Script bei Strato mit Fehlermeldung, bei Netbeat ok PHP Tipps 2004-2 14 08.12.2004 11:08
counter verschwindet immer! HILFE! PHP Tipps 2004 2 30.08.2004 11:02
counter für gallerie Sclot PHP Tipps 2004 2 05.07.2004 15:36
Problem mit einem Counter JeeZ PHP Tipps 2004 6 18.06.2004 13:36

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
grafikcounter mit ip-sperre, counterabfrage, php return ($gefunden==1) ? 1 : 0;, strato counter mit php auslesen

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:15 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.