Autor | Zpráva | ||
---|---|---|---|
Neas Profil |
#1 · Zasláno: 11. 11. 2010, 15:01:06
Ahoj.
Sběžně jsem si prohlížel FAQ tady na diskuzi a zarazila mě tato funkce: function gpc_addslashes($str) { return get_magic_quotes_gpc() ? $str : mysql_real_escape_string($str); } může mi ji někdo prsím vysvětlit? Děkuji |
||
GeneralDv Profil |
#2 · Zasláno: 11. 11. 2010, 15:20:12 · Upravil/a: GeneralDv
Jestli máš zaplý magic quotes tak ti vrátí řetězec takovej jakej je v parametru, protože magic quotes automaticky uvozovky ošetří, tim že je escapuje - přidá před ně \, jinak se to ošetří funkcí
mysql_real_escape_string() Přiklad použítí: mysql_query("SELECT * FROM tabulka WHERE sloupec='".gpc_addslashes('uvozovka " test')." LIMIT 1"); |
||
__construct Profil |
#3 · Zasláno: 11. 11. 2010, 15:20:20 · Upravil/a: __construct
Neas:
Citujem z FAQ: „Při určitém nastavení PHP se v hodnotách z formulářů samo přidá zpětné lomítko před znaky uvozovek ("), apostrofů (') a zpětných lomítek (\). Pokud je to tak nastavené, funkce get_magic_quotes_gpc() vrací 1, jinak 0. Zařídit, aby $_GET['promenna'] nebyla takto olomítkována lze takto:“ Znamená to že ak by si mal zapnutné magic_quoutes_gpc a použil by si mysql_real_escape_string alebo nejaký jeho ekvivalent mal by si string 2x oescapovaný - viď príklad z php.net
echo get_magic_quotes_gpc(); // 1 echo $_POST['lastname']; // O\'reilly echo addslashes($_POST['lastname']); // O\\\'reilly |
||
Neas Profil |
#4 · Zasláno: 11. 11. 2010, 18:56:09
aha, takže když použiju funkci gpc_addslashes(), vyvaruju se tak dvojitému escapování... mě nebyl jasnej ten otazník a dvojtečka, ale teď, když to tady čtu, vzpomínám si, že jsem o tom již někde četl.
Děkuji :) |
||
panther Profil |
#5 · Zasláno: 11. 11. 2010, 19:03:48
Neas:
ternární operátor |
||
Časová prodleva: 13 let
|
0