Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Fehler: gv_send.php -> Warning: preg_match

    karl

    • Schreiberling
    • Beiträge: 439
    Fehler: gv_send.php -> Warning: preg_match
    am: 18. Mai 2012, 21:30:49
    Habe beim Testen einen Fehler gefunden und keine Ahnung wieso der kommt und auch nichts dazu gefunden.

    Wenn Kunde einen Gutschein versenden will und nach der Eingabe im Formular auf "senden/bestätigen" geht öffnet die Seite: gv_send.php?action=send

    mit dem Fehler:
    Code: XML  [Auswählen]
    <b>Warning</b>:  preg_match() [<a href='function.preg-match'>function.preg-match</a>]: Unknown modifier '.' in <b>/xxxx/xxxx/xxx/xxxx/gv_send.php</b> on line <b>61</b><br />

    da steht dann: Line 61 ist die erste Zeile
    Code: PHP  [Auswählen]
    if (preg_match('/[^0-9/.]/', $gv_amount)) { // Hetfield - 2009-08-19 - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
                    $error = true;
                    $error_amount = ERROR_ENTRY_AMOUNT_CHECK;
            }

    Wie kann man den Fehler beheben???

    Linkback: https://www.modified-shop.org/forum/index.php?topic=20101.0

    jannemann

    • modified Team
    • Beiträge: 6.275
    • Geschlecht:
    Re: Fehler: gv_send.php -> Warning: preg_match
    Antwort #1 am: 18. Mai 2012, 23:08:06
    Hallo karl,

    welche Shopversion verwendest du?
    Kannst du dieses Problem im Demoshop nachstellen?

    Schöne Grüße,
    Jan

    thomas57

    • Fördermitglied
    • Beiträge: 230
    • Geschlecht:
    Re: Fehler: gv_send.php -> Warning: preg_match
    Antwort #2 am: 19. Mai 2012, 15:55:55
    Habe beim Testen einen Fehler gefunden und keine Ahnung wieso der kommt und auch nichts dazu gefunden.

    Wenn Kunde einen Gutschein versenden will und nach der Eingabe im Formular auf "senden/bestätigen" geht öffnet die Seite: gv_send.php?action=send

    mit dem Fehler:
    Code: XML  [Auswählen]
    <b>Warning</b>:  preg_match() [<a href='function.preg-match'>function.preg-match</a>]: Unknown modifier '.' in <b>/xxxx/xxxx/xxx/xxxx/gv_send.php</b> on line <b>61</b><br />

    da steht dann: Line 61 ist die erste Zeile
    Code: PHP  [Auswählen]
    if (preg_match('/[^0-9/.]/', $gv_amount)) { // Hetfield - 2009-08-19 - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
                    $error = true;
                    $error_amount = ERROR_ENTRY_AMOUNT_CHECK;
            }

    Wie kann man den Fehler beheben???
    Die Stelle sieht bei mir so aus:
    Code: PHP  [Auswählen]
    if (preg_match('/[^0-9\.]/', $gv_amount) && trim($gv_amount) != '')
    Die eine auskommentierung scheint falsch zu sein. Deswegen meckert er auch den . an.
    Ich verwende modified eCommerce Shopsoftware 1.05b

    cYbercOsmOnauT

    • modified Team
    • Beiträge: 914
    • Geschlecht:
    Re: Fehler: gv_send.php -> Warning: preg_match
    Antwort #3 am: 19. Mai 2012, 16:41:39
    Ich möchte das noch kurz erklären, damit es alle kapieren und den Fehler selber beheben können, falls er bei ihnen auftritt.

    Bei einem preg werden sog. Delimiter verwendet. Dies ist ein Zeichen, welches den Anfang und das Ende eines RegEx festlegt. Meist wird das Slash / als solch ein Delimiter verwendet. Alles was rechts nach dem zweiten Delimiter kommt und kommen darf sind die sog. Modifier. Diese wiederum geben Besonderheiten an, die die RegEx Maschine beachten soll. Das bekannteste hierbei sollte das i sein, welches für insensitive (Groß-/Kleinschreibung wird nicht beachtet) steht.
    Schaut man nun auf die RegEx von karl
    Code: PHP  [Auswählen]
    preg_match('/[^0-9/.]/', $gv_amount)
    sieht man rechts neben der 9 ein /. Die RegEx Maschine denkt also "Hier ist die RegEx zuende" und schaut rechts davon welche Modifier möglicherweise mitgeschickt wurden. Sieht dort einen ., kann damit nichts anfangen und bricht mit der Fehlermeldung ab.
    Gemeint war an dieser Stelle jedoch ein Backslash \ welches dazu dient, Zeichen die die RegEx Maschine normalerweise besonders behandelt als normale Zeichen anzusehen.
    Code: PHP  [Auswählen]
    preg_match('/[^0-9\.]/', $gv_amount)
    Zu bemerken wäre, das die RegEx Maschine innerhalb einer Zeichenauswahl (also innerhalb von [ ]) die Zeichen .?*$ nicht besonders behandelt und somit diese nicht escaped werden müssen. Machen trotzdem fast alle. Ich selber will mich auch nicht davon freisprechen. ;) Stören tut es ja nicht.

    Grüße,
    Tekin
    Viele Grüße,
    Tekin Birdüzen - Zend Certified Engineer

    karl

    • Schreiberling
    • Beiträge: 439
    Re: Fehler: gv_send.php -> Warning: preg_match
    Antwort #4 am: 19. Mai 2012, 19:32:55
    Danke für die Info Tekin!

    Ich benutze ja noch die 1.05 SP1a - habe nun das Update runtergeladen.

    Für die Bedingung "PHP5" betrifft einzig und allein die im Update enthaltene includes/classes/vat_validation.php ???? Habe ich das richtig verstanden? :?: Wenn ich erstmal mit der Vers.4 weiter machen will (bis alles läuft), tausche ich besagte Datei einfach nicht aus???

    Denn bei meinem Hoster geht nur eine PHP Version und wenn ich auf 5 schalte kann ich nicht mehr zurück auf die 4, so mal eben im Kundencenter. Das geht dann nur auf Anfrage wenn überhaupt.
    4 Antworten
    3019 Aufrufe
    29. August 2011, 13:14:43 von ut2k3
    3 Antworten
    3719 Aufrufe
    31. Oktober 2009, 16:15:46 von berndmuc
    3 Antworten
    3034 Aufrufe
    19. Mai 2014, 12:40:30 von Jossi
    7 Antworten
    6356 Aufrufe
    21. April 2012, 18:07:41 von Sick