| 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: 17 let
|
|||
0