Autor | Zpráva | ||
---|---|---|---|
Tommy4 Profil |
#1 · Zasláno: 27. 5. 2008, 16:36:51 · Upravil/a: Tommy4
Potřebuji ve své knize zakázat HTML tagy, ale aby tam šly smajlíci atd.
Kód knihy je zde: http://www.tommy4.ic.cz/upload/kniha.txt Kód znám, ale nevím jak ho použít a kam ho použít... Byl bych rád, kdyby jste mi to vysvětlili, díky. $textem = HTMLSpecialChars($textem); |
||
yFang Profil |
#2 · Zasláno: 27. 5. 2008, 16:55:27
Tommy4
Tak dej nejdřív htmlspecialchars a až potom vyměň *xx* za smajlíky. |
||
Tommy4 Profil |
#3 · Zasláno: 27. 5. 2008, 17:01:21
Když to dám před to, můžu si tam v pohodě vložit rámy... :-(
|
||
Taps Profil |
#4 · Zasláno: 27. 5. 2008, 17:19:34
Tommy4
a co strip_tags s tím by to nešlo ? |
||
Měsíček Profil |
#5 · Zasláno: 27. 5. 2008, 17:21:10
Reaguji na uživatele Tommy4:
"Potřebuji ve své knize zakázat HTML tagy, ale aby tam šly smajlíci atd. " Zakaž používání zobáčků < a > a nebo je nahraď (pomocí funkcí PHP, jaké to jsou na to zkus přijít sám). Smajlíky pomocí JS vkládej jako *něco* a pak pomocí PHP regulárním výrazem předělej na zobáček a vytvoř z toho <img>, tím ti budou fungovat smajlíky, ale nikdo nebude moci psát žádné tagy. Zkrátka zakážeš vpisování zobáčků do databáze/souboru .. nebude to moci dělat uživatel, ale jen PHP skript. |
||
Joker Profil |
#6 · Zasláno: 27. 5. 2008, 17:26:00
Tommy4
Když to dám před to, můžu si tam v pohodě vložit rámy... :-( Jak? Nejdřív se zruší veškeré HTML a potom se třeba :-), :-(, ;-) (atd.) nahradí odpovídajícím HTML kódem. |
||
Tommy4 Profil |
#7 · Zasláno: 27. 5. 2008, 17:31:10
Taps
To bohužel neznám, PHP se teprve učím. Měsíček Zkusím zahledat na Googlu... Joker Tak jsem to myslím dělal... |
||
Joker Profil |
#8 · Zasláno: 27. 5. 2008, 17:33:35
Tommy4
Tak jsem to myslím dělal... No tak to by mělo být úplně bez rizika, protože návštěvníkovi neumožníte jakkoliv ovlivnit výsledný HTML kód, jen prostě smajlíka nahradíte natvrdo napsaným kódem. |
||
Tommy4 Profil |
#9 · Zasláno: 27. 5. 2008, 17:37:25
Mám to takhle, asi někde bude chyba:
$textem = HTMLSpecialChars($textem); $aa=MySQL_Query("SELECT * FROM kniha ORDER BY id DESC LIMIT $poz,$max"); echo mysql_error(); while ($bb=mysql_fetch_array($aa)){ $nahradit_co = array("*01*","*02*" ........atd........ |
||
krteczek Profil |
#10 · Zasláno: 27. 5. 2008, 18:38:43
Tommy4: použij Texylu, text z formuláře prožen přes ni a nemusíš se starat o html ani smajlíky
#odstranění zpětných lomítek removeMagicQuotesGpc(); $err = 0; $errTxt = ''; $textTexy = ''; $textHtml = ''; if(odeslaný formulář) { if((!empty($_POST['text'])) && (trim($_POST['text']) != '')) { $textTexy = htmlspecialchars($_POST['text']); $textHtml = texyla($_POST['text'], 'forum', 'utf-8'); } if(empty($textTexy)) { $err = 1; $errTxt .= '<p class="error">nevyplnili jste text zprávy, zprávu nelze uložit</p>'; } # když se de ukládat do db tak se kontroluje $err if(empty($err)) { $dotaz = "INSERT INTO ... } } a u výpisu se nemusíš starat o převádění smajlíků na html, nastavení 'forum' u Texyly je bezpečné právě pro takováto fora, knihy návštěv... |
||
Tommy4 Profil |
#11 · Zasláno: 27. 5. 2008, 20:50:36
Díky všem za snahu, až teď jsem si uvědomil v čem je chyba. Místo: $textem = HTMLSpecialChars($textem); stačilo dát $text = HTMLSpecialChars($text);. :-D
|
||
Měsíček Profil |
#12 · Zasláno: 27. 5. 2008, 20:54:25
Jestli to už jde můžeš locknout :)
|
||
Časová prodleva: 16 let
|
0