Autor Zpráva
tKej
Profil
Technický dotaz,
můžu udělat dvojité escapování, když mám vypnutou directivitu magic_quotes_gpc a použiju ještě addslashes(); ?? Jaké nastanou problémy..? Díky
Alphard
Profil
moc nechápu otázku, můžeš escapovat třeba desetkrát, ale asi to bude k ničemu
jestli je magic_quotes_gpc vypnuté, tak by AFAIK naopak k dvojitému escapování docházet nemělo
problémy mohou nastat při výpisu dat, která budou escapovaná vícekrát, bezpečnost to IMHO neohrozí

já to řeším (a myslím že většina lidí) vlastní funkcí pro escapování
function escape_string($string)
  {  return get_magic_quotes_gpc()?$string:mysql_real_escape_string ($string);  }

asi je jasné, co se stane: pokud je direktiva zapnutá, vrátí se původní řetězec, jestli ne, vrátí se escapovaný řetězec
tKej
Profil
Moc díky, vyřešil jsi mojí otázku, jinak podobný kód jsem už měl (nebyl můj, autor byl Vrána), jen jsem potřeboval vědět co se stane když to escapnu víckrát... díky:)
tKej
Profil
A ještě jeden dotaz:) můžu napsat tedy tohle? Ikdyž je magic_quotes_gpc zap/vyp? Prakticky se escapne $_POST a ještě bude v uvozovkách, podle mě nevadí, ale chci slyšet tvůj názor.
function fnc_addslashes($str) {
    return (get_magic_quotes_gpc() ? $str : addslashes($str));
}
 
$mysql = "SELECT * FROM table WHERE id = '".fnc_addslashes($_POST['retezec'])."'";
Alphard
Profil
tady mi chybí kontext

pokud je id číslo, použil bych jinou konstrukci
$mysql = "SELECT * FROM table WHERE id = '" . (int) $_POST['retezec']."'";

a uvozovky bych asi vynechal úplně, u čísel nejsou třeba
$mysql = "SELECT * FROM table WHERE id = " . (int) $_POST['retezec'];


pokud jde skutečně o řetězec, nevidím v tom problém
tKej
Profil
OK, díky (dal jsem špatný příklad na id řetězec, šlo mi hlavně o uvozovky..) díky

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: