Autor Zpráva
wNi'
Profil *
Potreboval by som, aby vo formulari, konkretne texarea boli povolene bezne tagy - napr. <b> <u> <i> <font style="..." color="..."> a taktiez <img src="..." +formatovanie obrazku> a <embed>...
Existuje na to nieco? Myslim ze sa to robi cez Jscript ale niesom si isty, vie mi niekto pomoct?
Vopred ďakujem
wNi'
Profil *
Hmm zabudol som, texarea posle do databaze, ale to je htmlspecialchars osetrene, aby sa to tam dostalo ale aby nevznikol sql injection (nikdy clovek nevie), preto toto by som potreboval pri vypise... Dakujem :)
__construct
Profil
wNi':
Myslim ze sa to robi cez Jscript
Preto si to pre istotu postol do sekcie PHP, že? Inak áno máš pravdu robí sa to cez javascript - skryje sa <textarea> a prekryje sa <iframe>
Pozri sa radšej po nejakom hotovom riešení - napr. TinyMCE
wNi'
Profil *
Hmm sorry, dakujem pozriem sa ;-)
AM_
Profil
wNi':
ale to je htmlspecialchars osetrene, aby sa to tam dostalo ale aby nevznikol sql injection (nikdy clovek nevie)
htmlspecialchars ti neochrání vstup proti sql injection. musíš mít korektně ošetřená zpětná lomítka.
dělá se to přes regulární výrazy v php (hledej, na webu je toho spoustu... např. bbcode), javascriptem to sice jde, ale nevidím k tomu dobrý důvod.
wewree
Profil *
AM_ vis to jiste? mam pocit ze htmlspecialchars escapuje zpetna lomitka, a navic proc to resit regularama, kdyz existuje mysql_real_escape_string
Alphard
Profil
[#6] htmlspecialchars() vstup do databáze neošetřuje (je snadné to vyzkoušet), od toho je mysql_real_escape_string(). Už z principu je vhodné používat funkce k tomu určené.

a navic proc to resit regularama, kdyz existuje mysql_real_escape_string
Tohle byla myslím reakce na původní dotaz.
wNi'
Profil *
Mam to pre zatial osetrene nasledovne:

function check_input($data)
{
    if (strlen($data) == 0)
    {
        return false;
    }
    return true;
}
function oprav($data)
{
    $data = trim($data);
    $data = htmlspecialchars($data);
    return $data;
}

Ak to nestaci, mozem aj to mysql_real_escape_string pridat k "oprav"…

A teraz mam dalsiu otazku suvisejucu s predchadzajucim postom:
Mam teda spraveny zapis, ktory prehodi znaky typu <,>,{,/ atd. do ich ASCI verzie, a tak ich odosle do databazy, co aj teda vidim.. No a teraz ak vypisujem clanky tak mi to vypise v ich HTML zdrojaku, alebo ako to nazvat, namiesto toho aby zobrazil napr. <img src> to proste len napise.. Existuje prikaz ktory by bol povolil taketo formatovanie a zaroven zabranil niecomu typu <?php… ? - pretoze ak je povolene to img src tak istotne aj php bude… NEviem si s tym dat rady a neviem to ani nikde najst, asi som slabo hladal alebo neviem :-/…
Vopred Ďakujem ta odpoved :)

Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
wNi'
Profil *
Uy som to "opravil"... zistil som totiz ze tynimce vsetko spravi za mna.. htmlspecialchars ako aj to ze sa daju vkladat obrazky a php nie ;-).. Takze vrelo odporucam na publikaciu clankov prave tento program ;-).. Thats all
AM_
Profil
wNi':
Mam teda spraveny zapis, ktory prehodi znaky typu <,>,{,/ atd. do ich ASCI verzie, a tak ich odosle do databazy, co aj teda vidim.
htmlspecialchars() bych volal až při vypisování článků, neukládal bych to už tak oescapované do databáze - kvůli pozdějším úpravám.
pro uložení do databáze je důležité, aby byly speciální znaky mysql oescapované zpětnými lomítky (řeší mysql_real_escape_string)

Takze vrelo odporucam na publikaciu clankov prave tento program ;-)
Promiň, ale ty dvě funkce jsou trochu bezúčelné.
První vrací vždy totéž, co výraz (strlen($data) == 0), na to není potřeba si psát funkci.
Druhá je kombinace htmlspecialchars(trim($data)), to také nevidím důvod cpát do funkce.
Spíš bych měl důvod to tam necpat: za rok k programu přijdeš ty (nebo někdo jiný), a:
- uvidí někde v kódu použití funkce oprav() a check_input(), bude muset hledat, kde jsou definované a co vlastně dělají.
- uvidí v kódu běžně známé PHP konstrukce a nebude nikde nic hledat, bude předem úplně jasné, co se tam děje.
wNi'
Profil *
@AM_

Asi mas pravdu, tiez som si teraz vsimol ze tam volam 2x to iste (neposlal som cely kod) atd. mam tam kopec chyb, prakticky som zacal minuly tyzden s PHP, tak som rad ze to ide ;-).. Ale i tak dakujem za pripomienky :) Pokusim sa to opravit :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0