Autenticazione PHP/OOP campi vuoti

Marco_88

Utente Attivo
4 Dic 2014
150
0
0
Roma
batwebit.blogspot.it
Ciao a tutti.
Seguendo passo passo la procedura per la creazione di un form di registrazione spiegata al seguente link https://www.mrw.it/php/php-oop-creare-sistema-registrazione-autenticazione-utenti_7706.html sono riuscito ad implementarlo perfettamente nel mio sito, l'unico problema è che si riesce comunque ad accedere all'area riservata senza immettere alcun campo.
Nei commenti sotto alla pagina di spiegazione è stato reso noto il problema, tuttavia non sono riuscito a correggere il "bug" che consente l'accesso all'area riservata praticamente a tutti i visitatori.

Si parla di parentesi mancanti tra le funzioni ma nel file functions.php non riesco proprio a trovarle
Se qualcuno gentilmente può aiutarmi copio e incollo il codice functions.php

PHP:
<?php
# inclusione del file di configurazione
@include_once 'config.php';
# definizione della classe che conterrà i metodi per la gestione degli iscritti
class Iscrizioni {
  
  # definizione del costruttore
  public function __construct() 
  {
    # istanza della classe per la connessione al database
    $data = new DATA_Class();
  }

  # metodo per la registrazione 
  public function registra($nome_reale, $nome_utente, $password, $email) 
  {
    # cifratura della password
    $password = @sha1($password);
    # confronto degli input con i dati contenuti in tabella
    $query = @mysql_query("SELECT id_utente FROM iscritti WHERE nome_utente = '$nome_utente' OR email = '$email'") or die('Errore: ' . mysql_error());
    # controllo sulla presenza di corrispondenze prodotte dal confronto
    $conta = @mysql_num_rows($query);
    # se il confronto non genera corrispondenze..
    if ($conta == 0) 
    {
      # ..si procede con la registrazione..
      $risultato = @mysql_query("INSERT INTO iscritti(nome_utente, password, nome_reale, email) VALUES ('$nome_utente', '$password','$nome_reale','$email')") or die('Errore: ' .mysql_error());
      return $risultato;
    }else{
      # ..altrimenti l'esito della registrazione sarà negativo
      return FALSE;
    }
  }

  # metodo per l'autenticazione
  public function verifica_login($email_o_nome_utente, $password) 
  {
    # cifratura della password
    $password = @sha1($password);
    # confronto degli input con i dati contenuti in tabella
    $query = @mysql_query("SELECT id_utente FROM iscritti WHERE (email = '$email_o_nome_utente' OR nome_utente='$email_o_nome_utente') AND password = '$password'") or die('Errore: ' . mysql_error());
    # controllo sulla presenza di una corrispondenza prodotta dal confronto
    $conta = @mysql_num_rows($query);
    # se il confronto genera una corrispondenza..
    if ($conta == 1) 
    {
      # ..viene generata la sessione di login..
      $risultato = @mysql_fetch_object($query);
      $_SESSION['login'] = true;
      $_SESSION['id_utente'] = $risultato->id_utente;
      return TRUE;
    }else{
      # ..altrimenti l'esito dell'autenticazione sarà negativo
      return FALSE;
    }
  }

  # metodo per la visualizzazione del nome dell'utente loggato
  public function mostra_utente($id_utente) 
  {
    # estrazione del nome reale sulla base dell'identificatore memorizzato in sessione
    $query = @mysql_query("SELECT nome_reale FROM iscritti WHERE id_utente = $id_utente") or die('Errore: ' . mysql_error());
    $risultato = @mysql_fetch_object($query);
    # stampa a video del nome reale dell'utente
    echo $risultato->nome_reale;
  }

  # metodo per il controllo sulla sessione
  public function verifica_sessione() 
  {
    # il metodo restituisce l'informazione relativa alla sessione a patto che questa sia stata inizializzata
    if(isset($_SESSION['login']))
    {
      return $_SESSION['login'];
    }else{
      return FALSE;
    }
  }
  
  # metodo per il logout
  # la sessione viene distrutta a seguito di uno specifico input dell'utente
  public function esci() {
    $_SESSION['login'] = FALSE;
    @session_destroy();
    }
  }
?>
 
Non mi sembra cia siano parentesi aperte, ma dovrei controllarlo meglio e ora è mattino presto!
Se ti da un errore però dovresti avere anche la riga dove si verifica l'errore.
Altra cosa: uno script non ti pone al sicuro da ingressi indesiderati, io non so come è strutturato il tuo sito, ma se non vuoi accessi in una directory "segreta" devi mettere dei file che ad ogni accesso intercettano il tentativo e se non è autenticato rimandano al form di richiesta password, se no è tutto inutile.
 
Ciao Marco e grazie per la risposta. In effetti questo form di autenticazione non è proprio l'ideale per quello che mi serve, ma diciamo che è quello che ci si avvicina di più.

Non ho errori, è semplicemente un bug che accetta come utente registrato un utente "vuoto" senza campi e se vedo sul database effettivamente mi da come registrato un utente nullo, cioè i campi vuoti.

E' anche giusto quello che dici tu, che effettivamente bisognerebbe proteggere l'area riservata poiché una volta effettuato l'accesso è possibile salvarsi l URL e riaccendervi tranquillamente senza nessun modulo di verifica.
Purtroppo non ho ancora le conoscenze per sviluppare un sistema ad hoc e spero di poter acquisire qui:)
 
ciao
ti schematizzo es di pagina riservata riservata.php
PHP:
<?php
session_start();
if(!isset($_SESSION['login'])){
	header("location:dove_vuoi_tu.php");
	exit();
}else{
	//quello che devi mostrare
}
?>
inserendo l'url http: // www.tuo_sito.it / riservata.php si viene automaticamente rimandati a dove_vuoi_tu.php
 
ciao
ti schematizzo es di pagina riservata riservata.php
PHP:
<?php
session_start();
if(!isset($_SESSION['login'])){
	header("location:dove_vuoi_tu.php");
	exit();
}else{
	//quello che devi mostrare
}
?>
inserendo l'url http: // www.tuo_sito.it / riservata.php si viene automaticamente rimandati a dove_vuoi_tu.php

Ok Grazie funziona. Mi rimane solo il problema dell' utente vuoto che accede senza immettere alcun campo.
 
bisgona vedere come è strutturata la pagina, probabilmente non viene considerato importante che il form sia qualificato, ma solo che ci sia un invio da parte dell'utente a prescindere dal valore ne campi del forum stesso.
 
ciao
da quello che capisco l'errore dovrebbe essere in questa zona dove verifichi se l'utente è registrato
per prima cosa togli TUTTI i silent (le @), gli errori eventuali vanno eliminati NON nascosti
poi metti un var_dump per vedere poi lo togli e fare le due correzioni
PHP:
<?php
//.....
	//e prova ad aggiungere questa parte dovresti evitare i campi vuoti
	//comunque nel db NON dovresti avere recordo con i campi vuoti
	if(trim($email_o_nome_utente) =="" || trim($password)==""){
		return FALSE;
	}
	$password = sha1($password);
    # confronto degli input con i dati contenuti in tabella
    $query = mysql_query("SELECT id_utente FROM iscritti WHERE (email = '' OR nome_utente='$email_o_nome_utente') AND password = '$password'") or die('Errore: ' . mysql_error());
    # controllo sulla presenza di una corrispondenza prodotta dal confronto
    $conta = mysql_num_rows($query);
    var_dump($conta);// (int) 0 se non trovato, (int) 1 se trovato
	# se il confronto genera una corrispondenza..
    if ($conta == 1){
      # ..viene generata la sessione di login..
      $risultato = mysql_fetch_array($query);//prova a correggere così
      $_SESSION['login'] = true;
      $_SESSION['id_utente'] = $risultato['id_utente'];//prova a correggere così
      return TRUE;
    }else{
	// prova, ma non servirebbe
		$_SESSION=array();//elimina le sessioni
      # ..altrimenti l'esito dell'autenticazione sarà negativo
      return FALSE;
    } 
//......
?>
 
bisgona vedere come è strutturata la pagina, probabilmente non viene considerato importante che il form sia qualificato, ma solo che ci sia un invio da parte dell'utente a prescindere dal valore ne campi del forum stesso.

Non esattamente, perché se inserisco valori non registrati (nome e password a caso) il database esegue la verifica e mi produce l'output con il messaggio d'errore "i dati inseriti non sono corretti" quindi in questo senso funziona.

Quello che ho notato è che sul database phpmyadmin di altervista viene visualizzato un utente vuoto come di seguito mostrato:

PHP:
id_utente	nome_utente	password	                                                           nome_reale	       email	
1		                        da39a3ee5e6b4b0d3255bfef95601890afd80709		
2		 Marco               14caa50bc09854ceeea515efa83a9b0ca8e7f517	   Marco      marc.rossi@

Nel modulo login quindi è sufficiente premere invio e l'utente "vuoto" accede all'area riservata. Non so se mi spiego:rolleyes:
 
ciao
elimina quel record e verifica che in fase di registrazione un utente non possa inserire qualcosa di vuoto
sette poi i campi a NOT NULL
 
ciao
elimina quel record e verifica che in fase di registrazione un utente non possa inserire qualcosa di vuoto
sette poi i campi a NOT NULL

Stranamente se cancello il record dell' utente vuoto precedentemente registrato, poco dopo, rieffettuando il solo login è come se registrasse nuovamente un utente e di conseguenza accede comunque all'area riservata. Anche modificando NULL e NOT NULL sembra non cambiare...adesso provo a rivedere tutta la procedura da capo.
 
Stavo pensando che come escamotage per risolvere sto problema si potrebbe inserire un modo per verificare il numero di caratteri immessi.
Per esempio, sto leggendo su un testo, che si potrebbe usare una funzione _verifyInput() che verifica che i caratteri siano non minori di (<6) o comunque maggiori di >1 . Oppure agire agire sui campi del database in qualche maniera.
Cosa mi consigliate?
 
ciao
da quello che dici sembrerebbe che verificando user e pass... con la function verifica_login($email_o_nome_utente, $password)
venga contemporaneamente richiamata anche la function registra($nome_reale, $nome_utente, $password, $email) con i valori vuoti e quindi ti registri, se lo cancelli, di nuovo il record
quindi verifica la parte dove la classe viene usata, perchè così a naso le function sembrerebbero corrette
 
ciao
da quello che dici sembrerebbe che verificando user e pass... con la function verifica_login($email_o_nome_utente, $password)
venga contemporaneamente richiamata anche la function registra($nome_reale, $nome_utente, $password, $email) con i valori vuoti e quindi ti registri, se lo cancelli, di nuovo il record
quindi verifica la parte dove la classe viene usata, perchè così a naso le function sembrerebbero corrette


Verifico e vi faccio sapere, grazie. :)
 
Per completezza vi illustro il codice (il file config.php l'ho omesso poiché mi sembra scontato):

Questo l'ho inserito nella pagina index.php ed è il login.

PHP:
<?php
# inclusione del file di funzione
@include_once 'functions.php';
# istanza della classe
$obj = new Iscrizioni();
# chiamata al metodo per la verifica della sessione
if ($obj->verifica_sessione())
{
  #redirect in caso di esito negativo
  @header("location:iscrizione.php");
}
# chiamata al metodo per la registrazione
if ($_SERVER["REQUEST_METHOD"] == "POST") 
{
  $registrato = $obj->registra(htmlentities($_POST['nome_reale'], ENT_QUOTES), htmlentities($_POST['nome_utente'], ENT_QUOTES), htmlentities($_POST['password'], ENT_QUOTES), htmlentities($_POST['email'], ENT_QUOTES));
  # controllo sull'esito del metodo
  if ($registrato) {
    # notifica in caso di esito positivo
    echo 'Registrazione conclusa <a href="index.php">ora puoi loggarti</a>.';
  }else{
    # notifica in caso di esito negativo
    echo 'Stai cercando di registrarti con dei dati gi&aacute; presenti nel database.';
  }
}
# form per l'iscrizione
?>

<?php
# inizializzazione della sessione
@session_start();
# inclusione del file di funzione
@include_once 'functions.php';
# istanza della classe
$obj = new Iscrizioni();
# chiamata al metodo per la verifica della sessione
if ($obj->verifica_sessione())
{
	# redirect in caso di esito positivo
	@header("location:area_riservata.php");
}
# chiamata al metodo per l'autenticazione
if ($_SERVER["REQUEST_METHOD"] == "POST") {
	$login = $obj->verifica_login(htmlentities($_POST['email_o_nome_utente'], ENT_QUOTES), htmlentities($_POST['password'], ENT_QUOTES));
	# controllo sull'esito del metodo
	if ($login) {
		# redirect in caso di esito positivo
		@header("location:area_riservata.php");
	}else{
		# notifica in caso di esito negativo
		echo 'I dati indicati non sono corretti.';
	}
}
# form per l'autenticazione
?>

Questo è inserito nella pagina di registrazione degli utenti cioè iscrizione.php


PHP:
<?php
# inclusione del file di funzione
@include_once 'functions.php';
# istanza della classe
$obj = new Iscrizioni();
# chiamata al metodo per la verifica della sessione
if ($obj->verifica_sessione())
{
  #redirect in caso di esito negativo
  @header("location:index.php");
}
# chiamata al metodo per la registrazione
if ($_SERVER["REQUEST_METHOD"] == "POST") 
{
  $registrato = $obj->registra(htmlentities($_POST['nome_reale'], ENT_QUOTES), htmlentities($_POST['nome_utente'], ENT_QUOTES), htmlentities($_POST['password'], ENT_QUOTES), htmlentities($_POST['email'], ENT_QUOTES));
  # controllo sull'esito del metodo
  if ($registrato) {
    # notifica in caso di esito positivo
    echo 'Registrazione conclusa <a href="index.php">ora puoi loggarti</a>.';
  }else{
    # notifica in caso di esito negativo
    
    
  }
}
?>
<br>
</br>
<p style="margin-left: 13px";> <?php echo 'Stai cercando di registrarti con dei dati gi&aacute; presenti nel database.'?></p>

<br>
</br>
<br>
</br>

<img src="DSCN1129.JPG" alt="Strides"  style="height: 43% ; width: 25%; float: left; margin-left: 30px; border: solid 2px gray";>
<img src="DSCN0563.JPG" alt="Strides"  style="height: 43% ; width: 25%; float: right; margin-right: 30px; border: solid 2px gray";>

<div id="login">
  
  <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" id="form_registrazione" name="registrazione">
    <div class="head"><h2><strong>Registrazione iscritti</strong></h2></div>
    <h5><label><strong>Nome e Cognome</strong></label></h5><br/>
    <input type="text" name="nome_reale" required/><br/>
    <h5><label><strong>Nome utente</strong></label></h5><br/>
    <input type="text" name="nome_utente" required/><br/>
    <h5><label><strong>Password</strong></label></h5><br/>
    <input type="password" name="password" required/><br/>
    <h5><label><strong>Il tuo indirizzo di posta elettronica</strong></label></h5><br/>
    <input type="text" name="email" id="email" required/><br/><br/>
    <input type="submit" name="registra" value="Registrami"/><br/><br/>
    <label><a href="index.php" title="Login">Se sei gi&agrave; registrato puoi loggarti da qui</a></label> 
  </form>
  </div>

</body>
</html>

E questo è il file functions.php

PHP:
<?php 
# inclusione del file di configurazione 
@include_once 'config.php'; 
# definizione della classe che conterrà i metodi per la gestione degli iscritti 
class Iscrizioni { 
   
  # definizione del costruttore 
  public function __construct()  
  { 
    # istanza della classe per la connessione al database 
    $data = new DATA_Class(); 
  } 

  # metodo per la registrazione  
  public function registra($nome_reale, $nome_utente, $password, $email)  
  { 
    # cifratura della password 
    $password = @sha1($password); 
    # confronto degli input con i dati contenuti in tabella 
    $query = @mysql_query("SELECT id_utente FROM iscritti WHERE nome_utente = '$nome_utente' OR email = '$email'") or die('Errore: ' . mysql_error()); 
    # controllo sulla presenza di corrispondenze prodotte dal confronto 
    $conta = @mysql_num_rows($query); 
    # se il confronto non genera corrispondenze.. 
    if ($conta == 0)  
    { 
      # ..si procede con la registrazione.. 
      $risultato = @mysql_query("INSERT INTO iscritti(nome_utente, password, nome_reale, email) VALUES ('$nome_utente', '$password','$nome_reale','$email')") or die('Errore: ' .mysql_error()); 
      return $risultato; 
    }else{ 
      # ..altrimenti l'esito della registrazione sarà negativo 
      return FALSE; 
    } 
  } 

  # metodo per l'autenticazione 
  public function verifica_login($email_o_nome_utente, $password)  
  { 
    # cifratura della password 
    $password = @sha1($password); 
    # confronto degli input con i dati contenuti in tabella 
    $query = @mysql_query("SELECT id_utente FROM iscritti WHERE (email = '$email_o_nome_utente' OR nome_utente='$email_o_nome_utente') AND password = '$password'") or die('Errore: ' . mysql_error()); 
    # controllo sulla presenza di una corrispondenza prodotta dal confronto 
    $conta = @mysql_num_rows($query); 
    # se il confronto genera una corrispondenza.. 
    if ($conta == 1)  
    { 
      # ..viene generata la sessione di login.. 
      $risultato = @mysql_fetch_object($query); 
      $_SESSION['login'] = true; 
      $_SESSION['id_utente'] = $risultato->id_utente; 
      return TRUE; 
    }else{ 
      # ..altrimenti l'esito dell'autenticazione sarà negativo 
      return FALSE; 
    } 
  } 

  # metodo per la visualizzazione del nome dell'utente loggato 
  public function mostra_utente($id_utente)  
  { 
    # estrazione del nome reale sulla base dell'identificatore memorizzato in sessione 
    $query = @mysql_query("SELECT nome_reale FROM iscritti WHERE id_utente = $id_utente") or die('Errore: ' . mysql_error()); 
    $risultato = @mysql_fetch_object($query); 
    # stampa a video del nome reale dell'utente 
    echo $risultato->nome_reale; 
  } 

  # metodo per il controllo sulla sessione 
  public function verifica_sessione()  
  { 
    # il metodo restituisce l'informazione relativa alla sessione a patto che questa sia stata inizializzata 
    if(isset($_SESSION['login'])) 
    { 
      return $_SESSION['login']; 
    }else{ 
      return FALSE; 
    } 
  } 
   
  # metodo per il logout 
  # la sessione viene distrutta a seguito di uno specifico input dell'utente 
  public function esci() { 
    $_SESSION['login'] = FALSE; 
    @session_destroy(); 
    } 
  } 
?>
 
ciao
così ad occhio potrebbe andare bene, però non vedo alcun controllo sulla correttezza dei dati
non fai alcun controllo se i campi sono vuoti (usando trim per evitare solo spazi)
non fai alcuna verifica che l'email sia corretta (potresti usare filter_var($email, FILTER_VALIDATE_EMAIL) )
nel caso del nome potresi usare preg_match("/^[a-zA-Z0-9]{3,8}$/", $nome)
poi nelle registrazioni e nel log l'username, generalmente, è caseinsensitive quindi potresti usare strtolower per registrarli e poi quando lo verifichi)

poi ribadisco: togli quelle @

dimenticavo: passa alle funzioni mysqli o alla classe pdo, le funzioni mysql sono deprecate
 
ciao
così ad occhio potrebbe andare bene, però non vedo alcun controllo sulla correttezza dei dati
non fai alcun controllo se i campi sono vuoti (usando trim per evitare solo spazi)
non fai alcuna verifica che l'email sia corretta (potresti usare filter_var($email, FILTER_VALIDATE_EMAIL) )
nel caso del nome potresi usare preg_match("/^[a-zA-Z0-9]{3,8}$/", $nome)
poi nelle registrazioni e nel log l'username, generalmente, è caseinsensitive quindi potresti usare strtolower per registrarli e poi quando lo verifichi)

poi ribadisco: togli quelle @

dimenticavo: passa alle funzioni mysqli o alla classe pdo, le funzioni mysql sono deprecate


Concettualmente capisco cosa mi dici purtroppo però le mie conoscenze in materia ancora non mi consentono effettuare tali modifiche, ergo non so come fare ad inserire tali stringhe...
 
ciao
guarda che non è difficile, ti schematizzo
1) controlli
2) fai un if/else
se errori rimandi al form, altrimenti richiami le tue funzioni
poi se hai pazienza (ho alcuni impegni) ti spiego meglio guardando anche quello che hai fatto.

p.s.
odio la programmazione ad oggetti
 
Questo è quello che ho provato a fare basandomi esclusivamente sui concetti, ci saranno errori di sintassi ed ho evidenziato la parte scritta da me con delle freccette, commentando dove mi è stato possibile ciò che ho fatto.

Ho preso il file functions.php (vedi sopra) e ho e eseguito le seguenti modifiche:

PHP:
 <?php 
# inclusione del file di configurazione 
include_once 'config.php'; 
# definizione della classe che conterrà i metodi per la gestione degli iscritti 
class Iscrizioni { 
   
  # definizione del costruttore 
  public function __construct()  
  { 
    # istanza della classe per la connessione al database 
    $data = new DATA_Class(); 
  } 

  # metodo per la registrazione  
  public function registra($nome_reale, $nome_utente, $password, $email)  
  { 
    # cifratura della password 
    $password = sha1($password); 
    # confronto degli input con i dati contenuti in tabella 
    $query = mysql_query("SELECT id_utente FROM iscritti WHERE nome_utente = '$nome_utente' OR email = '$email'") or die('Errore: ' . mysql_error()); 
    # controllo sulla presenza di corrispondenze prodotte dal confronto 
    $conta = mysql_num_rows($query); 
    # se il confronto non genera corrispondenze.. 
    if ($conta == 0)  
    { 
      # ..si procede con la registrazione.. 
      
      $risultato = mysql_query("INSERT INTO iscritti(nome_utente, password, nome_reale, email) VALUES ('$nome_utente',  '$password','$nome_reale','$email')") or die('Errore: ' .mysql_error()); 
      return $risultato; 
    }else{ 
      # ..altrimenti l'esito della registrazione sarà negativo 
      return FALSE; 
    } 
  } 


      /*---------------------------------------------------------> Questa è la verifica che ho inserito io*/

      public function verifica ($nome_reale, $nome_utente, $password, $email)

      {
         #funzione trim sui campi immessi
         trim($nome_utente, $password, $nome_reale, $email);
         #funzione filtro sul campo email
         filter_var($email, FILTER_VALIDATE_EMAIL);
         #sanitize email dovrebbe eliminare i caratteri non idonei al campo email
         filter_var($email, FILTER_SANITIZE_EMAIL);  
       
       if ($conta == 0);
       {
                      
   
         #qui ho copiato il passaggio precendente per la registrazione (quello esistente)
      
      $risultato = mysql_query("INSERT INTO iscritti(nome_utente, password, nome_reale, email) VALUES ('$nome_utente',  '$password','$nome_reale','$email')") or die('Errore: ' .mysql_error()); 
      return $risultato; 
      }else{ 
         # qui dovrei rimandare l'else nuovamente alla verifica se non erro
      return FALSE; 

      } 

    }
 

      /*---------------------------------------------------------> fine della verifica inserita da me*/





  # metodo per l'autenticazione 
  public function verifica_login($email_o_nome_utente, $password)  
  { 
    # cifratura della password 
    $password = sha1($password); 
    # confronto degli input con i dati contenuti in tabella 
    $query = mysql_query("SELECT id_utente FROM iscritti WHERE (email = '$email_o_nome_utente' OR nome_utente='$email_o_nome_utente') AND password = '$password'") or die('Errore: ' . mysql_error()); 
    # controllo sulla presenza di una corrispondenza prodotta dal confronto 
    $conta = mysql_num_rows($query); 
    # se il confronto genera una corrispondenza.. 
    if ($conta == 1)  
    { 
      # ..viene generata la sessione di login.. 
      $risultato = mysql_fetch_object($query); 
      $_SESSION['login'] = true; 
      $_SESSION['id_utente'] = $risultato->id_utente; 
      return TRUE; 
    }else{ 
      # ..altrimenti l'esito dell'autenticazione sarà negativo 
      return FALSE; 
    } 
  } 

  # metodo per la visualizzazione del nome dell'utente loggato 
  public function mostra_utente($id_utente)  
  { 
    # estrazione del nome reale sulla base dell'identificatore memorizzato in sessione 
    $query = mysql_query("SELECT nome_reale FROM iscritti WHERE id_utente = $id_utente") or die('Errore: ' . mysql_error()); 
    $risultato = mysql_fetch_object($query); 
    # stampa a video del nome reale dell'utente 
    echo $risultato->nome_reale; 
  } 

  # metodo per il controllo sulla sessione 
  public function verifica_sessione()  
  { 
    # il metodo restituisce l'informazione relativa alla sessione a patto che questa sia stata inizializzata 
    if(isset($_SESSION['login'])) 
    { 
      return $_SESSION['login']; 
    }else{ 
      return FALSE; 
    } 
  } 
   
  # metodo per il logout 
  # la sessione viene distrutta a seguito di uno specifico input dell'utente 
  public function esci() { 
    $_SESSION['login'] = FALSE; 
    session_destroy(); 
    } 
  } 
?>


A voi la parola. :D
 
semplicemente non hai inserito la possibilità dell'utente vuoto nello script
PHP:
if($user == ”” or $mail == "" or $pass1 == "" or $conferma ==“”)
con una cosa del genere dovresti risolvere...credo...
 

Discussioni simili