Salve ragazzi, ho un problema con il quale non riesco a venire a capo.
Dunque, ho un sito dove per mezzo di un form ci si registra in un database utenti che contiente nome, cognome, mail e password.
Quando ci si logga, lo script php non fa altro che connettersi al database e fare delle virifiche, in particolare ne fa tre:
1- se la mail esiste nel database;
2- se la mail esiste ma la password è sbagliata segnala errore
3- se mail e password sono corretti allora redirect in un'altra pagina.
Il problema è il seguente: se il database contiente solamente un utente, il php esegue i suoi controlli correttamente, e segnala gli opportuni errori. Ma se gli utenti sono più di uno iniziano i guai, in particolare mi dice che l'utente non è presente nel database, quando realmente lo è.
Vi posto il codice.
Codice PHP:
<?php
$host="localhost";
$user="xxxxxxxxx";
$database="xxxxxxxx";
//Reperisco variabili
$mail=$_POST['maillogin'];
$passwordlogin=$_POST['passwordlogin'];
print($mail);
echo("
");
print($passwordlogin);
//Controllo campi vuoti
if ($mail == "") {
echo "<script type=\"text/javascript\">alert(\"Devi inserire una mail\"); history.go(-1)</script>";
exit;
}
if($passwordlogin == ""){
echo "<script type=\"text/javascript\">alert(\"Devi inserire una password\"); history.go(-1)</script>";
exit;
}
//Connessione al DB
$db = mysql_connect($host, $user, "password") or die ("Impossibile connettersi al server");
mysql_select_db($database,$db) or die ("Impossibile connettersi al database");
//Crypto password
$passwordlogin = MD5($passwordlogin);
//Seleziono tabella
$result = mysql_query("SELECT * FROM utenti");
//Controllo mail e password
while($row = mysql_fetch_array($result)){
//Mail insesistente
if ($mail != $row['mail']) {
echo "<script type=\"text/javascript\">alert(\"Non risulti essere registrato\"); history.go(-1)</script>";
exit;
}
//Password errata
if ($mail == $row['mail'] && $passwordlogin != $row['password']) {
echo "<script type=\"text/javascript\">alert(\"Password non corrispondente, riprova\"); history.go(-1)</script>";
}
//Login corretto
if ($mail == $row['mail'] && $passwordlogin == $row['password']) { /
/Avvio sessione
// chiusura database
mysql_close($db); ?>
Credo che il problema sia contenuto nel while perché se ho 1 utente funziona a dovere se ne ho più di uno dice che non esiste. Ma come è possibile?
Grazie per l'aiuto.