php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.03.2005, 11:01  
CSS
Erfahrener Benutzer
 
Registriert seit: 04.12.2004
Beiträge: 324
CSS
Standard Wo liegt der Fehler in meinem Script?

Hallo!

Ich habe den Versuch gestartet einen Counter zu programmieren, allerdings vergebens:
Hier der Code:
PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title>Besucherstatistik</title></head>

<body bgcolor="#ffffff">
<?php
$user_ip 
$_SERVER['REMOTE_ADDR'];
$has_already_visited FALSE
$datei fopen("users_ip.txt""rb");
while (!
feof($datei))    {
$old_ip fgets($datei4096);
if (
$old_ip === $user_ip)    {
$has_already_visited TRUE;
break;
}
else    {
continue;}
}
fclose($datei);

// if (has_already_visited === FALSE)    {
//EDIT:
if ($has_already_visited === FALSE)    {
$was_online fopen("was_online.txt""r+");
$aufruf fgets($was_online4096);
++
$aufruf;
rewind($was_online); // Dateizeiger an den Anfang setzten
fputs($was_online$aufruf);
fclose($was_online);
$read_ip file_get_contents("users_ip.txt");
$user_ip .= "\r\n";
$new_content $user_ip $read_ip;
file_put_contents("users_ip.txt"$new_content);
echo 
$aufruf;}


?>
</body>
</html>
In der Datei "users_ip.txt" werden die IP-Adressen der Besucher gespeichert.
In "was_online.txt" wird der Zählerstand gespeichert.
Der Counter sollte nach folgendem Schema vorgehen:
Den Inhalt der Datei "users_ip.txt" zeilenweise (also immer nur eine ip-adresse) einlesen und danach die eingelesene IP mit der IP des Aufrufers vergleichen.
Wenn dieser Vergleich TRUE ergibt, dann wird die Variable $has_already_visited auch auf TRUE gesetzt und die Schleife verlassen, ansonsten auf FALSE und die Schleife wird fortgesetzt.
Wenn diese if-Bedingung
PHP-Code:
if ($has_already_visited === FALSE
TRUE ergibt so wird der Zaehlerstand um 1 erhöht und die IP gespeichert, da dies bedeutet, dass der User zum ersten Mal diese Seite aufruft.
Ansonsten wird das Script verlassen.

Was das Script macht:
Gar nichts!
CSS ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 05.03.2005, 11:09  
Gast
 
Beiträge: n/a
Standard

if (has_already_visited === FALSE)

Da fällt dir wirklich nichts dran auf?? Ich würde sagen, da fehlt zwar kein Euro- aber ein Dollar-Zeichen, oder? :wink:

Wie so oft, würde auch hier ein error_reporting(E_ALL); am Anfang des Scriptes weiterhelfen.

Und von ordentlich einrücken hältst du nicht viel, oder? Lieber unleserlich und dafür schneller getippt, oder?

Gruß
phpfan
 
Alt 05.03.2005, 11:12  
CSS
Erfahrener Benutzer
 
Registriert seit: 04.12.2004
Beiträge: 324
CSS
Standard

Achja, habe ich wohl übersehen.... danke!
Das SCript weigert sich trotzdem auch nur das geringste Lebenszeichen von sich zu geben.

MfG CSS
CSS ist offline  
Alt 05.03.2005, 11:14  
Gast
 
Beiträge: n/a
Standard

Da ich nicht wirklich Lust habe, diesen unformtierten Quellcode zu lesen, hier ein Tipp:

Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.

Gruß
phpfan
 
Alt 05.03.2005, 11:22  
CSS
Erfahrener Benutzer
 
Registriert seit: 04.12.2004
Beiträge: 324
CSS
Standard

Der Fehler liegt zu 100% in diesem Teil des Scripts:
PHP-Code:
<?php
$user_ip 
$_SERVER['REMOTE_ADDR'];
$has_already_visited FALSE;
$datei fopen("users_ip.txt""rb");
while (!
feof($datei))   {
$old_ip fgets($datei4096);
if (
$old_ip === $user_ip)   {
$has_already_visited TRUE;
break;
}
else   {
continue;}
}
fclose($datei); 

?>
MfG CSS
CSS ist offline  
Alt 05.03.2005, 11:27  
Gast
 
Beiträge: n/a
Standard

Du weisst, dass du bei fgets den Zeilenumbruch mit einliest? Ein trim vor dem Vergleich sollte da weiterhelfen. Und wieso "rb"?

Gruß
phpfan
 
Alt 05.03.2005, 11:32  
CSS
Erfahrener Benutzer
 
Registriert seit: 04.12.2004
Beiträge: 324
CSS
Standard

Hab' ich auch schon versucht: hilft gar nichts! Inzwischen weiß ich so viel, dass der Vergleich immer FALSE ergibt.

MfG CSS
CSS ist offline  
Alt 05.03.2005, 11:59  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php 
 $user_ip 
$_SERVER['REMOTE_ADDR']; 

 
$has_already_visited FALSE

 
$datei fopen("users_ip.txt""r"); 

 while ((
$old_ip fgets($datei)) && (! $has_already_visited))
 { 
   
$old_ip trim($old_ip);

   if (
$old_ip == $user_ip)
     
$has_already_visited TRUE
 } 

 
fclose($datei); 
?>
Ich gehe mal davon aus, dass in der Datei jede IP-Nummer in einer neuen Zeile steht, oder?
 
Alt 05.03.2005, 12:32  
CSS
Erfahrener Benutzer
 
Registriert seit: 04.12.2004
Beiträge: 324
CSS
Standard

Oaky. danke nun funktioniert es!
MfG CSS
CSS ist offline  
 


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
php script Fehler andi PHP Tipps 2008 17 30.07.2008 18:50
Counter Script bringt Fehler Almond PHP Tipps 2006 6 13.06.2006 10:03
[Erledigt] Fehler im Code? PHP Tipps 2006 4 15.02.2006 17:53
[Erledigt] Counter script, kleiner OOP fehler? PHP-Fortgeschrittene 10 30.11.2005 22:34
Frage: Suche Fehler in diesem Script... PHP Tipps 2005-2 14 25.10.2005 19:24
[Erledigt] Relay Script PHP-Fortgeschrittene 11 01.06.2005 16:02
Bitte um Hilfe: Fehler im Script ?!? PHP Tipps 2005 6 23.05.2005 21:46
fehler im script oder fehler beim server PHP Tipps 2005 12 21.05.2005 17:04
Fehler im Script (?) - Auf Webserver funzt der Code... PHP Tipps 2005 5 09.05.2005 11:17
Fehler bei Script, welches Ordner erstellt PsychoEagle PHP Tipps 2005 3 23.04.2005 16:03
Fehler in Bild-upload Script PHP Tipps 2004-2 5 19.11.2004 14:01
Habe Fehler im Script bitte um Hilfe test022 PHP Tipps 2004-2 9 13.11.2004 17:44
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05
fehler im script PHP Tipps 2004 1 27.07.2004 21:05
[Erledigt] Wo ist der Fehler im Script (MySQL mit PHP) PHP Tipps 2004 15 27.07.2004 09:25


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:12 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.