Ergebnis 1 bis 29 von 29

Thema: Endloses "Loading data" nach Update auf 2.10.2

  1. #1
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard Endloses "Loading data" nach Update auf 2.10.2

    Hallo zusammen,

    ich habe eine Installation via Live Update auf 2.10.2 aktualisiert und seitdem CSS-Probleme sowie gravierende Schwierigkeiten mit dem Seiten- und Artikelmodul.

    Versuche ich, einen von mehreren Seitenstartpunkten innerhalb des Projekts zu öffnen (egal ob Seiten oder Artikel), erscheint nur die Fortschrittsanzeige "Loading data ..." und es tut sich nichts mehr. Ich kann also faktisch nicht mehr im CMS arbeiten.

    Außerdem werden meine Menüs plötzlich anders dargestellt (falsche Höhen bzw. margins/paddings).

    Im Log findet sich keine Fehlermeldung.

    Was könnte hier schief gelaufen sein?

    Danke für jede Anregung!

    Gruß Alex

  2. #2
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Es scheint ein Problem mit der AJAX-Fortschrittsanzeige zu sein. Auch wenn ich z.B. eine CSS-Definition öffnen will, bleibt er hängen.

    Wenn ich die Fehlermeldungen anzeigen lasse, erhalte ich:

    SyntaxError: JSON.parse: unexpected character
    Wie bekomm ich das in den Griff?
    Geändert von mv_alex (11.10.2011 um 18:18 Uhr)

  3. #3
    Contao-Fan
    Registriert seit
    07.07.2011.
    Ort
    Kiel
    Beiträge
    254
    User beschenken
    Wunschliste

    Standard

    Hast du nach dem Update eine Systemwartung durchgeführt ?

  4. #4
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Ja, habe ich. Alle Caches sind geleert.

  5. #5
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Was war die Ursprungsversion? Ist JSON in PHP aktiviert?

  6. #6
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Update war von 2.9.3 erst auf 2.9.5, dann auf 2.10.2.

    Zur PHP-Umgebung kann ich immo nix sagen (vor morgen kein Zugriff) - ist JSON eine Neuerung? Ansonsten gab es vor dem Update keine Probleme.

    Ich hatte hier auch schon was über die BOM-Problematik gelesen. Leider liefert die Prüf-Extension nur eine leere Seite.

  7. #7
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Seit 2.10 ist die PHP Extension JSON eine Voraussetzung, da der Dateibaum darin geliefert wird...
    Das ist einer der Hauptgründe für das Problem (so nehm ich das zumindest wahr).

    die PHP Funktion phpinfo() kann dir da weiterhelfen, ansonsten einfach mal deinen Hoster ansprechen.

  8. #8
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Das klingt zumindest nach einer Erklärung!

    Morgen kann ich da mehr zu sagen.

    Aber: Wurde diese Änderung irgendwo angekündigt? In den Systemvoraussetzungen, wie sie unter contao.org nachzulesen sind, wird das jedenfalls so nicht aufgeführt:
    Außerdem benötigen Sie die PHP-Erweiterungen GDlib (Bildbearbeitung) und SOAP (Extension Repository) sowie optional mbstring (internationale Zeichen) und mcrypt (Verschlüsselung).

  9. #9
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Nenenene JSON ist Teil von PHP, da musst Du gar nichts machen
    Da müsste dein Admin dir explizit JSON ausschalten, damit Du das nicht mehr hättest und das wäre nicht sehr nett

    Wenn dem aber der Fall wäre, dann würdest Du einen PHP Error kriegen, keinen Javascript Error auf der Konsole

    Mit der 2.10 wurde das Request Token System eingeführt. Deshalb erwarten jetzt alle Ajax-Requests JSON als Antwort. Erster Parameter ist der Request-Token und der zweite dann der eigentliche Content des Requests.
    Nun wird offenbar versucht, die Antwort durch den JSON Parser zu drücken (JSON.parse() ist eine native Javascript Funktion), aber die Antwort ist halt eben nicht JSON encoded und deshalb gibt es einen Fehler

    Mögliche Ursachen:

    • Falls es bei einer Extension geschieht, ist die ziemlich sicher nicht für die 2.10 freigegeben
    • Falls es im Core passiert würde ich noch einmal alle Files auf den Server laden, vielleicht wurden nicht alle Files korrekt übertragen
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  10. #10
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Ob alle Dateien übertragen wurden, kann ich leider noch nicht prüfen, hab gerade keinen FTP-Zugang.

    Wenn es aber an den Tokens läge, wieso tritt der Fehler dann auch bei Deaktivierung derselben auf?

    Der IE (FF hab ich leider grad auch nicht da) wirft dann leider eine ziemlich unspezifische Meldung aus:

    SyntaxError: Ungültiges Zeichen
    Gruß Alex

  11. #11
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Firebug spuckt noch etwas mehr aus:

    HTML-Code:
    <br />
    <b>Fatal error</b>:  Call to undefined function json_encode() in <b>/var/www/vhosts/domain/httpdocs/system/modules/backend/Ajax.php</b> on line <b>137</b><br />

  12. #12
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.615
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Könnte auch an einer Datei liegen, die mit BOM gespeichert wurde.
    http://de.contaowiki.org/UTF-8_ohne_BOM

  13. #13
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Möglich, das versuche ich noch zu klären. Wie gesagt, die Extension bom_checker gibt nur eine leere Seite aus.

  14. #14
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von mv_alex Beitrag anzeigen
    Firebug spuckt noch etwas mehr aus:

    HTML-Code:
    <br />
    <b>Fatal error</b>:  Call to undefined function json_encode() in <b>/var/www/vhosts/domain/httpdocs/system/modules/backend/Ajax.php</b> on line <b>137</b><br />
    Das allerdings wäre jetzt der angesprochene PHP Error - wenn dem der Fall ist, dann ist wirklich JSON deaktiviert. Dieser Admin gehört verkloppt
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  15. #15
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.615
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von mv_alex Beitrag anzeigen
    Möglich, das versuche ich noch zu klären. Wie gesagt, die Extension bom_checker gibt nur eine leere Seite aus.
    Versuchs mal mit dem Script aus FCKeditor - PHP BOM Finder (siehe Contao-Wiki) das hat weniger Systemvoraussetzungen udn ist eigentlich auch sehr zuverlässig.

  16. #16
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    681

    Standard

    Zitat Zitat von Toflar Beitrag anzeigen
    Dieser Admin gehört verkloppt
    Was soll ich sagen ... der Anbieter hat ein sehr großes T im Namen. Reicht das?

    Ich hab auch noch immer keinen FTP-Schreibzugang, kann also auch die Diagnosescripts nicht hochladen *grrr*

  17. #17
    Contao-Nutzer Avatar von DanielGrosse
    Registriert seit
    29.06.2009.
    Ort
    Zwickau
    Beiträge
    58

    Standard

    Hallo,

    ich schließe mich mal an das Problem an. Bei mir tritt das Phänomen immer auf, wenn ich im Backend in einer Baumansicht einen Ast aufklappen will.
    In der Konsole steht dann nur: /contao/extMain.php?do=article 500 (Internal Server Error)

    Json ist laut phpinfo aktiviert.
    Hab die Installation erst lokal getestet, da lief alles.
    Auf der Startseite fehlen auch alle Punkte nach den Tastaturkürzeln.

    So wie es aussieht, muss ich erstmal das Backup zurückziehen.

    edit: JSON ist doch nicht aktiviert. Wende mich erstmal an den Support.

    edit2: Also JSON ist doch aktiviert. Hab nun im CMS-Ordner phpinfo ausgeführt, und da steht unter JSON:


    json

    json support enabled
    json version 1.2.1


    Also bleibt das Problem erstmal bestehen.
    Geändert von DanielGrosse (27.10.2011 um 11:55 Uhr)

  18. #18
    Contao-Nutzer Avatar von DanielGrosse
    Registriert seit
    29.06.2009.
    Ort
    Zwickau
    Beiträge
    58

    Standard

    So das Problem war extContao. Nach einem Tip im Forum hab ich die Erweiterung deinstalliert, und nun geht wieder alles.

  19. #19
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    Falls das Problem nochmal bei jemandem auftreten sollte:
    json_encode ist erst ab PHP5.3 in PHP enthalten, die token Geschichte in Contao 2.10 braucht diese Funktion jedoch explizit.

    Abhilfe schafft hierbei die Klasse JSON aus PEAR. http://pear.php.net/pepr/pepr-proposal-show.php?id=198
    Diese kann man in eine eigene json_encode und json_decode Funktion wrappen (ggf. muss man noch die dependency von PEAR durch auskommentieren der betreffenden Zeilen "class_exists" entfernen damit der Contao Autoloader nicht zuschlaegt).

    Gruss
    Chris (der das Problem auf einem T-Offline Server vor ein paar Tagen ebenfalls hatte).
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

  20. #20
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Ansonsten könnte man auch diese Funktion hier verwenden:

    PHP-Code:
    <?php
    function __json_encode$data ) {           
        if( 
    is_array($data) || is_object($data) ) {
            
    $islist is_array($data) && ( empty($data) || array_keys($data) === range(0,count($data)-1) );
           
            if( 
    $islist ) {
                
    $json '[' implode(','array_map('__json_encode'$data) ) . ']';
            } else {
                
    $items = Array();
                foreach( 
    $data as $key => $value ) {
                    
    $items[] = __json_encode("$key") . ':' __json_encode($value);
                }
                
    $json '{' implode(','$items) . '}';
            }
        } elseif( 
    is_string($data) ) {
            
    # Escape non-printable or Non-ASCII characters.
            # I also put the \\ character first, as suggested in comments on the 'addclashes' page.
            
    $string '"' addcslashes($data"\\\"\n\r\t/" chr(8) . chr(12)) . '"';
            
    $json    '';
            
    $len    strlen($string);
            
    # Convert UTF-8 to Hexadecimal Codepoints.
            
    for( $i 0$i $len$i++ ) {
               
                
    $char $string[$i];
                
    $c1 ord($char);
               
                
    # Single byte;
                
    if( $c1 <128 ) {
                    
    $json .= ($c1 31) ? $char sprintf("\\u%04x"$c1);
                    continue;
                }
               
                
    # Double byte
                
    $c2 ord($string[++$i]);
                if ( (
    $c1 32) === ) {
                    
    $json .= sprintf("\\u%04x", ($c1 192) * 64 $c2 128);
                    continue;
                }
               
                
    # Triple
                
    $c3 ord($string[++$i]);
                if( (
    $c1 16) === ) {
                    
    $json .= sprintf("\\u%04x", (($c1 224) <<12) + (($c2 128) << 6) + ($c3 128));
                    continue;
                }
                   
                
    # Quadruple
                
    $c4 ord($string[++$i]);
                if( (
    $c1 ) === ) {
                    
    $u = (($c1 15) << 2) + (($c2>>4) & 3) - 1;
               
                    
    $w1 = (54<<10) + ($u<<6) + (($c2 15) << 2) + (($c3>>4) & 3);
                    
    $w2 = (55<<10) + (($c3 15)<<6) + ($c4-128);
                    
    $json .= sprintf("\\u%04x\\u%04x"$w1$w2);
                }
            }
        } else {
            
    # int, floats, bools, null
            
    $json strtolower(var_export$datatrue ));
        }
        return 
    $json;
    }
    ?>
    Quelle: php.net

    Das Pendant dazu:

    PHP-Code:
    function json_decode($json)

        
    // Author: walidator.info 2009
        
    $comment false;
        
    $out '$x=';
       
        for (
    $i=0$i<strlen($json); $i++)
        {
            if (!
    $comment)
            {
                if (
    $json[$i] == '{')        $out .= ' array(';
                else if (
    $json[$i] == '}')    $out .= ')';
                else if (
    $json[$i] == ':')    $out .= '=>';
                else                         
    $out .= $json[$i];           
            }
            else 
    $out .= $json[$i];
            if (
    $json[$i] == '"')    $comment = !$comment;
        }
        eval(
    $out ';');
        return 
    $x;

    Quelle: php.net

    Die zweite Funktion könnte Probleme beim Umgang mit UTF-8 Entitäten haben...

  21. #21
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Flex Beitrag anzeigen
    Die zweite Funktion könnte Probleme beim Umgang mit UTF-8 Entitäten haben...
    Und aufgrund der Verwendung von eval() ggf. noch ein paar mehr Probleme mit PHP injection wenn man ihr unsauberen json vorsetzt (hab ich nun nicht analysiert).

    Ich bevorzuge da die Klasse, welche "richtiges" parsing betreibt.
    Das encoden hingegen sieht soweit gut aus. Entsprechende Wrapper routinen muss man dann aber noch schreiben.
    PHP-Code:
    if(!function_exists('json_encode'))
    {
    function 
    json_encode($val)
    {return 
    __json_encode($val);
    }

    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

  22. #22
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Okay, da geb ich dir Recht, mein Fehler, hab gar nicht drauf geachtet, sondern nur die erstbeste Funktion genommen...

  23. #23
    Contao-Nutzer Avatar von jahna
    Registriert seit
    13.03.2011.
    Ort
    Schweiz
    Beiträge
    217

    Standard

    Bei mir tritt dieses Phänomen heute auf, als ich einer Seite ein anderes Layout zuweisen wollte.
    Nachdem ich den Hacken bei "Ein Layout zuweisen" geseetzt habe, verweilt das System im Loading data-Zustand. Firebug zeigt mir folgende Fehlermeldung:

    REQUEST_TOKEN is not defined

    }a.value=1;a.checked="checked";b.setStyle("display ","block");AjaxRequest.hideBox();Backend.hideTreeB ody();Backend.addInteractiveHelp();Backend.addColo rPicker();window.fireEvent("subpalette");window.fi reEvent("ajax_change")}}).post({action:"toggleSubp alette",id:d,field:c,load:1,state:1,REQUEST_TOKEN: REQUEST_TOKEN})},toggleVisibility:function(d,g){d. blur();var e=$(d).getFirst();var f=d.getParent("div");


    Gleiches passiert auch, wenn man den Hacken bei den anderen Optionen setzt...

    Könnte da jemand behilflich sein?

  24. #24
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Eigenes Backend-Template und das nicht auf 2.10 angepasst?
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  25. #25
    Contao-Nutzer Avatar von jahna
    Registriert seit
    13.03.2011.
    Ort
    Schweiz
    Beiträge
    217

    Standard

    hmm und was heisst das jetzt
    Muss ich irgendwas ändern?

    ....also jetzt hängt dies Seite überall, wo ich einen Hacken setzte....
    Geändert von jahna (10.11.2011 um 13:33 Uhr)

  26. #26
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Ich frage dich Hast Du Backend-Templates angepasst? Wenn ja, dann musst Du immer dafür sorgen, dass Du die bei einem Update an die Änderungen anpasst - ist ja klar

    http://www.contao.org/neuigkeiten/it..._2-10-RC1.html

    Siehe Request Tokens.

    Am einfachsten löscht Du einfach dein Template und erstellst es neu (womit Du dann automatisch alle Änderungen aus dem Core drin hast) und passt es wieder an, wo Du Anpassungen vorgenommen hast.
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  27. #27
    Contao-Nutzer Avatar von jahna
    Registriert seit
    13.03.2011.
    Ort
    Schweiz
    Beiträge
    217

    Standard

    Ja das hab ich noch nicht wirklich gemacht, weil ich bei diesen Änderungen sehr unsicher bin.
    Hab dir mal ein Bild meiner aktuelle Templates beigelegt. Da sieht man auch, dass noch alte Endungen dabei sind.

    Könntes du mir an einem Beispiel kurz erklären, wie ich die Neuerungen anbringen muss. Wobei ich natürlich auch selbst in deinem Link nachlese, aber einfach damit ich weiss wo was gemacht werden muss
    Angehängte Grafiken Angehängte Grafiken

  28. #28
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Na bitte Du hast die be_main angepasst. Wieso auch immer

    Diese wurde überarbeitet um unter anderem den neuen Request Token zu speichern. Also am besten merkst Du dir die Änderungen, die Du da vorgenommen hast und löscht diese Datei dann.

    Danach machst Du ein neues Template von be_main (aber diesmal .html5, weil seit der 2.10 im BE alles HTML5 ist) und fügst deine Änderungen dort wieder ein. Dann bist Du sicher, dass der Rest des Templates korrekt ist
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  29. #29
    Contao-Nutzer Avatar von jahna
    Registriert seit
    13.03.2011.
    Ort
    Schweiz
    Beiträge
    217

    Standard

    o.k.
    das ganze stammt nicht von mir, darum weiss ich auch gar nicht was geändert wurde...
    Könnte ich das einfach mal in .alt umbenennen und dann neues html5-Template erstellen?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •