WBCE CMS – Way Better Content Editing.
Du bist nicht angemeldet.
Wie es scheint, funktioniert der Colorpicker, der bei Vertal, Hortal und noch einigen anderen Templates dabei ist, mit WBCE 1.3.3 nicht mehr richtig. Man kann zwar lokal die Farben ändern, beim Versuch, die geänderten Farben dann zu veröffentlichen bzw. auf den Server zu schreiben, tut sich jedoch nichts.
Es tritt kein JavaScript-Fehler auf, deshalb weiß ich so auf Anhieb nicht, woran das scheitert.
Beitrag geändert von florian (23.02.2019 07:23:36)
Code allein macht nicht glücklich. Jetzt spenden!
Offline
Keine Schreibrechte im Template-Verzeichnis?
Nein, hat damit nichts zu tun, klappt auch mit 0777 nicht.
Code allein macht nicht glücklich. Jetzt spenden!
Offline
Der Colorpicker hat mit WBCE nur wenig zu tun. Ich hab gerade gestern eine neue Site mit WBCE 1.3.3 angelegt und derColorChoser funktioniert problemlos. Template Verklap
Einzig der Bereich, in dem die Werte auf den Server gespeichert werden, braucht Admin-Berechtigungen:
[== PHP ==]
if (is_numeric($wb->get_session('USER_ID'))) {
if ($wb->ami_group_member('1')) {
$p = __DIR__.'/param.txt';
file_put_contents ($p, $css_param);
}
}
Wird die Datei [TEMPLATE]/colorset/param.txt gespeichert?
Kann in das Verzeichnis gespeichert werden?
Eine param.txt gab es nicht, aber auch wenn ich die anlege, werden Änderungen nicht gespeichert.
Das Problem tritt nicht nur bei mir auf, siehe Kommentar von "Marco" auf wbce.at/tpls, und ich hatte auch von einem anderen Benutzer eine Anfrage per Mail dazu erhalten.
Code allein macht nicht glücklich. Jetzt spenden!
Offline
Naja: du kannst mich reinschauen lassen. Admin und FTP, dann gehe ich der Sache nach.
Jepp, da gibt es einen Haufen Notices, mit denen ich aber nichts anfangen kann:
<b>Warning</b>: session_set_save_handler() [<a href='http://de.php.net/function.session-set-save-handler'>function.session-set-save-handler</a>]: Cannot change save handler when headers already sent in <b>../framework/dbsession.php</b> on line <b>70</b><br />
<br />
<b>Warning</b>: ini_set() [<a href='http://de.php.net/function.ini-set'>function.ini-set</a>]: Headers already sent. You cannot change the session module's ini settings at this time in <b>.../framework/wsession.php</b> on line <b>42</b><br />
<br />
<b>Warning</b>: ini_set() [<a href='http://de.php.net/function.ini-set'>function.ini-set</a>]: Headers already sent. You cannot change the session module's ini settings at this time in <b>.../framework/wsession.php</b> on line <b>47</b><br />
<br />
<b>Warning</b>: ini_set() [<a href='http://de.php.net/function.ini-set'>function.ini-set</a>]: Headers already sent. You cannot change the session module's ini settings at this time in <b>.../framework/wsession.php</b> on line <b>56</b><br />
<br />
<b>Warning</b>: session_name() [<a href='http://de.php.net/function.session-name'>function.session-name</a>]: Cannot change session name when headers already sent in <b>.../framework/wsession.php</b> on line <b>66</b><br />
<br />
<b>Warning</b>: session_set_cookie_params() [<a href='http://de.php.net/function.session-set-cookie-params'>function.session-set-cookie-params</a>]: Cannot change session cookie parameters when headers already sent in <b>.../framework/wsession.php</b> on line <b>67</b><br />
<br />
<b>Warning</b>: session_start() [<a href='http://de.php.net/function.session-start'>function.session-start</a>]: Cannot start session when headers already sent in <b>.../framework/wsession.php</b> on line <b>69</b><br />
Die betroffene Stelle im Script (templates/wbce_hortal/colorset/colorset.php sieh so aus:
[== PHP ==]
if (isset($_GET['do']) AND $_GET['do'] == "save" ) {
require('../../../config.php');
if (defined('WB_PATH') == false) { exit("Cannot access this file directly"); }
require_once WB_PATH . '/framework/class.frontend.php';
$wb = new frontend(); //hier kracht es
if (is_numeric($wb->get_session('USER_ID'))) {
if ($wb->ami_group_member('1')) {
$p = __DIR__.'/param.txt';
file_put_contents ($p, $css_param);
}
}
}
also: $wb = new frontend(); spuckt die Fehler aus,
$wb->get_session('USER_ID') liefert nix mehr.
Die Fehler sind hier zu sehen:
/templates/wbce_hortal/colorset/colorset.php?f=444444,1b868b,24b1b9,a80004,ff171d,5eb51e,006871,b81418,eff6f6&do=save
Beitrag geändert von grindbatzn (22.02.2019 11:24:15)
So, duschen hats gebracht:
Es geht darum, dass colorset.php bereits einen Header ( header("Content-type: text/css", true); ) gesendet hat, $wb aber nochmal einen senden will - was scheitert.
Ich habe jetzt die Reihenfolge im Script geändert, dann funktioniert es.
Ich muss aber sagen:
Da sind viele Module davon betroffen, die irgendwas mit AJAX machen.
Beitrag geändert von grindbatzn (22.02.2019 18:27:01)
florian
Ich hab da die letzten Tage versucht den Fehler zu reproduzieren und es um's verrecken nicht geschafft.
Auch scheint der Fehler ja nicht immer und überall aufzutreten ?!?
Wo "zu Hölle" ist da der Unterschied zwichen z.B. meiner lokalen Test-Installation (PHP7.2) und der Installation vom Florian?
... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...
Offline
Vielleicht die Art, wie PHP im Server angebunden ist?
Immerhin: bei Florian ist das Problem 100% reproduzierbar und die notices zeigen den Weg.
Nachtrag:
Wie viele Module betroffen wären, ist schwer zu sagen. Die meisten überprüfen Berechtigungen gleich zu Beginn und nicht - wie hier - erst am Ende.
Trotzdem: wbce sollte da unempfindlicher werden. Ein nicht gesendeter Header sollte nicht gleich alles abwürgen.
Ich weiß nicht richtig, worum es geht, bzw. woraus der Fehler besteht, aber wenn Header mehrmals gesendet werden und es dazu zum headers already sent Problem kommt, kann vielleicht die $wb Property $DirectOutput helfen, die NorHei damals grade für solche Sachen mit Ajax und Co. reingebracht hat.
Ich weiß nicht genau, ob das weiter hilft oder nicht, aber vielleicht ja doch.
Gruß,
Christian
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
kann das evtl. mit den WBCE-Einstellungen bzw. der serverseitigen Vorgabe für die Anzeige von PHP-Fehlern zusammen hängen? Sprich dass das Problem nur auftritt, wenn Notices und Warnings ausgegeben werden?
Code allein macht nicht glücklich. Jetzt spenden!
Offline
Nein, wie es aussieht, spielt das keine Rolle.
In hortal hab ich das Problem (auf deiner Seite) gefixt, aber in vertal sollte es weiterhin auftreten.
Danke dafür. Ich schaue es mir gleich morgen an.
Code allein macht nicht glücklich. Jetzt spenden!
Offline
Die gefundene Lösung (nochmals Danke dafür):
In der templates/[templatename]/colorset/colorset.php
Zeile 2
header("Content-type: text/css", true);
löschen
Zeile 39
echo $css;
löschen
und beide Zeilen am Ende vor ?> einfügen, also so:
header("Content-type: text/css", true);
echo $css;
?>
Code allein macht nicht glücklich. Jetzt spenden!
Offline
stefanek, thanks, rudi222