1. Nikad ne koristiš add / stripslashes(). Postaraj se da skript UVEK radi sa ulaznim parametrima bez slasheva. Ja ih uvek stripujem pri inicijalizaciji skripte sa:
PHP kôd:
/**
* This function will strip slashes if magic quotes is enabled so
* all input data ($_GET, $_POST, $_COOKIE) is free of slashes
*
* @param void
* @return null
*/
function fix_input_quotes() {
if(get_magic_quotes_gpc()) {
array_stripslashes($_GET);
array_stripslashes($_POST);
array_stripslashes($_COOKIE);
} // if
} // fix_input_quotes
/**
* This function will walk recursivly thorugh array and strip slashes from scalar values
*
* @param array $array
* @return array
*/
function array_stripslashes(&$array) {
if(!is_array($array)) return;
foreach($array as $k => $v) {
if(is_array($array[$k])) {
array_stripslashes($array[$k]);
} else {
$array[$k] = stripslashes($array[$k]);
} // if
} // foreach
return $array;
} // array_stripslashes
Samo pozoveš fix_input_quotes() pri incijalizaciji i pustiše je da odradi svoje.
Ove funkcije su relativno davno napisane, ali do sada nisam imao nikakvih prijavljenih problema sa njima.
2. Kada escapeuješ stringove u upitima koristim
mysql_real_escape_string(). Ova funkcija koristi direktno MySQL funkcije tako da ti ne moraš previše da se cimaš. Takođe možeš da pogledaš prepared statements, ali to je meni previše cimanja. Evo jedan
kratak tekst.
Btw, ovaj i slični problemi su razlog zašto mislim da
početnici treba da koriste postojeće framework-e.