preg_replace regex-Problem
Bobby
- php
Moin
Ich steh grad bissl aufn Schlauch:
<input name="Search" class="submit" type="submit" value="Suche starten" />
soll ersetzt werden.
$this->inhaltreturn = preg_replace('~<input( ){1}name=\"([a-zA-Z0-9\-_]+)\"( ){1}class=\"submit\"( ){1}type=\"submit\"( ){1}value=\"(.*?)\"( ){1}\/>~','<span class="submit" id="$2">$6</span>',$this->inhaltreturn);
sollte doch den String oben finden? Wo liegt mein Fehler?
Gruß Bobby
Moin
OK. Regex stimmt. Es kommen nur Slashes aus der DAtenbank die ich vergessen habe vorher zu entfernen
$this->inhaltreturn = preg_replace('~<input( ){1}name=\"([a-zA-Z0-9\-_]+)\"( ){1}class=\"submit\"( ){1}type=\"submit\"( ){1}value=\"(.*?)\"( ){1}\/>~','<span class="submit" id="$2">$6</span>',stripslashes($this->inhaltreturn));
funktioniert nun.
Gruß Bobby
OK. Regex stimmt. Es kommen nur Slashes aus der DAtenbank die ich vergessen habe vorher zu entfernen
Ich denke du hast eher vergessen, dass du sie garnicht erst reinschreiben solltest :)
Moin
magic_Quotes sind leider on bei mir. d.H. bei jedem Absenden eines Formulars werden automatisch slashes hinzugefügt. Und ich hab mal gelernt, das in die Datenbank so abgespeichert wird wie vom Formular abgesendet. Das heißt mit allen Zeichen. Bei der Ausgabe behandel ich dann die Strings entsprechend. (stripslashes, htmlspecialchars, strip_tags usw)
Gruß Bobby
Und ich hab mal gelernt, das in die Datenbank so abgespeichert wird wie vom Formular abgesendet. Das heißt mit allen Zeichen. Bei der Ausgabe behandel ich dann die Strings entsprechend. (stripslashes, htmlspecialchars, strip_tags usw)
Wer auch immer dir das beigebracht hat hatte recht, du hast das aber vermutlich falsch verstanden - damit ist gemeint, dass du beim Speicher in die Datenbank keinerlei Maskierung vornimmst - auch keien automatische.
stripslashes gehört also schon vor dem Schreiben in die Datenbank gemacht, wenn magic_quotes an ist bzw. bevor du auch nur ansatzweise $_POST oder ähnliches anrühst:
http://www.php.net/manual/de/security.magicquotes.disabling.php - zweites Beispiel.
htmlspecialchars() natürlich erst bei der Ausgabe.
Hi,
magic_Quotes sind leider on bei mir. d.H. bei jedem Absenden eines Formulars werden automatisch slashes hinzugefügt.
Nein. Die werden erst von PHP, wenn es die Formulardaten in Empfang nimmt, dazugemurkst.
Und ich hab mal gelernt, das in die Datenbank so abgespeichert wird wie vom Formular abgesendet.
Eben. Wie abgesendet. NICHT wie von PHP vermagicquoted.
cu,
Andreas