Ankündigung

Einklappen
Keine Ankündigung bisher.

$var2[] = $var1; erzeugt "Die Verbindung wurde durch den Server beendet."

Einklappen

Neue Werbung 2019

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

  • $var2[] = $var1; erzeugt "Die Verbindung wurde durch den Server beendet."

    Ich habe mal vor einger Zeit einen kleinen filemanager gebastelt in dem folgender code vorkam:

    PHP-Code:
    <?
    error_reporting(E_ALL);
    $file = '';
    $files = '';

               foreach (glob("*.*",GLOB_BRACE) as $file) {
                   $files[] = $file;
               }
                                                                  echo '$files: ';print_r($files);echo "<br>\n";
    ?>
    Das erzeugt folgende Ausgabe:

    $files: Array
    (
    [0] => 1.htm
    [1] => 2.htm
    [2] => 3.htm
    [3] => 4.htm
    )

    Jetzt konnte ich das für einen Bekannten ebenfalls gebrauchen, aber seltsamerweise funktioniert es nicht.

    Auf dessen Server kommt nur ein lapidares
    "Die Verbindung wurde durch den Server beendet." (Opera),
    "Die Webseite kann nicht angezeigt werden." (IE)
    oder
    schlicht eine weiße Seite (Firefox),
    was der Fehlersuche natürlich nicht gerade förderlich ist.

    Ich konnte das Problem zwar mit
    PHP-Code:
    $files .= $file."\n"
    umgehen, aber mich würde interessieren ob hier eventuell jemand eine Erklärung für dieses Phänomen hat.
    Google war nämlich (wohl mangels treffendem Suchbegriff ) nicht wirklich hilfreich.


    Edit: Auf beiden Servern laufen identische php-Versionen.

  • #2
    PHP-Code:
    ini_set('display_errors'true); 
    ...vielleicht zeigt er dann'n Fehler an?
    Ansonsten frage ich mich, wozu Du das GLOB_BRACE verwendest, Du nutzt doch gar keine Listenparameter...

    Kommentar


    • #3
      PHP-Code:
      ini_set('display_errors'true); 
      bringt leider auch keine Änderung.
      Im kompletten code sind Listenparameter drin.

      Kommentar


      • #4
        Weiße Seite könnte einen Fatal Error bedeuten, der wird nicht angezeigt. Durchsuch die PHP Logfiles...

        Kommentar


        • #5
          das Thema hatten wir doch erst vorgestern ...


          PHP-Code:
          $files=''// FEHLERQUELLE 
          PHP-Code:
          $files=array(); // so gehört das 

          Kommentar


          • #6
            auißerdem solltest du nicht BLIND davon ausgehen, dass glob auch was findet - wenn es nichts findet, kommt ein false, das false wiederum kann foreach nicht traversieren -> Fehler

            Kommentar


            • #7
              PHP-Code:
              $files=array(); // so gehört das 
              Aus Deklarationssicht stimme ich dem zu, aber durch dynamic-type-cast dürfte das doch keine Fehlerquelle sein, oder?

              Beitrag editiert:
              wenn es nichts findet, kommt ein false, das false wiederum kann foreach nicht traversieren -> Fehler
              Denn hätte es aber keine weiße Seite erzeugt, sonder ein INVALID ARGUMENT

              Kommentar


              • #8
                ob es eine Fehlerquelle ist, hängt von der nachfolgenden Verarbeitung ab ..wenn das foreach nämlich keine Array-Elemente anhängen (kann) - und man das Teil als Array weiterverarbeitet .. dann knallt es eigentlich ziemlich sicher, wenn keine Fehlerbehandlung dazwischensteht ....

                aber mal was anderes ..

                dein Code da ist so seltsam eingerückt .. sind das nur Ausschnitte deines Scriptes? dann poste mal bitte ein paar Zeilen mehr - zumindest in dem Code selbst lauert nämlich kein so schwerer Fehler, das gleich ne weiße Seite folgen muss....

                Kommentar


                • #9
                  das Thema hatten wir doch erst vorgestern ...
                  Naja nicht wirklich. Dort war _keine_ Initialisierung vorhanden.
                  wenn es nichts findet, kommt ein false, das false wiederum kann foreach nicht traversieren -> Fehler
                  Ich denke, das Problem ist eher, dass man einen String zwar Zeichenweise als Array auslesen kann, aber nicht mit mehr als einem Zeichen Pro Indexposition beschreiben.

                  Kommentar


                  • #10
                    Zitat von nikosch Beitrag anzeigen
                    Ich denke, das Problem ist eher, dass man einen String zwar Zeichenweise als Array auslesen kann, aber nicht mit mehr als einem Zeichen Pro Indexposition beschreiben.
                    Das löst aber auch keinen Fehler aus, sondern es wird einfach nur das erste „Zeichen“ (bzw. Bytewert) des zugewiesenen übernommen.

                    Kommentar


                    • #11
                      Zitat von eagle275 Beitrag anzeigen
                      zumindest in dem Code selbst lauert nämlich kein so schwerer Fehler, das gleich ne weiße Seite folgen muss....
                      Dachte ich auch, das macht die Sache ja so dubios.
                      Denn exakt dieser code wie er im Eingangsposting steht erzeugt auf einem Server den Fehler und bringt auf dem anderen das erwartete oben aufgeführte array.
                      Deutet das Ganze nicht eher auf eine (php?)Einstellungssache hin?
                      Nach den Logfiles schaue ich später noch..

                      Kommentar


                      • #12
                        das einzige, was mir jetzt noch einfällt wäre "short_open_tags" auf disable / false


                        bitte beginne dein Script mit dem eindeutigeren
                        PHP-Code:
                        <?PHP
                        .. es könnte sein, dass auf dem "weiße Seite" Server diese Einstellung auf Disabled steht .. dann erkennt er kein PHP-Tag, aber auch keine anderen HTML-Tags, die irgendeine Ausgabe machen, stattdessen nur ein laaanges unbekanntes Tag - das aber auch keine Ausgabe zur Folge hat, weil es als unbekanntes Tag in HTML ignoriert wird

                        Kommentar


                        • #13
                          Nach den Logfiles schaue ich später noch..
                          Sowas macht man, bevor man kopflos anfängt zu suchen.

                          Kommentar

                          Lädt...
                          X