Page 183 - Corso di PHP - Livello base
P. 183

$query = "SELECT * FROM autori WHERE Nickname = '{$_POST['nickname']}' AND
                 Password = '{$_POST['psw']}'";
                 $risultato = mysql_query($query);
                 if (mysql_num_rows($risultato) == '1')

                 {
                    echo "Benvenuto, utente autenticato";

                    // codice che mostra l'eventuale pagina personale dell'utente
                 }

                 else
                 {

                    echo "Spiacente, password errata";
                 }


                Chiariamo  subito  la  funzione  nuova,  mysql_num_rows:
                restituisce  il  numero  dei  record  trovati  dalla  query  (nel

                nostro  caso  uno,  anche  perché  si  suppone  che  gli  username
                siano univoci) e riceve come parametro il risultato della query.
                Qua  si  trova  la  documentazione  ufficiale  della  funzione:

                http://php.net/manual/en/function.mysql-num-rows.php.
                Pertanto  se  la  funzione  dà  come  risultato  1  (e  quindi  trova  il

                record),  l'utente  sarà  loggato,  in  caso  contrario  ci  sarà  un
                messaggio  che  informerà  l'utente  di  aver  inserito  una
                password errata.


                Questo  codice  è  estremamente  vulnerabile,  soprattutto  nel

                caso  in  cui  l'impostazione  magic  quotes  gpc  di  PHP  sia
                disattivata:  in  locale  potete  controllarlo  su  WAMP  cliccando

                sull'icona nella barra delle applicazioni, quindi andare alla voce
                PHP e ancora andare su Impostazioni PHP. Se la voce “magic

                quotes gpc” è spuntata significa che è attiva e avete maggiori
                protezioni  contro  le  SQL  Injection.  Ci  sono  però  tanti
                provider che non attivano le magic quotes sui loro server. Ma

                cosa  sono  le  magic  quotes?  Si  tratta  di  un  processo  che
                aggiunge in automatico i caratteri di escape alle stringhe, ma

                dobbiamo  sapere  che  a  partire  dalla  versione  5.3.0  di  PHP,




                                                          183
   178   179   180   181   182   183   184   185   186   187   188