Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

[PHP] Endlos-Umleitungsschleife, wieso?

  Alt 2. Mär 2009, 23:18
Hallo,

ich habe eine Datei (index.php) die ganz grob so aussieht:

Code:
<?php

function parse()
{
  // ...
}

if (parse())
{
   header('Location: index.php');
   exit;
}

?>
Die Funktion parse() parst Dateien, die in einem Verzeichnis liegen. Wenn eine Datei erfolgreich geparst wurde, wird der geparste Inhalt gespeichert. Dann wird die index.php erneut aufgerufen.
Beim Versuch, die gleiche Datei erneut zu parsen, wird geprüft, ob diese bereits existiert. Ist das der Fall, gibt die Funktion parse() "false" zurück und die nächste Datei im Verzeichnis wird geparst. Das geht theoretisch so lange, bis alle Dateien geparst sind.
Leider nur theoretisch. Nach rund 10-15 Dateien meldet Firefox einen Umleitungsfehler: "Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann."
Drücke ich F5, dann läuft das Skript einwandfrei weiter und parst die nächsten 10-15 Dateien bis zum nächsten Umleitungsfehler.

Wieso kommt es denn zu einer (Endlos-)Umleitungsschleife oder was mit FF damit sagen möchte?

Edit: Es handelt sich übrigens um eine Klasse und da rufe ich das innerhalb einer Methode auf. Es ist natürlich unschön, eine Klasse bzw. Methode so zu verlassen, aber das sollte erstmal keine Rolle spielen und das werde ich auch noch ändern.

Grüße, Matze
  Mit Zitat antworten Zitat