Ankündigung

Einklappen
Keine Ankündigung bisher.

Deprecated: Function eregi() is deprecated in [...]\db.php on line 173

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Deprecated: Function eregi() is deprecated in [...]\db.php on line 173

    Hi,

    ich erhalte folgenden Fehler auf einer Site über 100 mal:
    "Deprecated: Function eregi() is deprecated in D:\Apache Software Foundation\Apache2.2\htdocs\setup\load_file\functi ons\db.php on line 173".

    Liegt hier der Fehler bei meinem PHP Server, oder bei meinem MySQL Dienst bzw. Account?


  • #2
    Du hast bestimmt ein PHP Update bekommen und seit dem tritt das auf, oder?

    Hängt damit zusammen, dass die Funktion als "veraltet" gesehen wird und nun durch ereg ersetzt wurde.
    PHP: eregi - Manual

    Kommentar


    • #3
      Zitat von ragtek Beitrag anzeigen
      Du hast bestimmt ein PHP Update bekommen und seit dem tritt das auf, oder?

      Hängt damit zusammen, dass die Funktion als "veraltet" gesehen wird und nun durch ereg ersetzt wurde.
      PHP: eregi - Manual
      So was habe ich mir schon fast gedacht. Kenne ich von MySQL, da wird man wenigstens nur drauf hingewiesen und die Function bleibt ne weile trotzdem noch erhalten.

      Ne das war kein Update, sondern eine Neuinstallation. Tja und die aktuellste PHP Version ist wohl schon über diesen PHP-Quellcode hinüberweg.

      Kennt jemand zufällig ein freies Tool für Windows um das Wort eregi überall in allen Dateien, die dem Archiv angehörig sind, durch ereg zu ersetzten?

      Kommentar


      • #4
        Zitat von LiGERWooD Beitrag anzeigen
        So was habe ich mir schon fast gedacht. Kenne ich von MySQL, da wird man wenigstens nur drauf hingewiesen und die Function bleibt ne weile trotzdem noch erhalten.
        Ist doch hier genau das gleiche ... du erhältst eine Meldung, dass die Funktion inzwischen deprecated, also „abgelehnt“, „missbilligt“ ist - „funktionieren“ tut sie aber zunächst mal weiterhin.

        Wenn du das Script zum jetzigen Zeitpunkt nicht anpassen möchtest - dann stelle das error_reporting so ein, dass es dir keine deprecated-Meldungen mehr ausgibt.
        Dann kannst du das Script so lange weiter nutzen, bis die ereg-Funktionen tatsächlich aus PHP entfallen (m.W. mit Version 6).

        Kennt jemand zufällig ein freies Tool für Windows um das Wort eregi überall in allen Dateien, die dem Archiv angehörig sind, durch ereg zu ersetzten?
        Das wird dir nichts nützen, weil ereg genauso deprecated ist wie eregi.

        Kommentar


        • #5
          Die funktionen ereg und eregi funktionieren in php 5.3 weiterhin, sie sind nur als deprecated/veraltet marktiert und deshalb schmeißt deren benutzung eine Notice, was kein schwerwiegender Fehler oder so ist.
          Die funktionen werden allerdings im nächsten größeren PHP-Release entfernt.

          Ein ersetzen von eregi mit ereg wäre unter umständen fatal, weil es unterschiedliche funktionen sind wie du im manual lesen kannst.
          Du solltest es mit preg_match ersetzen, aber das ist nicht einfach nur ein suchen und ersetzen, sondern die syntax und funktionsweise ist dabei auch anders und die patterns müssen daher angepasst werden.
          robo47.net - Blog, Codeschnipsel und mehr
          | Caching-Klassen und Opcode Caches in php | Robo47 Components - PHP Library extending Zend Framework

          Kommentar


          • #6
            Zitat von robo47 Beitrag anzeigen
            Ein ersetzen von eregi mit ereg wäre unter umständen fatal, weil es unterschiedliche funktionen sind wie du im manual lesen kannst.
            Wieso
            This function is identical to ereg() except that it ignores case distinction when matching alphabetic characters.
            Also identisch bis auf die Sache mit Casesensitiv

            Kommentar


            • #7
              Zitat von ragtek Beitrag anzeigen
              Also identisch bis auf die Sache mit Casesensitiv
              Eben - und case-insensivity* auf einmal unter den Tisch fallen zu lassen, wäre nun mal u.U. fatal.

              Zum Beispiel:
              Wenn Benutzernamen auf Plausibilität geprüft werden, und das bisher mit eregi und einer Zeichenklasse [a-z] geschieht - dann sind an der Stelle alle Kombinationen aus Klein- und Grossbuchstaben erlaubt, weil eben case insensitive.
              Wenn man da jetzt naiv eregi mit ereg ersetzt - dann sind aber plötzlich Namen, die Grossbuchstaben enthalten, nicht mehr gültig ...



              * gibt's das Wort?

              Kommentar


              • #8
                Zitat von ChrisB Beitrag anzeigen
                und case-insensivity*

                * gibt's das Wort?
                Hab auch das Wort gesucht^^
                Wollte es auch zuerst verwenden, anstatt "auf die Sache mit Casesensitiv"

                Aber, laut Wikipedia gibt es das sogar
                Case sensitivity - Wikipedia, the free encyclopedia
                Case-insensitive operations are sometimes said to fold case, from the idea of folding the character code table so that upper- and lower-case letters coincide. The alternative smash case is more likely to be used by someone that considers this behaviour a misfeature or in cases wherein one case is actually permanently converted to the other.
                b2t: Ja, ihr habt Recht.
                kA wieso ich an das nicht gedacht habe...

                Kommentar


                • #9
                  Sei froh, daß dei Warnung rechtzeitig kommt.
                  Nun kannst Du Deine Scripte anpassen, damit sie auch beim nächsten PHP-Release noch sauber arbeiten.

                  Hier eine Liste, welche Funktionen als "veraltet" deklariert sind mit zugehörigem Hinweis, was man stattdessen verwenden sollte.
                  Competence-Center -> Enjoy the Informatrix
                  PHProcks!Einsteiger freundliche Tutorials

                  Kommentar


                  • #10
                    PHP-Code:
                    if(!ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,6})$"$email)) {$message .= $errormessage[3]; $fehler 1;} 
                    wenn ich jetzt bei dem heir nur preg_match einsetze funzt es trotzdem nicht

                    Kommentar


                    • #11
                      Ja, das ist richtig. Wenn der Befehl 100%ig identisch wäre, wäre der eine sicher auch nicht veraltet und der andere nicht.

                      Immer noch: Im Manual steht alles was Du wissen musst: PHP: Differences from POSIX regex - Manual
                      --

                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                      --

                      Kommentar


                      • #12
                        Jaaa, aber ich habe leider keinerlei Erfahrung und wenn ich mir das durchlese, verstehe auch nur Bahnhof.

                        Kommentar


                        • #13
                          Link von nikosch -> 1. Punkt -> Link am Ende des Satzes verfolgen...
                          Competence-Center -> Enjoy the Informatrix
                          PHProcks!Einsteiger freundliche Tutorials

                          Kommentar


                          • #14
                            Sorry, wieviel mal muss man sich denn wiederholen. Ich habe keinerlei Erfahrung und weiß gar nicht was das alles bedeuten soll.

                            Kommentar


                            • #15
                              Jaaa, aber ich habe leider keinerlei Erfahrung und wenn ich mir das durchlese, verstehe auch nur Bahnhof.
                              Was soll man da sagen? Dann solltest Du auch tunlichst vermeiden im Quellcode rumzuwerken. Denn dass alle Fehler, die Du dabei einbaust dann hier im Board wieder mühsam rausdiskutiert werden müssen, braucht niemand von uns. Hol Dir wen mit Sachverstand aus Deinem Bekanntenkreis oder schreib ein Jobangebot aus.

                              Ich mach hier jetzt auch zu.

                              [MOD: Thread geschlossen]
                              --

                              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                              --

                              Kommentar

                              Lädt...
                              X