Apache hängt sich bei Ausführung eines PHP Skripts auf

Alles, was PHP betrifft, kann hier besprochen werden.

Apache hängt sich bei Ausführung eines PHP Skripts auf

Postby Vystup » 26. November 2004 14:08

Ich habe gestern die neueste Version von XAMPP gezogen, sie installiert. Der Apache läuft als Service, an den Standardeinstellungen habe ich nur 2 Dinge geändert, in der php.ini RegisterGlobals = Off und das htdocs-Verzeichnis. Funktionierte soweit auch wunderbar, konnte alle meine php-Seiten lokal bequem angucken.

Beim Ausführen des folgenden Skripts hängt sich aber der Server auf.

Code: Select all
<?php

function setLanguage() {
  @require "config.php";

  // Sprachverzeichnis auslesen und Datei-Erweiterungen in einem Array speichern
  $dir = opendir(languagedir);
  while ($file = readdir($dir)) {
    if ($file != "." && $file != "..") {
     $languages = substr($file, 9); // die Dateien heißen language.en usw.
    }
  }
  closedir($dir);

  // Browsersprache auslesen
  $language = defaultlanguage;                                    // Sprache auf defaultlanguage setzen
  if(isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])) {                   // Falls HTTP_ACCEPT_LANGUAGE existiert
    while($languages) {                                           // Array $languages durchlaufen
      if (strstr($_SERVER["HTTP_ACCEPT_LANGUAGE"],$languages)) {  // installierte Sprachen mit HTTP_ACCEPT_LANGUAGE vergleichen
        $language = $languages;                                   // falls gefunden Sprache auf detektierte Sprache setzen
      }
    }
  }
  return $language;                                               // Sprache zurückgeben
}

echo setLanguage(); // nur drin, um die Funktion zu testen
?>


Die config.php enthält nur die notwendigen Definitionen für die Variablen und Konstanten. Das Verzeichnis mit den Sprachdateien ist in der Konstanten languagedir festgelegt, existiert und hat auch ein paar Dateien drin. Auch sonst sollten eigentlich keine Fehler auftreten.
Wenn ich die Datei auf dem Webserver meines Webspace-Providers ausführe gibt es keinerlei Probleme, mit XAMPP als localhost führt der Aufruf dazu, dass der Server nicht mehr reagiert. Einzige Abhilfe ist ein Neustart des Services.

Woran liegts, wie kann ich es beheben? Danke :)[/code]
Vystup
 
Posts: 2
Joined: 26. November 2004 13:43

Postby Wiedmann » 26. November 2004 14:47

$languages = substr($file, 9);
...
while($languages) {
...
}

Das dieses im Web funktioniert, ist aber auch nur glücklichen Umständen zu verdanken. Oder, eher wahrscheinlich, einer sehr kurzen max_executen_time deines Hosters.

http://de.php.net/manual/en/control-str ... .while.php

'Ne Endlosschleife war noch nie so gut ;-)
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Vystup » 26. November 2004 14:49

oops :oops:

danke vielmals. ich hätte jetzt gerane den smiley der den kopf an die wand haut.
Vystup
 
Posts: 2
Joined: 26. November 2004 13:43


Return to PHP

Who is online

Users browsing this forum: No registered users and 3 guests