Autor Zpráva
Neas
Profil
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
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()
. Používá se to při vstupu do databáze.

Přiklad použítí:
mysql_query("SELECT * FROM tabulka WHERE sloupec='".gpc_addslashes('uvozovka " test')." LIMIT 1");
__construct
Profil
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
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
Neas:
ternární operátor

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0