kostenloser Webspace werbefrei: lima-city


Fehler bei "ereg_replace"

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    a*******r

    Sers leutz
    habe in meinem script folgenen Fehlercode, wei? aber ned was der bedeutet:
    WARNING: ereg_replace(): REG_EESCAPE:

    hier noch die Zeile in der der Fehler sein soll und die darauffolgende:
    $_GET['show'] = ereg_replace("\\","\\\\",$_GET['show']);
    $_GET['show'] = nl2br($_GET['show']);


    kann mir da vielleicht jemand helfen?

    andinator
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Soweit ich das verstehe, m?chtest Du alle "\" verdoppeln, oder?

    Laut Posix darf ein regul?rer Ausdruck nie mit einem "\" enden, bei Dir ist das der Fall. Um die spezielle Bedeutung von "\" zu verlieren, kannst Du es in "[" .. "]" packen, dann wird das Zeichen eben genau als "\" interpretiert. Lange Rede kurzer Sinn:

    ereg_replace("[\]", "\\\\", ....

    funktioniert.
  4. Autor dieses Themas

    a*******r

    ich wil verhindern, dass wenn ein user in einem eingabefeld einen backslash eingibt, dass ideser als php-markierung interpreitert wird.

    andinator
  5. Warum sollte ein "\" als php-Markierung interpretiert werden?
    Es gibt die Funktion "stripslashes", die entfernt "\" die Dinger.

    Schau' Dir mal die anderen Funktionen wie

    addslashes
    quotemeta
    usw.

    an, evtl. ist etwas dabei, was Du suchst.
  6. Autor dieses Themas

    a*******r

    aber "\" ist doch normalerweise die Maskierung f?r andere PHP-Zeichen.
    z.B. muss man bei html befehlen vor ein " einen Backslash stellen \" damit es f?r den HTML-Befehl benutzt wird.
    Und ich will halt dass die Backslashes die ein User eintippt angezeigt werden, und nicht als Maskierung interpretiert werden.
    Wie mache ich das?

    andinator
  7. Mir ist immer noch nicht ganz klar, was genau Du erreichen willst.

    Der Benutzer gibt ?ber ein Formular eine Zeichenkette ein. Diese m?chtest Du wieder ausgeben, willst aber dabei verhindern, dass diese als PHP-Code interpretiert wird, oder?

    Eigentlich werden Zeichenketten nicht interpretiert, au?er Du rufst "eval()" auf.

    Vielleicht schreibst Du mal ein Beispiel auf, also welche Zeichenkette problematisch w?re. Ich glaube fast, dass "addslashes()" ausreichend ist.
  8. Autor dieses Themas

    a*******r

    ich muss das deshalb machen, da der eingegebene Text md5 verschl?sselt wird.
    und dann erst der hashwert von der vorherigen eingabe ausgegeben wird.
    und die "\" sollen halt mitverschl?sselt werden.

    andinator
  9. Also ich sehe da kein Problem. Hier ist mein kleines Testprogramm:

    <?php

    if (isset($teststr)) {

    echo $teststr.md5($teststr)."<br>\n";

    $teststr = ereg_replace("[\]", "\\\\", $teststr);

    echo $teststr.md5($teststr);
    }

    ?>



    <form action="test.php" METHOD=POST>
    <input type="text" name="teststr"/>
    </form>

    Wenn Du das mal ausprobierst, siehst Du, dass "\" automatisch maskiert werden. Das "ereg_replace()" ist doch dann ?berfl?ssig.
  10. Autor dieses Themas

    a*******r

    achso ok, hat sich erledigt, bitte schlie?en.

    andinator
  11. theuntouchables

    theuntouchables hat kostenlosen Webspace.

    Auf userwunsch geschlossen...

    **CLOSE**
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!