Convalida dati form & risultati query

  • Creatore Discussione Creatore Discussione SaHToR
  • Data di inizio Data di inizio
Ciao,
manca il !
PHP:
 if (!get_magic_quotes_gpc())
        $data = stripslashes($data);
se NON è attivo allora metti lo slash

cmq non mi viene in mente altro che potresti aggiungere
forse sono anche troppi, nel senso che se ti aspetti un numero basterebbe verificare se è un intero con (int)
PHP:
$numero = (int) $_GET['numero'];
Per la paginazione dei risultati prova a vedere se riesci a prendere spunto da questo post
 
criric: era giusto così. Se le magic quotes erano attivate allora toglieva gli slash già inseriti da PHP, quindi ne aggiungeva altri.

Piuttosto direi che la funzione può essere migliorata così:
PHP:
function filter($data, $trim = true, $sanitize = true)
{
    $data = $sanitize ? filter_var($data, FILTER_SANITIZE_STRING) : $data;
    $data = $trim ? trim($data) : $data;
    $data = !get_magic_quotes_gpc() ? mysql_real_escape_string($data) : $data;

    return $data;
}
Ho aggiunto i parametri perché ci sono delle situazioni in cui non vuoi alterare la stringa (tranne i controlli per le SQL injection), per esempio in caso l'utente inserisca una password contenente spazi all'inizio o alla fine, oppure caratteri speciali che sarebbero eliminati da filter_var.
In questo caso non dovrebbe neanche essere necessario usare la funzione filter, tanto che la password è criptata e quindi non può costituire un pericolo per il database.

Tuttavia funzioni del genere sono inutili quando PHP offre librerie come PDO che mettono a disposizione le prepared statement. mysql è di fatto deprecata e il suo utilizzo in applicazioni di nuova generazione è fortemente sconsigliato.
 
ciao
Tuttavia funzioni del genere sono inutili quando PHP offre librerie come PDO che mettono a disposizione le prepared statement. mysql è di fatto deprecata e il suo utilizzo in applicazioni di nuova generazione è fortemente sconsigliato.
hai ragione, ma con un piccolo ma.
ci sono alcuni provider (e anche famosi) che non hanno le pdo attive, quindi devi usare le vecchie query
 
Se le magic quotes erano attivate allora toglieva gli slash già inseriti da PHP
VERO! non so perche ma ero convinto che ci fosse scritto addslashes() nella codnizione
 

Discussioni simili