Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   PHP - Fehler beim Speichern von Texten mit Sonderzeichen (https://www.delphipraxis.net/47283-php-fehler-beim-speichern-von-texten-mit-sonderzeichen.html)

s.h.a.r.k 8. Jun 2005 19:53


PHP - Fehler beim Speichern von Texten mit Sonderzeichen
 
Hallo!

Ich habe grad ein mehr oder weniger kleines Problem beim Speichern von Texten, in denen Sonderzeichen vorkommen: Und zwar geben ich in Form sowas hier ein
Zitat:

"Warum geht des jetzt nedda
!"§$%&/()=?`*'ÄÜÖ_:;>-.,#+´ß^^°
²³{[]}}\\~|
und das kommt dabei raus wenn ich wieder mit echo anzeigen lasse.
Zitat:

-.,#+´ß^^° ²³{[]}}\\\\~|">\"Warum geht des jetzt nedda !\"§$%&/()=?`*\'ÄÜÖ_:;>-.,#+´ß^^° ²³{[]}}\\\\~|
Wenn ich das ganz aber in eine MySQL-Tabelle eintragen will, wird nur der \ geschrieben und mehr nicht. Ich habe auch schon den folgenden Code angewandt, aber es hat sich nicht sehr viel verändert:
Code:
$contact_text = str_replace('&', '&', $contact_text);
$contact_text = str_replace('<', '&lt;', $contact_text);
$contact_text = str_replace('>', '&gt;', $contact_text);
$contact_text = str_replace('\"', '&quot;', $contact_text);
$contact_text = str_replace('"', '&quot;', $contact_text);
$contact_text = str_replace('\n', '
', $contact_text);
Da kommt dann das hier raus
Zitat:

-.,#+´ß^^° ²³{[]}}\\\\~|">"Warum geht des jetzt nedda !"§$%&/()=?`*\'ÄÜÖ_:;>-.,#+´ß^^° ²³{[]}}\\\\~|
In der MySQL-Tabelle steht nach dem Speichern immer noch \ drin und mehr nicht!

Ich hoffe einer von euch kann mir da helfen - ich werd langsam wahnsinnig mit dem S******* :wall:

mfg shark

S2B 9. Jun 2005 15:28

Re: PHP - Fehler beim Speichern von Texten mit Sonderzeichen
 
Hmm, hast du schon mal versucht, den String durch php-interne Funktionen wie mysql_escape_string(), htmlspecialchars() oder htmlentities() zu jagen? Vielleicht geht es damit besser.
Die erste Funtktion ist übrigends genau für solche Fälle wie deinen da... Im Normalfall speichert man Text auch nicht als html-Code in die Datenbank. :wink:

Mamphil 9. Jun 2005 15:32

Re: PHP - Fehler beim Speichern von Texten mit Sonderzeichen
 
Hallo!

Bitte verwende mysql_real_escape_string statt mysql_escape_string!

Wenn Strings mit Sonderzeichen per Formular gesendet werden sollen, musst du das Ergebnis ggf. vorher mit stripslashes() "säubern".

Mamphil

s.h.a.r.k 9. Jun 2005 15:57

Re: PHP - Fehler beim Speichern von Texten mit Sonderzeichen
 
Danke! Hab diese Codes leider noch nicht verwendet :lol: wusst net a mal dass es sowas gibt *schäm*

tail 9. Jun 2005 16:02

Re: PHP - Fehler beim Speichern von Texten mit Sonderzeichen
 
addslashes()
ist besser als mysql_real_escap_string()! Also benutzt lieber das.

s.h.a.r.k 9. Jun 2005 16:04

Re: PHP - Fehler beim Speichern von Texten mit Sonderzeichen
 
aha - mal ne dumme frage: Wieso?! Jeder sagt hier grad was anderes...

tail 9. Jun 2005 16:25

Re: PHP - Fehler beim Speichern von Texten mit Sonderzeichen
 
Zitat:

Zitat von s.h.a.r.k
aha - mal ne dumme frage: Wieso?! Jeder sagt hier grad was anderes...

Guck dir die funktionen mal im Manuel an, bei den Beschreibungen. Daraus kann man das schon sehen!

S2B 9. Jun 2005 18:25

Re: PHP - Fehler beim Speichern von Texten mit Sonderzeichen
 
Zitat:

Zitat von tail
Guck dir die funktionen mal im Manuel an, bei den Beschreibungen. Daraus kann man das schon sehen!

Also das mit dem mysql_real_escape_string() kann ich ja noch verstehen (, obwohl das für private Scripts eigentlich auch nicht soo wichtig ist...), aber das addslashes() besser sein soll als mysql_real_escape_string() verstehe ich nicht ganz. :gruebel:
mysql_real_escape_string() bzw. mysql_escape_string() scheinen doch genau für MySQL-Querys gemacht zu sein, warum sollte man sie dann nicht verwenden, wenn es doch um MySQL-Querys geht? :roll:

Mamphil 10. Jun 2005 11:25

Re: PHP - Fehler beim Speichern von Texten mit Sonderzeichen
 
Hallo!

Zitat:

Zitat von tail
Zitat:

Zitat von s.h.a.r.k
aha - mal ne dumme frage: Wieso?! Jeder sagt hier grad was anderes...

Guck dir die funktionen mal im Manuel an, bei den Beschreibungen. Daraus kann man das schon sehen!

Dieses Thema interessiert mich auch! Wieso soll addslashes() besser als mysql_real_escape_string() sein?

Mamphil

marabu 10. Jun 2005 11:41

Re: PHP - Fehler beim Speichern von Texten mit Sonderzeichen
 
Zitat:

Zitat von Mamphil
Wieso soll addslashes() besser als mysql_real_escape_string() sein?

mysql_real_escape_string() maskiert alle Zeichen (z.B. auch \n und \r), die für mySQL maskiert werden müssen, addslashes() hingegen maskiert nur einen allgemeinen subset. Wer sicher sein kann, dass seine User nie solche speziellen Zeichen anliefern - z.B. per Cut & Paste - der wird keinen Unterschied merken. Aber wer kann sich da schon sicher sein?

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:57 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz