bjnas: Mit preg_replace PHP Code entfernen

Hallo liebes Forum

Bring das einfach nicht auf die Reihe, hab zuerst gedacht : eine einfache Sache. Hier ein Beispiel :

<tr><td>Telefon</td><td><span>x</span></td><td>  
                                    <input name=\"nrtel\" value=\"<?php print(isset($_POST[\'nrtel\'])?$_POST[\'nrtel\']:\'\'); ?>\" type=\"text\" /></td></tr>

Möchte aus diesen Text die PHP Script löschen.

mit dem Ausdruck !<\?(.*)\?>!isU

Das funktioniert auf dem regexp-evaluator wunderbar

Auf meinem Server lässt er die < und > stehen, auch andere Teile werden abgehackt.

Warum?

Danke für Hilfe.

  1. Hallo,

    warum muss den der PHP-Code entfernt werden. Reicht es nicht, wenn du ihn einfach nicht ausführst?

    Viele Grüße Novi

    --
    "(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)
    1. warum muss den der PHP-Code entfernt werden. Reicht es nicht, wenn du ihn einfach nicht ausführst?

      Dann müsste er dennoch den Inhalt des Attributes mit htmlspecialchars() behandeln.

      mfg Beat

      --
      ><o(((°>           ><o(((°>
         <°)))o><                     ><o(((°>o
      Der Valigator leibt diese Fische
      1. Hallo,

        ist natürlich jetzt die Frage, ob der gesamte HTML-Code die Benutzereingabe darstellt oder nur der PHP-Code. Ansonsten sollte alles mit htmlspecialchars behandelt werden.

        Viele Grüße Novi

        --
        "(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)
        1. Hallo

          Möchte alle Contents die in eigenen Dateien sind über eine print.php für den Druck aufbereiten.

          Nun sieht das alles Super aus, bis auf die Seiten mit PHP Code. Da er nicht ausgeführt wird möcht ich Ihn ausfiltern.

          1. Hallo,

            dann könntest du vielleicht den PHP-Parser einsetzten: token-get-all

            Das dürfte zuverlässig funktionieren.

            Viele Grüße Novi

            --
            "(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)
  2. Hi!

    <tr><td>Telefon</td><td><span>x</span></td><td>

    <input name="nrtel" value="<?php print(isset($_POST['nrtel'])?$_POST['nrtel']:''); ?>" type="text" /></td></tr>

    
    > Möchte aus diesen Text die PHP Script löschen.  
    > mit dem Ausdruck `!<\?(.*)\?>!isU`{:.language-php}  
    > Auf meinem Server lässt er die < und > stehen, auch andere Teile werden abgehackt.  
      
    Wer ist "er"?  
      
    
    > Warum?  
      
    Ich sehe keinen Code, die mit dem Regexp irgendetwas anfängt, also kann ich dir auch nicht sagen, warum sich das nicht so verhält, wie du das haben willst.  
      
      
    Lo!