Einfach zu Fixen: Deprecated: Function eregi() is deprecated ~ xtc_Security etc.

Deprecated: Function eregi() is deprecated in C:xampphtdocsxtcommerceincxtc_Security.inc.php on line 66

Viele coden nun ereg() eregi(() um in preg_match(). Es geht unter PHP5.2.x einfacher, indem man die E_DEPRECATED Meldungen von PHP unterdrückt), denn im 5.2er Branch ist dies noch ein „Warning“ –

Hierzu genügt z.B.

error_reporting(E_ALL & ~E_DEPRECATED);

bei xt:Commerce etc. z.B. in der includes/application_top.php

Um fit für PHP5.3 zu sein, ist ein umcoden in preg_match() nötig – denn erst mit dem sich noch fern vom Produktionseinsatz befindlichen PHP5.3 wird ereg() und eregi() ohne Rücksicht auf Verluste aus PHP entfernt und zeigt wieder mal den kleinen aber feinen Unterschied zu Ruby, wo Abwärtskompatibilität mehr beherzt wird.

ähnliche Themen:

  • Function eregi() is deprecated
  • function ereg() is deprecated
  • function ereg_replace() is deprecated
  • deprecated: function eregi() is deprecated
  • deprecated: function eregi() is deprecated in
  • deprecated: function ereg() is deprecated
  • Deprecated: Function ereg() is deprecated in
  • eregi() is deprecated
  • deprecated: function ereg_replace() is deprecated
  • Deprecated: Function ereg_replace() is deprecated in

4 Gedanken zu „Einfach zu Fixen: Deprecated: Function eregi() is deprecated ~ xtc_Security etc.

  1. Pingback: Deprecated: Function eregi() is deprecated in ... tools.Global.php - JTL-Software Supportforum f?r JTL-Wawi, JTL-Shop 2, eazyAuction und Connectoren

  2. Micha

    Hallo,
    versteh ich dich richtig, kann ich einfach in den php Dateien die Befehle: ereg() eregi(() in preg_match() umschreiben, oder müssen noch andere Anpassungen gemacht werden?
    Für die einfache Lösung:
    error_reporting(E_ALL & ~E_DEPRECATED);

    bei xt:Commerce z.B. in der includes/application_top.php
    wohin schreibe ich den Befehl genau, als letzte Zeile der application_top.php?
    Vielen dank für deine super Tipps
    Micha

    Antworten
  3. Junk-Coder

    Sie ersetzen am besten die existierende error_reporting() Zeile in der includes/application_top.php sowie admin/inlcludes/application_top.php.

    Wichtig: in einem Forum hat jmd. auf meinen Blog-Eintrag gepostet, man solle doch besser die POSIX-Regex in PCRE kompatible konvertieren. Dazu ist zu sagen:

    a) absolut korrekt, doch existiert hierzu im Moment kein dringender Bedarf, da auch PHP 5.3 noch POSIX unterstützt, lediglich ein Depracted Warning muss unterdrückt werden. Deprecated ist ja nur ein netter Hinweis „…diese Funktion wird aller Voraussicht nach in einem kommenden PHP Major Release/Branch nicht mehr unterstützt werden“ – mehr nicht!
    b) erklären Sie einmal Ihrem Kunden mehrere Stunden Programmieraufwand, um sein System für ein PHP Release kompatibel zu halten, das in der produktiven Umgebung noch lange nicht existiert 😉
    c) Umschreiben von POSIX auf PCRE bedarf auch einer Anpassung der REGEX, diese können von lapidar bis komplex sein – also Finger weg, wenn Sie nicht fit darin sind, es kann, es muss aber nicht einfach sein – ohne funktionale Tests würde ich erstmal die Finger davon lassen, es kann nämlich sein, daß die POSIX.Kompatibilität trotz Deprecated-Warnings noch viele Jahre in PHP erhalten bleibt und desweiteren finde ich, daß Hoster, die von PHP 5.2.x ersatzlos auf PHP 5.3.x upgraden für ernsthaften Shopbetrieb eh nicht in Frage kommen – denn hier gilt immer auch eine gewisse Konservativität in Sachen PHP Branches.

    Hoffe geholfen zu haben,
    CG

    Antworten
  4. Juri

    Danke :) ich kann zwar nicht wirklich php bzw. in einfach gehalten kleineren sachen kann ich es hier und da verstehend nachvollziehen…

    ich hatte „ploetzlich“ *hust* deprecated – meldungen nach auswertungen eines kontaktformulars (leere felder, bitte ausfuellen mit angabe, welches feld leer)

    jetzt weiss ich zwar, welche funktion da nu scheinbar „nicht hochwaertskompatibel“ sein wird (richtig ausgedrueckt?) aber der hinweis, die meldung (erstmal) zu unterdruecken bzw. die ausgabe, hat mir geholfen.

    mein xampp lokal ist mit seinem php wohl anders ausgestattet oder eben eingerichtet (usw) wie das von meinem provider, wo es normalerweise auch zur ausgabe solcher meldungen kommt, aber meine online-kontakt-formulare diese (noch?) nicht dort ausgaben.

    danke :)

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *