Ankündigung

Einklappen
Keine Ankündigung bisher.

unexpected T_EXIT, auf 1 von 2 servern

Einklappen

Neue Werbung 2019

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

  • unexpected T_EXIT, auf 1 von 2 servern

    Sry für den besch... titel, aber ich kann das Problem nicht besser kurz beschreiben^^

    Und zwar ist es eigenartig:

    Ich bekomme ein großes Projekt. Projektdateien sind ANSI kodiert.
    Wenn ich diese Dateien auf 2 versch. Server uploade funktioniert es auf beiden.

    Sobald ich mit NetBeans ein Projekt hinzufüge, kodierung natürlich auf ISO-8859-1 gestellt, mit diesen Dateien, und eine beliebige Datei bearbeite (seis nur ein kommentar eingefügt) und auf beide server uploade, so funktioniert sie auf dem 1. server wie gewohnt, aber auf dem 2. Server erhalte ich dann eigenartige meldungen.
    Z.b.:

    Parse error: syntax error, unexpected T_EXIT in ../core.page.php on line 1
    Wenn ich die Projektdateien nicht mit NetBeans, sondern mit notepad++ (kodierung ANSI wird automatisch erkannt)bearbeite, tritt dieser Effekt nicht auf.

    Meine Frage:
    Woher kommt der Fehler? Wieso nur auf 1 von 2 Servern? (beide Linux) Wie umgehe ich ihn? Google findet leider nichts passendes.

  • #2
    Präambel: Ich weiß es nicht.

    on line 1
    Eine Zeile, ein Fehler, nicht schlecht. Was steht denn in diesem Fall in Zeile 1?
    Sind die Dateien vorher zum Beispiel auf einem Mac bearbeitet worden?
    Wenn Du ein völlig neues Projekt mit netbeans anlegst, akzeptieren beide Server die Dateien also: es liegt wirklich am Ändern der bestehenden Dateien)?
    Ist es egal, welche Datei Du änderst? Irgendeine Datei anfassen -> *boom*?

    Kommentar


    • #3
      Du willst zeile eins?
      Biddeschön:

      PHP-Code:
      <?php
      Das ist zeile Eins^^

      Wenn ich ein neues Projekt Ohne bestehenden Source erstelle, so funktioniert es, wenn ich ein Projekt mit bestehendem source erstelle nichtmehr.

      Ist es egal, welche Datei Du änderst? Irgendeine Datei anfassen -> *boom*?
      Jep, sobald ich eine Datei anfasse ist diese Eine Datei geschrottet für den Server, er kann dann damit nichtmehr umgehen.

      Auf einem Mac wurden sie meines wissens nicht bearbeitet.

      Kommentar


      • #4
        Das ist zeile Eins^^
        Dann tippe ich immer noch auf "kaputte" Zeilenumbrüche.

        T_EXIT wird nur geliefert, wenn der Parser/Lexer auf ein exit() oder die() im Code stößt
        Zitat von zend_language_scanner.l
        <ST_IN_SCRIPTING>"exit" {
        return T_EXIT;
        }

        <ST_IN_SCRIPTING>"die" {
        return T_EXIT;
        }
        Wenn PHP also der Meinung ist, dass ein exit oder die in Zeile 1 steht, bei Dir aber Zeile 1 nur <?php enthält, muss irgendetwas mit den Zeilenumbrüchen nicht stimmen.

        Kommentar


        • #5
          Hmm und wieso dann nur auf 1 server? auf lokalem windows, auf 1 von 2 linux servern funktionierts, warum nicht auf dem 2. Linux?
          Woher kann sowas kommen und wie kann ich dagegen vorgehen?

          Kommentar


          • #6
            Wie überträgst Du die Dateien auf die Server?

            Es kann natürlich auch ein ganz anderes Problem sein. Aber das wäre die Richtung, in der ich suchen würde.

            Kommentar


            • #7
              Auf den lokalen Server werden sie nicht übertragen, da werden sie direkt im richtigen verzeichnis bearbeitet (funktioniert)
              Auf Server 1 & 2werden sie mit FileZilla über ftp übertragen (funktioniert 1x, 1x nicht)

              Kommentar


              • #8
                Wenn Du auf dem Server, auf dem die Skripte nicht funktionieren,
                PHP-Code:
                <?php
                $source 
                'nichtfunktioniernde.php';

                $fp fopen($source'rb') or die('!fopen');
                $s fgets($fp);
                echo 
                strlen($s), ' "'htmlspecialchars($s), '"';
                (am besten diese core.php mit unexpected T_EXIT in ../core.page.php on line 1, vorher nochmal testen, ob der Fehler wirklich noch auftritt) ausführst, zeigt es Dir nur die erste Zeile an oder mehr?

                Kommentar


                • #9
                  interessant..

                  Mit der kaputten Datei gibt er den Kompletten Quellcode, von Zeile 1 - zur letzten zeile, ohne zeilenumbrüche aus.
                  (hier mal der Anfang)

                  PHP-Code:
                  10812 "<?phpif (defined('CMS_AKTIV') != TRUE) die('ACCESS DENITED !!!');if .......
                  mit der normalen Datei
                  nur die erste Zeile:
                  PHP-Code:
                  6 "<?php "
                  Also scheinen wirklich die zeilenumbrüche schuld zu sein... aber wieso?

                  Kommentar


                  • #10
                    Werden die Dateien über FTP im Text/ASCII oder im Binary Modus übertragen?
                    Überträgst Du die Dateien aus Netbeans heraus oder verwendest Du einen (anderen) ftp client?
                    Ist auf beiden Servern a) der FTP Server und b) PHP in der gleichen Version und mit identischer Konfiguration installiert?

                    Kommentar


                    • #11
                      Wie schon gesagt, ich übertrage mit dem programm FileZilla, auf beide server.
                      Die einstelungen der server kann ich nicht einsehen, sind nur webspace, auf jedenfall nicht der selbe anbieter, allerdings brauch ich nen anhaltspunkt dass ich suchen kann, der support des einen servers konnte mir noch nicht helfen^^

                      Kommentar


                      • #12
                        Tja, knifflig
                        Hast Du einen verlässlichen Hexeditor (einen, der nicht "heimlich" die Codierung ändert), damit Du Dir die Zeilenumbrüche der "Originaldateien" mal ansehen kannst?
                        Du kannst die Dateien auch erstmal in irgendein Archiv packen, übertragen und dann auf dem Server auspacken und testen.

                        Und Du kannst auch mal ausprobieren, ob sie die Ausgabe von
                        Code:
                        <?php
                        $source = 'core.php';
                        
                        $c = file_get_contents($source);
                        echo '#\n\r: ', preg_match_all("/\r(?=\n)/", $c, $m), "<br />\n";
                        echo '#\n: ', preg_match_all("/\n/", $c, $m), "<br />\n";
                        echo '#\r: ', preg_match_all("/\r/", $c, $m), "<br />\n";
                        bei Dir lokal von der Ausgabe auf dem Server unterscheidet.

                        Kommentar


                        • #13
                          Ich kram das nochmal raus.

                          Hab mich wieder mal mit dem Thema befasst, und bin dabei im NetBeans bugtracker auf einen eintrag gestoßen.

                          Anscheinend gibts Probleme mit der interpretation von \r\n oder so, daraus resultieren dann statt einem zeilenumbruch immer 2 zeilenumbrüche, und beim speichern ein "crash" der datei auf manchen systemen. Zu problemen führt das manchmal wenn mehre entwickler arbeiten und nicht alle Netbeans benutzen... Nervig, weil ich mir jetzt nen andern Editor suchen muss.
                          Welche sind denn anschauendswert?
                          Anforderungen:

                          -Syntax highlighting
                          -funktionsvervollständigung (auch variablen ect.)
                          -syntax prüfung auf korrektheit

                          Ich weiß hier gabs maln thread dazu, aber da haben die meisten eben eins dieser funktionen nicht...

                          Kommentar

                          Lädt...
                          X