Autor | Zpráva | ||
---|---|---|---|
leorond Profil |
Ahoj, potřeboval bych nějak ochránit vstup a výstup do a z MySQL když používám tiny_mce. Mohl by jste mne někdo navést správným směrem?
Použil jsem htmlspecialchars a je to dobré ale i tak bych chtěl znát Váš názor.
Děkuji |
||
anonymníí Profil * |
#2 · Zasláno: 26. 11. 2015, 07:42:56
leorond:
Do MySQL(i) vždy mysql(i)_real_escape_string .
|
||
Taps Profil |
anonymníí:
„vždy“ v případě textových řetězců a tinymce ano. |
||
anonymníí Profil * |
#4 · Zasláno: 26. 11. 2015, 08:41:29
Taps:
Bavíme se o TinyMCE, že...? Chtělo by to lépe číst, než psát polovičaté reakce :-) |
||
Trickle Profil |
#5 · Zasláno: 26. 11. 2015, 13:52:03
přidám také jeden postřeh z TinyMCE v základu ti to třeba š překládá na html entity což by mohl být problém třeba pro vyhledávače.
a s htmlspecialchars mám problém snad všude... nikdy mi to nic nevypíše( žádný text).. jen v případě že mám v mysql vše převedené na html entity. |
||
leorond Profil |
No výstup z MySQL jsem zkusil
htmlspecialchars a celkem bez problémů a na vstup jsem použil real_escape_string .
Ano bavíme se o TinyMCE. Ještě bych se zeptal, na nadpis který jsem nastavil pomocí CSS jsem použil klasický <input type="text" name="nadpis" value="<? echo htmlspecialchars($row["nadpis"]);?>"> strip_tags a real_escape_string ale potřeboval bych ještě vědět zda není potřeba zakázat nějaké znaky pro text v <textarea> .Jelikož tam jsou povolené snad všechny znaky a nevím zda to není problém. |
||
anonymníí Profil * |
#7 · Zasláno: 26. 11. 2015, 14:44:11
Trickle:
Vyhledávače entitám samozřejmě rozumí. Kde jsi ten nesmysl vyčetl? Není to pravda, je to jen jiný způsob interpretace daného znaku. Taps: Hezky jsi doplnil svou odpověď, bez toho dovětku nedávala v dané situaci smysl, s dovětkem vypadá, jako bych byl pomatený já. Příště by se slušelo napsat ten edit trochu jasněji, aby bylo vidět, na co je reagováno. leoreond: Eh, jaký "nadpis, který jsem nastavil klasicky pomocí CSS"? Uvedený kód smozřejmě žádný nadpis není, je to textový input. Jaké znaky bys chtěl v textarea zakazovat? A proč? Ať si uživatel zadá co chce, záleží pak na tobě, co budeš vypisovat a co ne. Co budeš interpretovat a co ne. |
||
leorond Profil |
#8 · Zasláno: 26. 11. 2015, 14:56:44
Omlouvám se trochu jsem to zkomolil, myslím to tak že v nadpisu bude pouze text a to jak bude vypadat je nastaveno stylem CSS.
Bavil jsem se o vstupu do DB. To znamená že to odstraním až při výpisu ale není lepší aby se to vůbec do DB nedostalo? Nebude potom uživatel nemile překvapen že se mu vypíše jen část toho co napsal aniž by mu to třeba oznámilo že použil nepovolené znaky? |
||
anonymníí Profil * |
#9 · Zasláno: 26. 11. 2015, 15:05:38
leorond:
Pořád mluvíš o nepovolených znacích. Co a proč je nepovolený znak? Z jakého důvodu je nepovolený, když není při správném ošetření nijak nebezpečný? |
||
leorond Profil |
#10 · Zasláno: 26. 11. 2015, 16:33:40
Prostě bych tam ty znaky nechtěl ať už jsou nebo nejsou nebezpečné.
Ještě bych se chtěl zeptat když vypisuji článek napsaný v tinymce, jak mám výstup ošetřit aby se mi vypsal článek bez html značek jako je <b><p> a další? Pokud použiji htmlspecialchars tak se vypíše text tak jak jsem ho uložil do DB ale pokud to samé použiji na výpis do <textarea> kde ho zadávám tak se text zobrazuje správně.
|
||
Taps Profil |
#11 · Zasláno: 26. 11. 2015, 16:45:17
leorond:
pro vypsání textu bez html použiji funkci strip_tags |
||
leorond Profil |
#12 · Zasláno: 26. 11. 2015, 16:49:16
Ano to vím ale to mi odstraní ty html značky nadobro, já chci aby se tučně ahoj vypsalo ahoj a ne
<b>ahoj</b>
|
||
Fisir Profil |
#13 · Zasláno: 26. 11. 2015, 19:20:21
Reaguji na leoronda:
V tom případě nepoužívej žádnou escapovací funkci. Krátká nápověda: • vkládám jakýkoli řetězec do databáze » mysqli_real_escape_string() / prepared statements
• vypisuji text vložený návštěvníky » htmlspecialchars()
• vypisuji svůj text, nad kterým mám kontrolu a chci, aby se HTML vykonalo » nic • chci odstranit HTML značky » strip_tags()
|
||
leorond Profil |
#14 · Zasláno: 26. 11. 2015, 20:03:16
Fisir: Děkuji, přesně to jsem potřeboval vědět. Nic méně co když bych napsal třeba toto?
<?php $result = mysql_query("SELECT * FROM news"); $row = mysql_fetch_assoc($result); { $text = htmlspecialchars($row["text"]); $text = $row["text"]; { echo "$text"; } } ?> htmlspecialchars je tam asi zbytečně co?
|
||
anonymníí Profil * |
leorond:
Zbytečně je tam celý řádek č. 5, když proměnnou $text na dalším řádku přepisuješ. Ale to je základ PHP, doporučuji začít od základu, nebo se k základům vrátit, pokud si myslíš, že jsi už někde dál.Co si slibuješ od těch dvou sad složených závorek také nevím, dále, i když bude tabulka obsahovat více řádků, vypíšeš jeden (poslední)... Uvozovky kolem proměnné jsou taky zbytečné na řádku 8. |
||
leorond Profil |
Vím že ty závorky a uvozovky jsou tam zbytečné ale lépe se v tom vyznám, ničemu to neublíží ani nepomůže.
Jen jsem se na to chtěl zeptat, jelikož jsem to našel v jednom svém starém skriptu a nebyl jsem si už úplně jistý proč to tam vlastně je. Ještě k těm uvozovkám, jsou hlavně proto že tam byla html tabulka a nějak jsem je zapomněl smazat když jsem mazal tabulku pro lepší přehlednost. |
||
Časová prodleva: 9 let
|
0