messaggio d’errore in caso di login errato

  • Creatore Discussione Creatore Discussione asevenx
  • Data di inizio Data di inizio

asevenx

Utente Attivo
7 Nov 2009
312
0
16
Scusate se disturbo ancora...ho creato un sistema di login (username e password) collegato ad un database e vorrei che quando viene inserito un login errato restituisca un messaggio di errore. Ho scritto il codice con un ciclo if, però mi restituisce il messaggio solo se l'user è esatto e la password no, mentre vorrei il messaggio ogni volta che non si inserisca O l'user O la password in modo corretto. Inserisco il codice...

PHP:
$form_username = $_POST['usernameform'];
$form_password = $_POST['passwordform'];

if($form_username == '' AND $form_password== ''){
echo "inserisci password e username"."<br>";
}
else{

	$host = "localhost";
	$username = "xxx";
	$password = "";
	$database = "xxx";
	$tabella = "xxx";

	$connessione = mysql_connect($host, $username, $password) or die("Connessione DB fallita");
	mysql_select_db($database, $connessione) or die("Selezione DB fallita");

	$query = "SELECT * FROM $tabella WHERE tua_username = '$form_username'";
	$result = mysql_query($query, $connessione) or die('Errore...');

	while($resrow = mysql_fetch_row($result)){
	$id = $resrow[0];
	$nome = addslashes($resrow[1]);
	$cognome = addslashes($resrow[2]);
	$tua_username = addslashes($resrow[3]);
	$tua_password = addslashes($resrow[4]);

		if($form_username == $tua_username AND $form_password == $tua_password){
		
		echo "la condizione è verificata";
		}
		
		else{

		echo "la condizione non è verificata";
		}
	}
}

grazie mille
 
Non capisco per quale motivo complicarsi la vita in quel modo. Modifica il tuo script così:
PHP:
<?php
$form_username = isset($_POST['usernameform']) ? trim($_POST['usernameform']) : '';
$form_password = isset($_POST['passwordform']) ? trim($_POST['passwordform']) : '';

$form_username = addslashes($form_username);
$form_password = addslashes($form_password);

if($form_username == '' || $form_password == '')
{
	echo 'Inserisci password e username.<br />';
}
else
{
	$host = 'localhost';
	$username = 'xxx';
	$password = '';
	$database = 'xxx';
	$tabella = 'xxx';

	$connessione = mysql_connect($host, $username, $password) or die('Connessione DB fallita');
	mysql_select_db($database, $connessione) or die('Selezione DB fallita');

	$query = "SELECT * FROM {$tabella} WHERE tua_username = '{$form_username}' AND tua_password = '{$form_password}'";
	$result = mysql_query($query, $connessione) or die('Errore...');
	
	if(mysql_num_rows($query))
		echo 'La condizione è verificata.';
	else
		echo 'La condizione non è verificata.';
}
?>
E, nei tuoi prossimi script, ricordati di applicare la funzione addslashes ai dati che provengono dall'utente, per evitare SQL injection.
Inoltre sarebbe buona cosa criptare la password in MD5 o SHA1 (meglio quest'ultimo).
 

Discussioni simili