Form-Mailer codiert Anführungszeichen
Patrick Canterino
- php
Hallo Forum!
Ich schreibe zur Zeit einen kleinen Form-Mailer in PHP. Er funktioniert ganz gut.
Mich stört allerdings, dass in der fertigen Mail vor Anführungszeichen und Apostrophs ein Backslash steht.
Weiß zufällig jemand, wie man das umgehen kann?
Viele Grüße
Patrick Canterino
hi patrick,
bin zwar selber anfänger in php,
aber soviel ich weis hat das was mit den strings zu tun.
ist irgendwie so ähnlich wie in perl.
genaueres weis ich aber auch nicht.
mfg
sven
tipp: schau mal unter dem partner projekt self php nach, da steht bestimmt der grund drin.
Hallo Sven,
bin zwar selber anfänger in php,
aber soviel ich weis hat das was mit den strings zu tun.
Das ist mir auch klar.
Viele Grüße
Patrick Canterino
Moin!
Ich schreibe zur Zeit einen kleinen Form-Mailer in PHP. Er funktioniert ganz gut.
Mich stört allerdings, dass in der fertigen Mail vor Anführungszeichen und Apostrophs ein Backslash steht.
Weiß zufällig jemand, wie man das umgehen kann?
Gratulation, du hast soeben ein Feature von PHP entdeckt, was es relativ unmöglich macht, durch geschickten Code PHP-angebundene Datenbanken zu löschen.
Die Funktion stripslashes() ist dein Freund.
- Sven Rautenberg
Hallo Sven,
Gratulation, du hast soeben ein Feature von PHP entdeckt, was es relativ unmöglich macht, durch geschickten Code PHP-angebundene Datenbanken zu löschen.
Häh?
Die Funktion stripslashes() ist dein Freund.
Danke! Es funktioniert!
Viele Grüße
Patrick Canterino
Hoi,
Gratulation, du hast soeben ein Feature von PHP entdeckt, was es relativ
unmöglich macht, durch geschickten Code PHP-angebundene Datenbanken zu
löschen.
Häh?
Nun, stell dir vor, du uebergibst bei einer Datenbank-Suche den Parameter where.
Mit dem Parameter moechtest du die Where-Bedinung einschraenken:
mysql_query('SELECT felder FROM tabelle WHERE feld = "'.$where.'"') or die(mysql_error());
Jetzt gebe ich als Suchbegriff den folgenden Parameter ein:
abc"; DROB DATABASE datenbankname; DELETE FROM tabelle WHERE feld = "abc
So wird zuerst die Query ausgefuehrt, die durch das 'where' eingeschraenkt wird.
Dann wuerde sie durch das ; beendet, so dass die *eigentliche* Query so
aussieht:
SELECT felder FROM tabelle WHERE feld = "abc"; DROB DATABASE datenbankname; DELETE FROM tabelle WHERE feld = "abc"
Mit anderen Worten: die Datenbank mit dem Namen 'datenbankname' wuerde
geloescht, sofern du sie loeschen *darfst*. Wenn nicht, wuerden alle Datensaetze
geloescht aus der Tabelle 'tabelle'.
Das ganze wird durch ein PHP-Feature (naja) names 'Magic Quotes' verhindert:
die Anfuehrungs-Striche werden gequotet. So stuende jetzt mit 'Magic Quotes'
auf on die folgende Query da:
SELECT felder FROM tabelle WHERE feld = "abc"; DROB DATABASE datenbankname; DELETE FROM tabelle WHERE feld = "abc"
Das sieht doch schon viel freundlicher aus? :-)
Gruesse,
CK