ConPresso Community

Fragen, Antworten, Diskussionen rund um das Content Management System ConPresso

 
Testversion für PHP 5.4
Gehe zu Seite 1, 2, 3  Weiter
 
Neue Antwort erstellen    ConPresso Community Foren-Übersicht -> Implementierung/Anpassung ConPresso 4
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 6979

BeitragVerfasst am: 11.11.2012 21:32    Titel: Testversion für PHP 5.4 Antworten mit Zitat

Ich habe mal versucht das htmlspecialchars-Problem von PHP 5.4 anzugehen.

Dafür habe ich folgende Funktion erstellt
Code:
function _htmlspecialchars($text, $ent=ENT_COMPAT, $encoding="ISO-8859-15")
{
    return (htmlspecialchars($text, $ent, $encoding ));
}

und dann alle Vorkommen von htmlspecialchars() durch _htmlspecialchars() ersetzen lassen. Mit EditPlus kann man das für alle CPO-Dateien auf einmal machen lassen. Theoretisch müsste man sowas auch für htmlentities() machen, aber die Funktion wird wohl in CPO nicht benutzt.

Wer will kann das mal testen, um zu sehen, ob es noch weitere Probleme durch PHP 5.4 gibt. Aber bitte nicht in produktiven Systemen testen!!!

Getestet habe ich es mit XAMPP 1.8.1 mit PHP 5.4.7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 6979

BeitragVerfasst am: 12.11.2012 09:12    Titel: Antworten mit Zitat

Ich habe es jetzt auch mal mit einem laufenden Auftritt einer älteren PHP-Version probiert, der schon mit Modulen wie Warenkorb, Formular und mod_templates ausgestattet ist.

1.) alles runtergeladen
2.) alle Dateien mit htmlspecialchars im Dateiinhalt gesucht (in meinem Fall 83 Stück)
3.) Alle gleichzeitig mit EditPlus geöffnet
4.) Mittels Suchen und Ersetzen alle Vorkommen von htmlspecialchars durch _htmlspecialchars ersetzt (870 Ersetzungen)
5.) Die obenstehende Funktion in _include/function.php eingesetzt
6.) alles wieder hochgeladen

Das alles auf PHP 5.2.6... läuft. Es scheint damit also sowohl in PHP <5.4 als auch in PHP 5.4 zu laufen.
Für PHP 5.4 muss natürlich noch die Anpassung für die Navigation
http://community.conpresso.de/viewtopic.php?p=27286#27286
sowie für import_request_variables()
http://community.conpresso.de/viewtopic.php?p=27164#27164
vorgenommen werden.
Auch diese Änderungen scheinen mit PHP <5.4 kompatibel zu sein.

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 6979

BeitragVerfasst am: 14.11.2012 13:50    Titel: Antworten mit Zitat

Ich habe oben eine neue Datei eingestellt, bei der ich noch ein paar Korrekturen vorgenommen habe und die beseitigten Bugs dokumentiert habe.

Modifikationen in dieser Version (4.1.5+a):

- Kompatibilität mit PHP 5.4 hergestellt
http://community.conpresso.de/viewtopic.php?p=27287#27287
http://community.conpresso.de/viewtopic.php?p=27286#27286
http://community.conpresso.de/viewtopic.php?p=27164#27164
- Installationssprache ist deutsch per default
- fehlende Übersetzung von "choose" ergänzt
- Platzhalter mit Apostroph (')
http://community.conpresso.de/viewtopic.php?t=4528
- Fix für Template-Editor (bei fehlender Body-ID)
http://community.conpresso.de/viewtopic.php?p=27094#27094
- Suche nach @ möglich (mod_serach)
http://community.conpresso.de/viewtopic.php?t=4519
- Breadcrumb-Navigation in Seitentemplates
http://community.conpresso.de/viewtopic.php?t=4518
- CSRF-Check in Userverwaltung korrigiert
http://community.conpresso.de/viewtopic.php?p=27138#27138

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
balu
ConPresso-Entwickler


Anmeldungsdatum: 01.01.1970
Beiträge: 1745

BeitragVerfasst am: 15.11.2012 21:48    Titel: Antworten mit Zitat

Hi Markus,

MarkusR hat Folgendes geschrieben:
4.) Mittels Suchen und Ersetzen alle Vorkommen von htmlspecialchars durch _htmlspecialchars ersetzt (870 Ersetzungen)


damit erwischst Du aber auch die Platzhalter-Einstellung "htmlspecialchars" in den parser_r* Dateien, die natürlich nicht geändert werden sollten.

Balu

_________________
Bartels.Schöne
ConPresso Support & Development
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 6979

BeitragVerfasst am: 16.11.2012 00:34    Titel: Antworten mit Zitat

Du siehst doch an der Reaktion, daß es eh keiner testet.

Anyway, solange es keine offizielle Version gibt, nutzt man eben auch in den Platzhaltern _htmlspecialchars

Ich werde die Funktion eh nochmal umbenennen, damit man auch später den Durchlauf erneut machen kann, wenn man z.B. unmodifizierte Module installiert.
Könnte z.B. html_spechialchars() heißen, dann wird sie bei ein erneuten Durchlauf nicht erwischt.

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
balu
ConPresso-Entwickler


Anmeldungsdatum: 01.01.1970
Beiträge: 1745

BeitragVerfasst am: 16.11.2012 11:48    Titel: Antworten mit Zitat

MarkusR hat Folgendes geschrieben:
Ich werde die Funktion eh nochmal umbenennen, damit man auch später den Durchlauf erneut machen kann, wenn man z.B. unmodifizierte Module installiert.
Könnte z.B. html_spechialchars() heißen, dann wird sie bei ein erneuten Durchlauf nicht erwischt.


Du könntest vermutlich nach "htmlspecialchars(" suchen, dann würdest Du die Platzhalter nicht mit treffen.

Und bei Modulen reicht es doch, nur das Modulverzeichnis zu durchsuchen?

Wir testen gerade eine neue offizielle Version für den 4.1er Zweig. Ich werde diese vermutlich am Wochenende veröffentlichen, allerdings weiss ich noch nicht, ob als Vorab- oder "vollwertige" Version, weil die ganzen Änderungen in den htmlspecialchars() doch ziemlich viel waren und ich bis dahin nicht alles im Detail testen kann.

Balu

_________________
Bartels.Schöne
ConPresso Support & Development
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 6979

BeitragVerfasst am: 16.11.2012 13:25    Titel: Antworten mit Zitat

balu hat Folgendes geschrieben:
Und bei Modulen reicht es doch, nur das Modulverzeichnis zu durchsuchen?

Es gibt Module, die Originaldateien ersetzen oder verändern.
Aber ich warte mal ab, was jetzt von ConPresso-Seite aus kommt.
Zitat:
die ganzen Änderungen in den htmlspecialchars() doch ziemlich viel waren

Hast Du jetzt statt einer Ersatzfunktion alle htmlspecialchars() mit voller Syntax erstellt?

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 6979

BeitragVerfasst am: 16.11.2012 16:15    Titel: Antworten mit Zitat

Mal zurück zur eigentlichen Problematik:

echte Probleme sind in PHP 5.4.7 die Macken in der Navigation bei externen URLS sowie die extract-Befehle in common.inc.php

Ansonsten habe ich mal die Sprachdateien geöffnet und einfach nur beim Abspeichern UTF8+ statt ANSI gewählt... schwupp, die Umlaute sind da, weil htmlspecialchars() das bekommt, was es will, nämlich UTF-8

Und da die Datenbankverbindung sowie meist schon als UTF8 läuft, ist das auch kein Problem.

Nur bei Webauftritten, die ohne UTF8 erstellt wurden und nun zwangsweise umgestellt wurden, ist der Klimmzug mit der umgeschriebenen Funktion notwendig!

Es ist also ein gravierender Unterschied, ob man eine neue Installation macht (die sollte nach den zwei Änderungen oben problemlos laufen) oder Opfer eines PHP-Updates geworden ist!

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 6979

BeitragVerfasst am: 16.11.2012 16:30    Titel: Antworten mit Zitat

Nun dachte ich, einfach mal alle Dateien von ANSI mittels UTFCast umwandeln. Ratz, fatz, passiert.
Aber leider funktionieren dann die Framesets nicht, also auch keine wirkliche Lösung... Crying or Very sad

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
balu
ConPresso-Entwickler


Anmeldungsdatum: 01.01.1970
Beiträge: 1745

BeitragVerfasst am: 18.11.2012 22:45    Titel: Antworten mit Zitat

Hi Markus,

MarkusR hat Folgendes geschrieben:
Hast Du jetzt statt einer Ersatzfunktion alle htmlspecialchars() mit voller Syntax erstellt?


ja, das habe ich. Ich hatte damit schon angefangen, bevor Du Deinen Vorschlag gemacht hast. Dein Vorschlag hat Vorteile, aber ich überschreibe ungerne vorhandene PHP-Funktionen, auch wenn sie bei einem Upgrade "vermurkst" wurden. Und weil ich sichergehen musste, dass jedes geänderte htmlspecialchars() sich nicht irgendwie anders auswirkt, bin ich durch alle von Hand gegangen...

Ein Update auf UTF-8 ist, wie Du gemerkt hast, leider nicht so einfach, weil wir auch auf die vielen alten Installationen Rücksicht nehmen müssen. Und der default Character Set in MySQL ist auch in neueren Versionen noch latin1.

Ausserdem gibt es in PHP immer noch viele Stringfunktionen, die Multibyte-Zeichensätze nicht richtig unterstützen. Natürlich gibt es für alles dementsprechende Workarounds, aber mit einer alten Software ist das nicht so einfach.

Balu

_________________
Bartels.Schöne
ConPresso Support & Development
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 6979

BeitragVerfasst am: 16.01.2013 14:33    Titel: Antworten mit Zitat

Ich habe die 4.1.5+a jetzt gelöscht, weil leider keiner mal eben nur testet sondern einige versuchen damit live zu gehen!
Hierfür solltet ihr auf die 4.1.6 von Bartels.Schöne warten!
http://community.conpresso.de/viewtopic.php?t=4539

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dutch
ConPresso-Experte


Anmeldungsdatum: 04.07.2007
Beiträge: 504

BeitragVerfasst am: 04.03.2013 21:04    Titel: 4.0.12 Antworten mit Zitat

Hallo zusammen,

der Provider eines meiner Kunden hat gerade seinen Server auf PHP 5.4.11 umgestellt...

Von der cpo 4.0.12 Installation meines Kunden ist jetzt leider nichts mehr zu sehen (weißer Schirm).
Kann ich versuchen, das Problem mit den oben genannten Schritten zu lösen oder funktioniert das nur bei einer 4.1.x Version?

Danke,
dutch
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 6979

BeitragVerfasst am: 04.03.2013 21:12    Titel: Antworten mit Zitat

Sollte funktionieren.
Ich habe damit eine 4.0.7 am Leben erhalten.

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dutch
ConPresso-Experte


Anmeldungsdatum: 04.07.2007
Beiträge: 504

BeitragVerfasst am: 04.03.2013 21:21    Titel: Antworten mit Zitat

Hi Markus,

danke, werde es probieren.

Gruß,
dutch
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dutch
ConPresso-Experte


Anmeldungsdatum: 04.07.2007
Beiträge: 504

BeitragVerfasst am: 04.03.2013 21:51    Titel: Antworten mit Zitat

Habe gerade wie oben beschrieben die Schritte durchgeführt.
(Bei mir wurden in 463 Dateien 728 htmlspecialchars ausgetauscht)

Leider bleibt es wirkungslos. Die site funktioniert zwar auch mit diesen Änderunge auf einer niedrigeren PHP Version aber nicht auf 5.4.11, der Schirm bleibt weiß...

Hmmm.... und jetzt?

Gruß,
dutch
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neue Antwort erstellen    ConPresso Community Foren-Übersicht -> Implementierung/Anpassung ConPresso 4 Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2, 3  Weiter
Seite 1 von 3

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen