| Autor | Zpráva | ||
|---|---|---|---|
| Milhauscorpse Profil * |
#1 · Zasláno: 6. 8. 2010, 11:39:59
Dobrý den.Chtěl sem se zeptat kterým nejlepším způsobem bych měl vyřešit tento problém:
Z formuláře ukládám data do databáze.A ctěl bych aby uživatel mohl v textarea používat pouze ztučnění písma (<b>) a odkazy (<a href=...).(Teda napsat si tam může co chce,ale aby se mi pak uložily pouze tyto tagy)Použil jsem funkci strip_tags Takže se chci zeptat,jak to ošetřit.Nechci napsat script,pouze poradit jak na ty dva tagy. Děkuji.m |
||
| Taps Profil |
#2 · Zasláno: 6. 8. 2010, 11:42:40 · Upravil/a: Taps
Milhauscorpse:
zkus $text="<b>test</b><i>test</i>"; strip_tags($text,"<b></b>"); |
||
| Alphard Profil |
#3 · Zasláno: 6. 8. 2010, 11:44:03
Strip_tags() má druhý parametr, ve kterém lze některé tagy povolit. Ale zůstanou v nich všechny parametry, takže se často používají BB kódy (jako tady) a po odeslání to převádí reguláry na html.
|
||
| Keeehi Profil |
#4 · Zasláno: 6. 8. 2010, 11:44:05 · Upravil/a: Keeehi
Milhauscorpse:
Přidej do strip_tags 2 nepovinný parametr. Co tam máš přidat? Koukni se do manuálu. Kde ho najít? Klikni na "strip_tags" ve tvém příspěvku. Jinak nechávat uživateli k dispozici tag A je bezpečnostní díra. |
||
| Milhauscorpse Profil * |
#5 · Zasláno: 6. 8. 2010, 11:55:25
Taps,Alphard,Keeehi:
KOukal sem do manuálů,s tím druhým parametrem sem si nevěděl rady.S těmito nahrazovacím funkcemi pracuji poprvé,takže sem nevěděl,co by bylo nejlepší.Já to zkoušel takto: $text = ereg_Replace("</b>","[/b]",$text);
$text = ereg_Replace("<b>","[b]",$text);ale protože se mi to zdálo trochu složité,tak sem se zeptal na lepší způsob.Díky za radu. Keeehi: Proč je s tím ponecháním možnosti vložit odkaz bezp problém? Mně se třeba zdá,že třeba někde v komentářích je fajn mít možnostvepsat do příspěvku i odkaz . |
||
| Keeehi Profil |
#6 · Zasláno: 6. 8. 2010, 12:02:24 · Upravil/a: Keeehi
Milhauscorpse:
A co když ti někdo do příspěvku vloží třeba: <a href="#" onclick="alert('Baf! Toto jsou cookies uložené v tvém prohlížeči:\n'+document.cookie+'\n\nAle k nim bych se dostat přece neměl.'); return false;">klikni</a>?
|
||
| Milhauscorpse Profil * |
#7 · Zasláno: 6. 8. 2010, 12:06:48
Keeehi:
zkusil jsem to a a pouze mi to vypsalo tuto chybu: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Baf! Toto jsou cookies uložené v tvém prohlížeči:\n'+document.cookie+'\n\n' at line 1 |
||
| Keeehi Profil |
#8 · Zasláno: 6. 8. 2010, 14:16:30
Milhauscorpse:
To si dej do nějakého testovacího html souboru ne do ereg_Replace(). Je to jen ilustrace toho, co by mohl uživatel do toho komentáře vložit pokud použiješ strip_tags($text,"<a>"); Funkce ereg_Replace je deprecated. Používej raději preg_replace. Můžeš vyzkoušet tuto funkci: function BBcode($text){
$a = array(
"/\[i\](.*?)\[\/i\]/is",
"/\[b\](.*?)\[\/b\]/is",
"/\[u\](.*?)\[\/u\]/is",
"/\[img\](.*?)\[\/img\]/is",
"/\[url=(?:http:\/\/)?(.*?)\](.*?)\[\/url\]/is",
"/\[size=(.*?)\](.*?)\[\/size\]/is",
"/\[color=(.*?)\](.*?)\[\/color\]/is",
);
$b = array(
"<i>$1</i>",
"<b>$1</b>",
"<u>$1</u>",
"<img src=\"$1\" />",
"<a href=\"http://$1\" target=\"_blank\">$2</a>",
"<font size=$1>$2</font>",
"<font color=$1>$2</font>",
);
return preg_replace($g, $h, $text);
} |
||
|
Časová prodleva: 16 let
|
|||
0