Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 01. November 2017 23:29
- Janl
- Server-Pate
- Ort: Freistadt, Österreich
- Registriert: 13. Dezember 2010
- Beiträge: 1.231
- Webseite
[GELÖST] PHP / MySQL Problem
Nach eine Übersiedlung einer Webseite zeigt CGCalendar keine Termine im Frontend, im Backend ist alles da.
PHP Error ist:
[fcgid:warn] [pid 2824:tid 140091255142144] [client xxx.xxx.xxx.xxx:xxxxx] mod_fcgid: stderr: PHP Warning: json_encode(): Invalid UTF-8 sequence in argument in /var/www/vhosts/abcde.xyz/domainname.de/modules/CGCalendar/function.admindisplaymanageevents.php on line 47, referer: http://my.subdomain.xyz/admin/systemmai … ac657b12f7
Angeblich soll es ein Problem mit dem Characterset der DB geben, jedoch ist alles auf UTF8 eingestellt.
MySQL hat sogar UTF8MB4 (voll Unicode Kompatibel) als Characterset zu Verfügung.
Beim Import ist auf UTF8 geachtet.
CMSMS 1.12.2 - CGCalendar 1.14.3 - CGSimpleSmarty 1.10 - CGExtensions 1.53.19
bei eine andere Seite, wo nur CGExtensions 1.53.17 genutzt wird, funktioniert es, ist aber ein anderer Server.
Was ratet ihr mir, CGExtensions downgraden?
Oder soll ich noch etwas kontrollieren in MySQL?
MfG
Jan
Kubuntu 22.04 - Win 11 pro / Kubuntu 20.04 - win10 pro
Offline
#2 01. November 2017 14:04
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [GELÖST] PHP / MySQL Problem
Wieso downgrade?
Du benutzt eine Version von 2014.
Und du glaubst, den Fehler umgehen zu können, indem Du auf eine noch ältere Version umsteigst?
Ich bin mir nämlich nicht sicher, ob der Fehler in MySQL zu finden ist. Scheint mir eher ein Fehler in PHP zu sein. Könnte am CMS liegen. Oder an der CGCalendar Version. Oder an der Datenbankverbindung. Mag ja sein, dass die Datenbank komplett UTF-8 ist, aber welche Kodierung erwartet das PHP-Script? Evtl. werden die Daten ja irgendwo nochmal konvertiert. Lass Dir doch mal die Daten ausgeben, die da mit json_encode kodiert werden sollen.
Also in der Datei "modules/CGCalendar/function.admindisplaymanageevents.php" nach Zeile 45:
$locale_info = cgcalendar_utils::get_locale_dates();
einfach mal ein
print_r($locale_info);
exit;
einfügen.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#3 01. November 2017 15:25
- Janl
- Server-Pate
- Ort: Freistadt, Österreich
- Registriert: 13. Dezember 2010
- Beiträge: 1.231
- Webseite
Re: [GELÖST] PHP / MySQL Problem
Hallo NaN,
ich habe die1.12.2 mit verschiedene Module getestet, die angegebene Kombination funktioniert bei Anderen.
wenn ich in dem Script print_r($locale_info); und exit: gebe dann bekomme ich noch immer eine leere Kalender, der Template ohne jegliche Daten.
Mit Debug finde ich
(mysqli): SELECT DISTINCT E.event_id FROM cms_module_cgcalendar_events E
WHERE ( (E.event_date_start BETWEEN '2017-11-01 00:00:00' AND '2017-11-30 23:59:59') OR (E.event_date_end BETWEEN '2017-11-01 00:00:00' AND '2017-11-30 23:59:59') OR (E.event_date_start <= '2017-11-01 00:00:00' AND E.event_date_end > '2017-11-30 23:59:59') )
ORDER BY E.event_date_start ASC
Error (3065): Expression #1 of ORDER BY clause is not in SELECT list, references column 'admin_fswein.E.event_date_start' which is not in SELECT list; this is incompatible with DISTINCT
So zu sehen selektiert er wegen dieses Fehlers keine Events.
Unterschiedlich ist, dass der Server und OS (Ubuntu 16.04) /Mysql (5.7.20) neuere Versionen sind.
Im Allgemeinen soll ich doch nach 2.3 updaten? Meine erste Test mit 2.3.1 ist gut verlaufen.
EDIT
sieht so aus, als kann MySQL 5.7 diesen Kode nicht verarbeiten
https://stackoverflow.com/questions/414 … -in-select
Es wäre möglich mit "adding sql_mode='' to your my.cnf file" - wie das auf andere Webapps wirkt, muss ich versuchen.
https://stackoverflow.com/questions/368 … 7-with-sel
MfG
Jan
Beitrag geändert von Janl (01. November 2017 15:50)
Kubuntu 22.04 - Win 11 pro / Kubuntu 20.04 - win10 pro
Offline
#4 01. November 2017 15:51
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [GELÖST] PHP / MySQL Problem
Das Problem scheint die MySQL Version bzw. die Abfrage zu sein. Bei MySQL 5.7 hat sich wohl etwas geändert, wodurch mehr Restriktionen entstehen. Man kann wohl nicht mehr nach etwas sortieren, was nicht im SELECT statement steht. Es wird ja nur die event_id gesucht. Ergo kann man nicht nach event_date_start sortieren, weil es nicht im Ergebnis vorhanden ist. So oder so ähnlich. Man kann das Verhalten ändern, in dem man MySQL entsprechend konfiguriert, sofern man Zugriff auf die Konfiguration hat.
Entweder den query ohne DISTINCT aufbauen bzw. event_date_start mit ins SELECT Statement nehmen, oder in der Konfiguration den Wert
[mysqld]
sql-mode=""
oder
[mysqld]
sql-mode=TRADITIONAL
setzen.
EDIT: da hatten wir wohl beide dieselbe Quelle gefunden
Beitrag geändert von NaN (01. November 2017 15:53)
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#5 01. November 2017 20:44
- Janl
- Server-Pate
- Ort: Freistadt, Österreich
- Registriert: 13. Dezember 2010
- Beiträge: 1.231
- Webseite
Re: [GELÖST] PHP / MySQL Problem
Danke NaN für Deine Unterstützung.
Hat funktioniert, alle Einträge werden gezeigt.
Jetzt kann alles zur Ende gemacht werden, Umzug von 8 Webseiten auf neue VServer.
MfG
Jan
Kubuntu 22.04 - Win 11 pro / Kubuntu 20.04 - win10 pro
Offline
Seiten: 1