Hallo, bin neu hier - hoffe ich bin hier richtig.
ich habe ein paar Websites mit Redaxo 4.6.X gebaut und update diese jetzt auf 4.7.2 unter PHP 7 (Neuinstallation mit Import der "alten" Daten).
Folgendes Problem:
REX_VALUE[1] bis REX_VALUE[9] werden in meinen Modulen korrekt ausgegeben
REX_VALUE[10] bis REX_VALUE[20] nicht.
REX_VALUE[10] bis REX_VALUE[19] geben alle den Wert von REX_VALUE[1] aus,
REX_VALUE[20] den Wert von REX_VALUE[2]...
Hat jemand irgendeine Idee woran das liegen kann? Vielen Dank schon mal
Hallo,
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Re: Redaxo 4.7 / PHP 7 - Ausgabe "REX_VALUE[10]" und höher falsch
Ich habe dasselbe Fehlverhalten auf einer R4.6.2 mit PHP 7.1. Die Seite läuft überhaupt nur noch, weil Strato zusätzlich das mysql-Modul in PHP7 lädt.
Kann jemand dazu eine Meinung abgeben? Die Speicherung in rex_article_slice funktioniert, jedoch bei der Blockausgabe werden die Wert-Variablen nicht korrekt ersetzt..
Es grüßt
Alex
Kann jemand dazu eine Meinung abgeben? Die Speicherung in rex_article_slice funktioniert, jedoch bei der Blockausgabe werden die Wert-Variablen nicht korrekt ersetzt..
Es grüßt
Alex
- Gregor.Harlan
- Entwickler
- Beiträge: 1130
- Registriert: 4. Jun 2007, 10:35
- Wohnort: Frankfurt am Main
Re: Redaxo 4.7 / PHP 7 - Ausgabe "REX_VALUE[10]" und höher falsch
Ich kann das Problem hier mit PHP 7.1 und Rex 4.7.2 nicht nachvollziehen.
Ich kann anbieten, mir das auf einer eurer Seiten mal anzuschauen und das Problem zu suchen. Dafür bräuchte ich aber Redaxo- und FTP-Zugang (per PN oder über Slack).
@Alex: Redaxo 4.7 benötigt das mysql-Modul nicht mehr. Redaxo 4.6 hatte, soweit ich weiß, auch noch andere Probleme mit PHP 7, daher würde ich dir empfehlen, auf 4.7 zu aktualisieren, auch wenn bei strato das mysql-Modul mit in php 7 drin ist und somit die 4.6 scheinbar soweit läuft.
Ich kann anbieten, mir das auf einer eurer Seiten mal anzuschauen und das Problem zu suchen. Dafür bräuchte ich aber Redaxo- und FTP-Zugang (per PN oder über Slack).
@Alex: Redaxo 4.7 benötigt das mysql-Modul nicht mehr. Redaxo 4.6 hatte, soweit ich weiß, auch noch andere Probleme mit PHP 7, daher würde ich dir empfehlen, auf 4.7 zu aktualisieren, auch wenn bei strato das mysql-Modul mit in php 7 drin ist und somit die 4.6 scheinbar soweit läuft.
Friends Of REDAXO: Gemeinsame REDAXO-Entwicklung!
Re: Redaxo 4.7 / PHP 7 - Ausgabe "REX_VALUE[10]" und höher falsch
Danke für das Angebot, ich habe Dir die entsprechenden Daten per Slack geschickt.Gregor.Harlan hat geschrieben: ↑21. Sep 2017, 13:34Ich kann anbieten, mir das auf einer eurer Seiten mal anzuschauen und das Problem zu suchen. Dafür bräuchte ich aber Redaxo- und FTP-Zugang (per PN oder über Slack).
- Gregor.Harlan
- Entwickler
- Beiträge: 1130
- Registriert: 4. Jun 2007, 10:35
- Wohnort: Frankfurt am Main
Re: Redaxo 4.7 / PHP 7 - Ausgabe "REX_VALUE[10]" und höher falsch
Nachdem ich mir das nun angeschaut habe, behaupte ich, dass es ein Bug in der für PHP 7 portierten mysql-Extension ist.
Die Funktion mysql_result() liefert das falsche Ergebnis.
Dies war mein Testcode im Modul:
Da kommt bereit der Wert von value1 raus. Wenn man aus der Query aber value1 ganz rausnimmt, dann erhält man korrekt den Wert von value10.
Kann man diese portierte mysql-Extension irgendwo ausschalten bei strato? Falls ja, würde ich das mal ausprobieren, geht dann aber natürlich nur mit Rex 4.7, weil nur dort eine Shim-Klasse drin ist, die die mysql-Funktionen anbieten (wenn nicht vorhanden) und intern dann mysqli verwendet.
Wenn aber die mysql-Funktionen doch schon vorhanden sind, so wie hier bei strato, dann werden auch die vorhandenen genutzt.
Die Funktion mysql_result() liefert das falsche Ergebnis.
Dies war mein Testcode im Modul:
Code: Alles auswählen
$sql = rex_sql::factory();
$sql->setQuery('SELECT value1, value10 FROM rex_article_slice WHERE id = REX_SLICE_ID');
var_dump(mysql_result($sql->result, 0, 'value10'));
Kann man diese portierte mysql-Extension irgendwo ausschalten bei strato? Falls ja, würde ich das mal ausprobieren, geht dann aber natürlich nur mit Rex 4.7, weil nur dort eine Shim-Klasse drin ist, die die mysql-Funktionen anbieten (wenn nicht vorhanden) und intern dann mysqli verwendet.
Wenn aber die mysql-Funktionen doch schon vorhanden sind, so wie hier bei strato, dann werden auch die vorhandenen genutzt.
Friends Of REDAXO: Gemeinsame REDAXO-Entwicklung!
Re: Redaxo 4.7 / PHP 7 - Ausgabe "REX_VALUE[10]" und höher falsch
Hallo Gregor,
danke für die Infos. Zunächst habe ich auf 4.7 geupdatet, der Fehler ist weiterhin aktiv.
Nach Aussage des Strato-Supports läßt sich diese spezielle PHP-Konfiguration nicht ändern, siehst Du eine Möglichkeit, die interne Nutzung von mysqli in R4.7 zu forcieren, auch wenn die alten Funktionen zur Verfügung stehen?
Welche Klasse ist dafür verantwortlich?
Es grüßt
Alex
danke für die Infos. Zunächst habe ich auf 4.7 geupdatet, der Fehler ist weiterhin aktiv.
Nach Aussage des Strato-Supports läßt sich diese spezielle PHP-Konfiguration nicht ändern, siehst Du eine Möglichkeit, die interne Nutzung von mysqli in R4.7 zu forcieren, auch wenn die alten Funktionen zur Verfügung stehen?
Welche Klasse ist dafür verantwortlich?
Es grüßt
Alex
- Gregor.Harlan
- Entwickler
- Beiträge: 1130
- Registriert: 4. Jun 2007, 10:35
- Wohnort: Frankfurt am Main
Re: Redaxo 4.7 / PHP 7 - Ausgabe "REX_VALUE[10]" und höher falsch
Nein sehe da nicht wirklich eine Möglichkeit.
Dies ist die Klasse: https://github.com/redaxo/redaxo4/blob/ ... /mysql.php
Bzw. hier liegt das Paket: https://github.com/dshafik/php7-mysql-shim
Hast du den Support auch gefragt, ob denen da ein Bug bekannt ist?
Dass wenn in der Query "value1" und "value10" abgefragt wird, mysql_result($result, 0, 'value10') den Wert von value1 liefert.
Dies ist die Klasse: https://github.com/redaxo/redaxo4/blob/ ... /mysql.php
Bzw. hier liegt das Paket: https://github.com/dshafik/php7-mysql-shim
Hast du den Support auch gefragt, ob denen da ein Bug bekannt ist?
Dass wenn in der Query "value1" und "value10" abgefragt wird, mysql_result($result, 0, 'value10') den Wert von value1 liefert.
Friends Of REDAXO: Gemeinsame REDAXO-Entwicklung!
Re: Redaxo 4.7 / PHP 7 - Ausgabe "REX_VALUE[10]" und höher falsch
Hallo und schon mal vielen Dank für die Rückmeldungen.
Ich habe eben eine entsprechende Anfrage an den Strato-Support verschickt - sobald ich eine Rückmeldung habe, werde ich diese hier posten.
Ich habe eben eine entsprechende Anfrage an den Strato-Support verschickt - sobald ich eine Rückmeldung habe, werde ich diese hier posten.
Re: Redaxo 4.7 / PHP 7 - Ausgabe "REX_VALUE[10]" und höher falsch
Hallo, wie angekündigt, hier die wenig hilfreiche Antwort vom Strato-Kundenservice:
"Ich rate Ihnen die Rückstellung auf PHP 5.6 und auch nicht den PHP Boost im Kundenbereich auf strato.de zu aktivieren. PHP 7.0 und der PHP Boost komprimieren die Dateien. Das kann die Ursache sein für Ihre Herausforderungen."
Hmm, hat noch jemand eine Idee, wie man das Problem lösen kann? Vielen Dank
"Ich rate Ihnen die Rückstellung auf PHP 5.6 und auch nicht den PHP Boost im Kundenbereich auf strato.de zu aktivieren. PHP 7.0 und der PHP Boost komprimieren die Dateien. Das kann die Ursache sein für Ihre Herausforderungen."
Hmm, hat noch jemand eine Idee, wie man das Problem lösen kann? Vielen Dank
-
- Beiträge: 1371
- Registriert: 4. Aug 2006, 14:06
- Wohnort: Rheinberg
- Kontaktdaten: Website Twitter
Re: Redaxo 4.7 / PHP 7 - Ausgabe "REX_VALUE[10]" und höher falsch
Ja, wenn du auf PHP7 bestehst, wechsle den Hoster oder bestehe auf eine saubere PHP 7.x Installation.