Seite 1 von 1
TinyMCE schließt sich nicht nach Klick auf grünem Haken
Verfasst: Di 17. Mär 2015, 11:24
von McHubi
Hallo zusammen,
habe ein etwas "seltsames" Problem, das bei keiner anderen Installation auftritt: Beim Klick auf das grüne Häkchen im Tiny schließt sich ja normalerweise der Editor. In einer 4.9.4er Installation funktioniert das jedoch nicht. Im Errorlog wird beim Klick auf den grünen Haken diese Meldung ausgeworfen:
Code: Alles auswählen
[16-Mar-2015 21:15:41 UTC] PHP Warning: Cannot modify header information - headers already sent by (output started at /homepages/abc/xxx/htdocs/contenido/classes/class.search.php:1) in /homepages/abc/xxx/htdocs/contenido/includes/include.CMS_HTMLHEAD.php on line 45
[16-Mar-2015 21:15:41 UTC] PHP Warning: Cannot modify header information - headers already sent by (output started at /homepages/abc/xxx/htdocs/contenido/classes/class.search.php:1) in /homepages/abc/xxx/htdocs/contenido/includes/include.CMS_HTMLHEAD.php on line 50
Die genanten Zeilen der incluce.CMS_HTMLHEAD.php sehen so aus.
Code: Alles auswählen
if ($doedit == "1") {
// redirect
header("Location:" . $sess->url($path1));
}
getAvailableContentTypes($idartlang);
header("Content-Type: text/html; charset={$encoding[$lang]}");
Der gleiche Fehler tritt auch bei CMS_HTML auf, allerdings beschränkt sich der Fehler auf
Code: Alles auswählen
[16-Mar-2015 21:15:41 UTC] PHP Warning: Cannot modify header information - headers already sent by (output started at /homepages/abc/xxx/htdocs/contenido/classes/class.search.php:1) in /homepages/abc/xxx/htdocs/contenido/includes/include.CMS_HTML.php on line 50
Zeile 50 von include.CMS_HTML.php:
Code: Alles auswählen
header("Content-Type: text/html; charset={$encoding[$lang]}");
Beide Dateien sind im ANSI-Format codiert, ein Leerzeichen vor dem <?php am Anfang ist nicht vorhanden. Allerdings enden beide Dateien ohne schließendes ?>. Ist das korrekt?
Hat jemand einen Tipp für mich? Danke!

Re: TinyMCE schließt sich nicht nach Klick auf grünem Haken
Verfasst: Di 17. Mär 2015, 20:39
von Faar
Schließ mal das Zeug mit ?> ab, denn vielleicht ist irgendwo im Code der danach folgt, ein Leerzeichen.
Ein Leerzeichen hinter dem PHP wird als HTML Ausgabe über den HTTP Header gesendet und schon bekommst du so eine Fehlermeldung.
Leerzeichen am Anfang lassen sich ja meistens leicht finden, es sei denn, es ist der utf-8 BOM

Re: TinyMCE schließt sich nicht nach Klick auf grünem Haken
Verfasst: Di 17. Mär 2015, 21:04
von McHubi
Jaja. Der utf8-bom... Grins... Das hat sich eingebrannt...
Werd das mal testen mit dem schließenden ?>
Re: TinyMCE schließt sich nicht nach Klick auf grünem Haken
Verfasst: So 22. Mär 2015, 21:11
von McHubi
Hm... das ist wohl nicht der Grund. In anderen Installationen fehlt ebenfalls das schließende ?> und hier funktioniert alles reibungslos...

Re: TinyMCE schließt sich nicht nach Klick auf grünem Haken
Verfasst: So 22. Mär 2015, 22:41
von homtata
Ich kann auch nur zum Kaffeesatzlesen beitragen und mal ein paar Fragen stellen, da dieser Fehler in einer 4.9.4 bei mir so nicht auftritt:
- es wird ja auch die class.search.php erwähnt im errorlog. Ist vielleicht irgendwie eine eingebundene Suchroutine auf der Webseite dafür verantwortlich?
- kannst du mal das layout wechseln oder nach und nach mal Module ein- und ausklemmen, um zu schauen, ob es an einem Modul liegt?
- gleiches für Plugins: hast du was ungewöhnliches laufen außer Smarty und AMR?
- ist das eine neuinstallierte 4.9 oder eine Upgrade-Version von 4.8.x?
- welches Sprachencoding für den Mandanten hast du laufen? Passt da alles zusammen von der Mandanteneinstellung bis hin zur config.php? Ich frage nur (wenn auch unwahrscheinlich), weil in den "header"-Dingern auch immer wieder da $encoding-Variable aufkreuzt.
Vielleicht hilft ja ein Update auf die 4.9.6 mit einem neu hochgeladenen contenido-Ordner?
Re: TinyMCE schließt sich nicht nach Klick auf grünem Haken
Verfasst: Mo 23. Mär 2015, 08:20
von Zuschauer
Faar hat geschrieben:Schließ mal das Zeug mit ?> ab, denn vielleicht ist irgendwo im Code der danach folgt, ein Leerzeichen.
Ein Leerzeichen hinter dem PHP wird als HTML Ausgabe über den HTTP Header gesendet und schon bekommst du so eine Fehlermeldung.
McHubi hat geschrieben:Hm... das ist wohl nicht der Grund. In anderen Installationen fehlt ebenfalls das schließende ?> und hier funktioniert alles reibungslos...

Das hätte mich auch sehr gewundert.
Mal ganz ehrlich, wenn PHP nicht beendet wird, wie soll denn NACH dem Ende ein Leerzeichen kommen
[Zitat] Faszinierend [/Zitat]
Gruß
Zuschauer
Re: TinyMCE schließt sich nicht nach Klick auf grünem Haken
Verfasst: Mo 23. Mär 2015, 14:20
von Faar
Zuschauer hat geschrieben:
Das hätte mich auch sehr gewundert.
Mal ganz ehrlich, wenn PHP nicht beendet wird, wie soll denn NACH dem Ende ein Leerzeichen kommen
[Zitat] Faszinierend [/Zitat]
Es ist nur, damit man es selbst in der Hand hat, wann PHP-Code beendet wird und nicht irgendwo in einem anderen Modul.
Wenn jeder so programmiert, dass nach dem obligatorisch abschließenden ?> kein Leerzeichen mehr kommt, dann gibts damit auch keine Probleme mehr.
Das dient in einer Art Ausschlussverfahren

Re: TinyMCE schließt sich nicht nach Klick auf grünem Haken
Verfasst: Mo 23. Mär 2015, 14:24
von Faar
McHubi hat geschrieben:Hm... das ist wohl nicht der Grund. In anderen Installationen fehlt ebenfalls das schließende ?> und hier funktioniert alles reibungslos...

Es gibt im Code dieses header() Dingens und da sagt PHP-Dinges dazu folgendes:
"Beachten Sie, dass Sie die Funktion header() aufrufen müssen, bevor Sie irgendeine andere Art von Ausgabe (seien es normale HTML-Tags, Leerzeilen in einer Datei oder von PHP) zum Client schicken."
Es kann und wird vermutlich sein, dass vorher irgendwie HTML oder Leerzeilen ausgegeben wurden.
Was läuft denn alles davor, bevor dieses header() kommt?
Re: TinyMCE schließt sich nicht nach Klick auf grünem Haken
Verfasst: Mo 30. Mär 2015, 11:00
von rethus
Faar hat geschrieben:Wenn jeder so programmiert, dass nach dem obligatorisch abschließenden ?> kein Leerzeichen mehr kommt, dann gibts damit auch keine Probleme mehr.
Da muss ich mal widersprechen. Obligatiorisch ist der schießende PHP-Tag nicht! Im Gegenteil kann es sogar bei includes und require-Einbindungen hilfreich sein, diese wegzulassen, da sich dann keine White-Spaces einschleichen können. (siehe graue Box auf
http://php.net/manual/de/language.basic ... ration.php)
Zu deinem Fehler... die search-Klasse ist eigentlich leer und deprecated.
https://git.contenido.org/projects/CON/ ... DO%2B4.9.6 Vielleicht checkst du mal ob ggf. ein Modul, das vor dem Search-Modul geladen wird schon irgend was an den Browser sendet. Dazu einfach alle Module in deinem Template deacktivieren und nach und nach zuschalten.
Ich meine ich hatte auch schon mal so einen verlagerten Fehler, bei dem die search-Klasse angemeckert wurde, der Fehler aber in einem Vorgeschalteten Modul lag.
Re: TinyMCE schließt sich nicht nach Klick auf grünem Haken
Verfasst: Mo 30. Mär 2015, 11:14
von Faar
Stimmt, obligatorisch ist es nicht, es ist eher nur üblich so.
Ich würde es trotzdem immer schließen, auch wenn es ohne geht.
Bei der Methode habe ich mir angewöhnt, immer vor dem Abspeichern nach dem schließenden Tag noch mögliche Leerzeichen zu entfernen.
Damit gab es dann nie Probleme und man gewöhnt sich hier keine schlampige Programmierung an, weil es wichtig ist, das zu tun.
Re: TinyMCE schließt sich nicht nach Klick auf grünem Haken
Verfasst: Mo 30. Mär 2015, 13:39
von rethus
Faar hat geschrieben:...und man gewöhnt sich hier keine schlampige Programmierung an, weil es wichtig ist, das zu tun.
Wenn es nicht erforderlich ist, ist es folglich auch nicht schlampig, die Tags wegzulassen. Das entspricht dann höchstens deinem persönlichem Empfinden.
Ich schließe die den PHP-Tag auch aus Gewohnheit, aber man sollte nicht aus der eigenen Ansicht ein Dogma machen, daher ist es jedem selbst überlassen.
Und wie du auf php.net lesen kannst, kann es strategisch gesehen durchaus Vorteile haben und sich als 'clever' herausstellen, wenn man seine php-Dateien in Fremden Systemen einfügt.

Re: TinyMCE schließt sich nicht nach Klick auf grünem Haken
Verfasst: Di 31. Mär 2015, 09:36
von McHubi
Hallo Leute,
ich bin blöderweise bisher nicht dazu gekommen, der Sache näher auf den Grund zu gehen wg. "Prio <1".
Ich werde aber mal den Weg "Module nach und nach aktivieren" gehen - sobald ich dazu komme - und dann hier das Ergebnis posten.
Danke euch nochmal für eure Antworten!