Autor Zpráva
PetraPP
Profil
Ráda bych na svůj web použila našeptávač a hned v prvopočátku než budu ukládat do mySQL produkty, bych potřebovala poradit, zda-li věty ukládat zvlášť na další řádek například bez diakritiky, vše převést na malé písmena, odstranit html a jiné znaky. Prostě mít čistý text, aby následné hledání bylo OK. Ten kdo pak zadá slovo(a) do našeptávače, tak PHP text taktéž vyčistí a použije do mySQL jako LIKE '$text%'.

Jak toto kompletní pročištění přes PHP provést?

Mockrát děkuji za výpomoc.
Tori
Profil
Chcete našeptávat samotná slova (slovní spojení) nebo třeba i celé věty?
Obecně bych vyhodila vše, co není text - tedy HTML tagy a grafické znaky typu hvězdičky, šipky apod. Zacházení s diakritikou a (ne)rozlišování velkých písmen se dá nastavit vhodným porovnáváním na daném DB sloupci.
PetraPP
Profil
Celé věty spíše ne. Bude se jednat pouze o slovní spojení či jedno slovo.
Taps
Profil
PetraPP:
důležité je mít na paměti i ošetření proti mysql injection. Sice je to trošku mimo téma, ale je to věcná připomínka
PetraPP
Profil
Na mySQL injection by mělo tedy stačit použít mysql_real_escape_string? Předpokládám, že snad ano :)

U toho hledání použiji přesně tohle: WHERE text LIKE %{$word}% Našla jsem to na internetu, ikdyž znaky {} ani nevím co tam znamenají.
Tori
Profil
PetraPP:
znaky {} ani nevím co tam znamenají.
http://php.net/manual/en/language.types.string.php#language.types.string.parsing.complex
Taps
Profil
PetraPP:
Pro info http://www.zdrojak.cz/clanky/sql-injection-pre-kazdeho/

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: