Newsletteranmeldung- Problem nach Umstellung auf PHP 5.4.11

Gesperrt
Freddy
Beiträge: 252
Registriert: Fr 6. Mai 2005, 21:01
Wohnort: Gummersbach
Kontaktdaten:

Newsletteranmeldung- Problem nach Umstellung auf PHP 5.4.11

Beitrag von Freddy » Di 15. Okt 2013, 16:20

Hallo Zusammen,
nachdem mein Server auf PHP 5.4.11 umgestellt wurde kommt bei mir bei der Anmeldung zum Newsletter folgende Fehlermeldung. Diese kommt auch nur bei der Anmeldung. Beim Bestätigen der Email nicht mehr. Kann jemand den Fehler zuordnen?
Benutze Contenido 4.8.18 und das Newsletter Form Module V4.0.1 (den Pfad habe ich durch ... ersetzt.)
Deprecated: Function ereg_replace() is deprecated in /.../cms/front_content.php(931) : eval()'d code on line 251 Deprecated: Function ereg_replace() is deprecated in /.../cms/front_content.php(931) : eval()'d code on line 252 Sehr geehrter Abonnent,
Ihre E-Mail-Adresse wurde eingetragen. Sie erhalten nun eine E-Mail, in der Sie zur Bestätigung Ihrer E-Mail-Adresse aufgefordert werden.

xmurrix
Beiträge: 3147
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Newsletteranmeldung- Problem nach Umstellung auf PHP 5.4

Beitrag von xmurrix » Di 15. Okt 2013, 21:14

Hallo Freddy,

schau mal in der Modulausgabe von "Newsletter Form Module V4.0.1" nach, wo genau die Funktion ereg_replace() verwendet wird und ersetze diese gegen preg_replace().

In beiden Fällen sind die Parameter gleich. ereg_replace() erwartet das Muster ohne Begrenzer, preg_replace() aber schon.

Beispiel:

Code: Alles auswählen

ereg_replace('das_muster', $a, $b);
preg_replace('/das_muster/', $a, $b);
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Freddy
Beiträge: 252
Registriert: Fr 6. Mai 2005, 21:01
Wohnort: Gummersbach
Kontaktdaten:

Re: Newsletteranmeldung- Problem nach Umstellung auf PHP 5.4

Beitrag von Freddy » Mi 16. Okt 2013, 07:38

Ich finde kein ereg_replace in der Modulausgabe.
Zuletzt geändert von Freddy am Mi 16. Okt 2013, 09:13, insgesamt 1-mal geändert.

xmurrix
Beiträge: 3147
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Newsletteranmeldung- Problem nach Umstellung auf PHP 5.4

Beitrag von xmurrix » Mi 16. Okt 2013, 07:55

Es muss in einem der Module sein. Aktiviere die Ausgabe des Codes in der Datei "contenido/includes/config.misc.php"

Code: Alles auswählen

$cfg["debug"]["codeoutput"] = true;
Dann wirst du im Frontend eine Textarea sehen, in der der Code der Seite ausgegeben ist. In diesem Code die Zeile 252 prüfen.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Freddy
Beiträge: 252
Registriert: Fr 6. Mai 2005, 21:01
Wohnort: Gummersbach
Kontaktdaten:

Re: Newsletteranmeldung- Problem nach Umstellung auf PHP 5.4

Beitrag von Freddy » Mi 16. Okt 2013, 08:49

Vielen Dank xmurrix,
habe es jetzt gefunden. War im Modul Newsletter Handler. Habe jetzt dort die Stelle wie folgt geändert und es kommt keine Fehlermeldung mehr:

Code: Alles auswählen

         $sEMail = preg_replace('/\n/', '//', stripslashes($_POST['email']));
         $sEMail = preg_replace('/\r/', '//', $sEMail);

Freddy
Beiträge: 252
Registriert: Fr 6. Mai 2005, 21:01
Wohnort: Gummersbach
Kontaktdaten:

Re: Newsletteranmeldung- Problem nach Umstellung auf PHP 5.4

Beitrag von Freddy » Mo 30. Dez 2013, 09:12

Hallo Zusammen,
hab noch ein altes Modul Mailkontakt von agon wo eregi benutzt wird. Ich bin leider kein PHP Profi habe nur rausgefunden das eregi-Aufrufe ersetzt werden müssen. Kann mir jemand sagen wie ich folgende Zeilen ändere damit es mit PHP 5.4.11 lauffähig wird.

Code: Alles auswählen

  if (!(eregi("([0-9]{1,11})",$mailkontaktid))) {

Code: Alles auswählen

if (!(eregi("([0-9]{1,11})",$mailkontaktid))) {

Code: Alles auswählen

if (eregi("^[a-zäöüÄÖÜß0-9&_ -]$",$from_name[$i]))  $from_name_new .= $from_name[$i];

Code: Alles auswählen

$valid = (eregi ("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]+$",$from_mail));
Vielen Dank

xmurrix
Beiträge: 3147
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Newsletteranmeldung- Problem nach Umstellung auf PHP 5.4

Beitrag von xmurrix » Mo 30. Dez 2013, 13:37

Hallo Freddy,

du kannst die eregi-Aufrufe folgendermaßen ersetzen:

Code: Alles auswählen

# zeile
# if (!(eregi("([0-9]{1,11})",$mailkontaktid))) {
# gegen
if (!(preg_match("/^([0-9]{1,11})$/", $mailkontaktid))) {

# zeile
# if (eregi("^[a-zäöüÄÖÜß0-9&_ -]$",$from_name[$i]))  $from_name_new .= $from_name[$i];
# gegen
if (preg_match("/^[a-zäöüß0-9&_\s\-]*$/i", $from_name[$i]))  $from_name_new .= $from_name[$i];

# zeile
# $valid = (eregi ("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]+$",$from_mail));
# gegen
$valid = (bool) filter_var($from_mail, FILTER_VALIDATE_EMAIL);
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Freddy
Beiträge: 252
Registriert: Fr 6. Mai 2005, 21:01
Wohnort: Gummersbach
Kontaktdaten:

Re: Newsletteranmeldung- Problem nach Umstellung auf PHP 5.4

Beitrag von Freddy » Mo 30. Dez 2013, 15:34

Vielen Dank xmurrix für deine Hilfe. Jetzt funktioniert das Modul wieder perfekt. Danke.

Habe in diesem Zusammenhang noch ein Problem mit dem Article List Advanced V2.6.0. Da bekomme ich die Fehlermeldung:
Warning: getimagesize(/.../2013-12-29_bild_101.JPG): failed to open stream: No such file or directory in /.../cms/front_content.php(934) : eval()'d code on line 2522
Und in Contenido-Fehlerlogs: [30-Dec-2013 14:20:13 Europe/Berlin] PHP Warning: getimagesize(/.../2013-12-29_bild_101.JPG): failed to open stream: Datei oder Verzeichnis nicht gefunden in /.../contenido/includes/include.con_editcontent.php(634) : eval()'d code on line 2662

Hat ja höchstwahrscheinlich damit zu tun das er die Datei nicht findet. Der Fehler tritt aber erst nach dem PHP Upgrade auf 5.4.11 auf. Hier der Code im Modul was mit getimagesize zu tun hat. Kannst Du dafür vielleicht auch eine Lösung? Vielen Dank für deine Mühe.

Code: Alles auswählen

                                                        list (
                                                            $width,
                                                            $height,
                                                            $type,
                                                            $attr
                                                        ) = getimagesize($aData[$i]["i".$k]["ServerPath"]);
                                                        $aData[$i]["i".$k]["Width"]        = $width;
                                                        $aData[$i]["i".$k]["Height"]       = $height;
                                                    }

Code: Alles auswählen

                                        list (
                                            $width,
                                            $height,
                                            $type,
                                            $attr
                                        ) = getimagesize(str_replace($cfgClient[$client]["path"]["htmlpath"], $cfgClient[$client]["path"]["frontend"], $image));

xmurrix
Beiträge: 3147
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Newsletteranmeldung- Problem nach Umstellung auf PHP 5.4

Beitrag von xmurrix » Mo 30. Dez 2013, 15:52

Um hier helfen zu können, müste man wissen, was in der Variable

Code: Alles auswählen

$aData[$i]["i".$k]["ServerPath"]
steht. Das weiß ich nicht auswendig. Auf jeden fall musst du darauf achten, dass du der Funktion getimagesize() den vollen Pfad zum Bild übergibst, nicht eine URL. Meist sind in PHP Dateizugriffe über URL nicht erwünscht, Provider deaktivieren das...

Der Code in

Code: Alles auswählen

getimagesize(str_replace($cfgClient[$client]["path"]["htmlpath"], $cfgClient[$client]["path"]["frontend"], $image)
sorgt z. B. dafür, dass die URL zum Bild

Code: Alles auswählen

http://domain/cms/upload/bildname.jpg
in

Code: Alles auswählen

# http://domain/cms/ gegen /var/www/cms/ ersetzen
/var/www/cms/upload/bildname.jpg
umgewandelt wird.

Code: Alles auswählen

$cfgClient[$client]["path"]["htmlpath"] = Ist der HTML-Pfad des Mandanten, z. B. http://domain/cms/
$cfgClient[$client]["path"]["frontend"] = Ist der Server-Pfad zum Mandantenverzeichnis, z. B. /var/www/cms/
Schau einfach im Modulcode überall dort getimagesize() aufgerufen wird nach, was da jeweils für ein Wert als erster Parameter übergeben wird.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Re: Newsletteranmeldung- Problem nach Umstellung auf PHP 5.4

Beitrag von stefkey » So 16. Mär 2014, 12:06

BESTEN DANK! Hat auch mir geholfen die Infos!

Gesperrt