Pogledajte određenu poruku
Staro 14. 01. 2008.   #7
Ilija Studen
Direktor Kombinata
Invented the damn thing
 
Avatar Ilija Studen
 
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
Ilija Studen će postati "faca" uskoroIlija Studen će postati "faca" uskoro
Default

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.

Poslednja izmena od Ilija Studen : 14. 01. 2008. u 14:47.
Ilija Studen je offline   Odgovorite uz citat