Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
sonderzeichen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
sonderzeichen


 
schmalle
13-09-2001, 19:41 
 
winks leutz!

hab auch mal wieder ne frage. ich muss umbeding wissen, wie ich sonderzeichen in eine mysql db bekomme. bei zeichen wie z.b. ´ '' oder auch < > macht die db bekanntermassen immer mucken. wie kann ich dem aus dem wege gehen?

und gleich noch ne frage: wie kann ich bei der ausgabe von einem beliebigen text aus db oder sonstwoher verhindern, das gewisse HTML befehle, die sich in dem text befinden ausgeführt werden?

ist wirklich wichtig, thx
schmalle

 
Berni
13-09-2001, 21:31 
 
hi schmalle,

einfach ein \ vor ' dann geht's.

Das mit dem HTML ist nicht so einfach. um HTML zu filtern mußt du den Text nach den TAGS parsen. arbeit!

schau dir mal folgenden Befehl an :
http://www.php.net/manual/en/function.htmlspecialchars.php

 
schmalle
13-09-2001, 23:11 
 
das funzt ja schoneinmal ganz gut ... aber ich will mehr :D

und zwar musst du dir jetzt vorstellen, dass auch fremde user texte eingeben dürfen. denen kann und will ich nicht erzählen, dass sie jeweils ein \ vor die sonderzeichen setzten müssen ... dass kann man sicher automatisieren ... WIE ????? :D

 
JoelH
14-09-2001, 03:16 
 
.....Gemütlichkeit, mit Ruhe und addslashes ....

http://www.php.net/manual/en/function.addslashes.php

sollte sehr gut helfen, leider geht es nicht immer, ich habe Härtefälle an Scripts die absolut nicht in die DB wollen, naja ich arbeite daran :)

 
schmalle
14-09-2001, 12:15 
 
so, addslashes läuft bestens. aber nun geht´s nochmal weiter :-)

denn beim auslesen muss ich ja nun stripslashes verwenden:

wie wende ich den befehl für ein array an? beispiel, wie es bisher läuft:


while($row = mysql_fetch_array($lesen)) {

echo stripslashes($row[0]);
echo stripslashes($row[1]);
usw usw.
}


ich will nicht jedes aml wieder stripslashes eingeben, sondern die \ aus dem gesamten array ziehen. das bekomme ich aber niocht hin. denn


while($row = mysql_fetch_array($lesen)) {

stripslashes($row);
echo $row[1], $row[2], usw....

}



funzt nit ...

 
Berni
14-09-2001, 12:21 
 
du must es für jede Spoalte neu machen!! sonst geht das net!
Gruß
Berni

PS: sei nicht so faul ;)

 
JoelH
14-09-2001, 13:59 
 
es gibt einen kleinen Trick und zwar kannst du das Array imploden dann stripslashen und dann wieder exploden. Du brauchst halt einen Trenner der garantiert nicht in den Texten vorkommt aber es sollte gehen :)

 
Titus
17-09-2001, 19:00 
 
und die html-Tags wirst du mit $row[$i]=stripslashes (http://www.php.net/de/strip-tags)($row[$i]) los.
(Kannst du natürlich schon vorm addslashes beim Eintragen mchen.)


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:25 Uhr.