Variabile Superglobale $_REQUEST e Validazione Inp postato il 24/08/2011 08:00:25 nel forum programmazione, gdrcd e open source
Buongiorno a tutti, avrei bisogno di chiarimenti sulla super globale $_REQUEST e sul validare un input di un utente derivante dal FORM…
Dunque, la variabile Superglobale $_REQUEST quand’è che si utilizza ma soprattutto che pro/contro ha? A che serve?
Mentre per la validazione degli input io utilizzo un sistema del genere:
if(!isset($_POST['Avanti'])){
“parte php dell’input che inserisce i dati nel DB”
}
In pratica io faccio che se l’input non viene da POST e NAME ‘Avanti’ non me lo fa passare però, se io volessi che la validazione fosse SOLO dal Form del mio sito è solo dall’utente con una sessione attiva sul mio SITO questo sistema va bene oppure devo aggiungere altro?
Pagine → 1
24/08/2011 11:02:08
^_^ cosa eh?
24/08/2011 11:16:31
Il problema? ^_^ Veramente sto chiededo delle deluitazioni sull'utilizzo di $_REQUEST e sul controllo input, tutto qui.
24/08/2011 11:50:01
Ma se sul controllo io faccio così
24/08/2011 11:56:14
^_^ ti ringrazio comunque, infatti volevo sapere se era un modo corretto per validar el'input in sessione dell'utente.
24/08/2011 14:14:42 e modificato da leoblacksoul il 24/08/2011 14:18:10
Il modo corretto per sapere se è arrivato un input valido da una sessione valida è quello ^^
Io aggiungo solo una mia personalissima nota/opiione su $_REQUEST. Io eviterei di usarla.
Ti spiego perchè: REQUEST può essere comoda, ma spesso chi la usa lo fa perchè non sa bene che pesci prendere con le richieste HTTP. C'è un criterio preciso per scegliere se una richiesta dovrebbe essere passata tramite GET o tramite POST (descritto qui: http://www.w3.org/2001/tag/doc/whenToUseGet.html e qui http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html). Usare REQUEST mi fa pensare che l'autore non sia stato attento a queste cose. Poi nessuno dice che è sbaglito usarla eh, non è nemmeno deprecata; però mi lascia con un po' di inquietudine; anche per il fatto che fonde insieme i tre tipi di richieste che potrebbero sovrescriversi a vicenda in modi che non ti aspetti. Usare $_GET, $_POST e $_COOKIE separatamente non è poi così difficile, quindi perchè non farlo e dimenticarsi di $_REQUEST.
24/08/2011 14:46:00
E' vero che comunque sia in modo get che in modo post i dati inviati alle pagine possono facilmente essere manipolati dall'utente, quindi, in ogni caso, e' bene atturare dei controlli anche dopo aver controllato il contenuto di una variaile.
Intanto fagli un filtro per eliminare apici, virgolette, slash, tag html e quant'altro di nocivo, tanto per cominciare.
Poi per star piu' sicura datti un range di valori (solo alfabetici, solo alfanumerici, solo numerici..) oppure, nel caso del tuo esempio, controlla che sia uguale ad un insieme di valori attesi, forzando un valore di default in caso negativo.
Nei controlli o a giro per il codice non usare direttamente $_GET, $_POST, $_REQUEST.. ma assegna come prima cosa il loro valore ad una variabile, sulla quale poi applichi tutti i tuoi controlli in modo da sapere che e' sicura.
24/08/2011 17:38:40
Quindi
if(!isset($_POST['Avanti'])&&($_SESSION['name'])){
sarebbe corretto per verificare quanto io chiedo ovvero che passi da POST e il tasto avanti e che a farlo sia un utente con sessione attiva, mi sbaglio?
24/08/2011 17:58:00
controllare solo $_SESSION['name'] significa controllare che $_SESSION['name'] sia diverso da 0. Funziona, perche' PHP casta implicitamente tutte le variabili quando ce n'e' bisogno, ma non e' molto corretto, dovresti controllare $_SESSION['name']!="" oppure !empty($_SESSION['name']).
24/08/2011 18:06:10
Si la variabile $_SESSION['name'] racchiude al suo interno il nome del PG per cui mi verifica che l'input sia completo con filtraggio POST tasto Invia e che abbia un nome in sessione attivo, altrimenti povato prima non fa cambiare il valore.
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
NosTale: Manutenzione Terra della Vita