- Home
 - Categorie
 - Coding e Sistemistica
 - Coding
 - Controllo username e password
 
- 
							
							
							
							
							
Controllo username e password
nn riesco proprio a farli funzionare insieme
ecco il codice da me usato[PHP]# Recupero i valori dal form
$username = @$_POST['nomeutente'];
$password = @$_POST['password'];
$email = @$_POST['indirizzoemail'];//
$query2 = "SELECT email FROM ud_utenti WHERE email = '$email'";
$result2 = mysql_query($query2) or die("Errore nella query:".mysql_error());if (mysql_num_rows($result2) > 0){ //
echo "$email è già in uso";
echo "<a href="javascript:history.back()">Torna Indietro</a>";
}else {}
//CONTROLLO SE L'USERNAME UTILIZZATO DA UN NUOVO UTENTE E' GIA' IN USO OPPURE NO
$query1 = "SELECT user FROM ud_utenti WHERE user = '$username'";
$result1 = mysql_query($query1) or die("Errore nella query:".mysql_error());if (mysql_num_rows($result1) > 0){ // SE TROVO UN UTENTE CON QUELL'USERNAME MI DICE CHE IN USO
echo "Il nome $username è in uso";
echo "<a href="javascript:history.back()">Torna Indietro</a>";
}else {
invio dati al db
$strSQL = "INSERT INTO ud_utenti(user, pass, email)";
$strSQL .= "VALUES('$username', '$password', '$email')";
mysql_query($strSQL) OR die("Errore nella query:".mysql_error());
}[/PHP]
 - 
							
							
							
							
							
$query2 = "SELECT email FROM ud_utenti WHERE email = '".$email."'";
$query1 = "SELECT user FROM ud_utenti WHERE user = '".$username."'";
$strSQL .= "VALUES('".$username."', '".$password."', '".$email."')";prova modificando queste righe... secondo me l'errore sta nel fatto che php non "guarda dentro" alle variabili se le inserisci tra apici singoli ('$variabile') e ti stamperebbe proprio $variabile!

 - 
							
							
							
							
							
@joey santiago said:
$query2 = "SELECT email FROM ud_utenti WHERE email = '".$email."'";
$query1 = "SELECT user FROM ud_utenti WHERE user = '".$username."'";
$strSQL .= "VALUES('".$username."', '".$password."', '".$email."')";prova modificando queste righe... secondo me l'errore sta nel fatto che php non "guarda dentro" alle variabili se le inserisci tra apici singoli ('$variabile') e ti stamperebbe proprio $variabile!

Non riesco proprio a capirlo: o si usano i doppi apici o gli apici singoli, mica tutti e due insieme!
Comunque, se scrive come hai detto tu, santiago, riceve sicuramente un errore, perchè, al massimo, ci vorrebbero gli slash \ davanti ai doppi apici all'interno della query
Gli apici singoli, comunque, sono propri delle query SQL e non causano, a quanto ne so io, nessun errore

Perchè non provi a togliere le @ davanti alle variabili e vedi se ti ritorna un errore?
Posta cumunque l'errore che ti risulta.Ciao.
 - 
							
							
							
							
							
se usi i doppi apici nel modo in cui li ho usati io, succede questo:
"bla bla bla '".$variabile."'bla bla"
cioè si appende alla prima stringa, che si chiude con i doppi apici, la stringa $variabile, poi a questa si appende la stringa successiva, ecc... È un metodo che ho usato in molti file ed ha sempre funzionato...
 - 
							
							
							
							
							
Non riesco proprio a capirlo: o si usano i doppi apici o gli apici singoli, mica tutti e due insieme!
E perché?
$query2 = "SELECT email FROM ud_utenti WHERE email = '".$email."'";
corrisponde in pratica a:$query2 = " SELECT email FROM ud_utenti WHERE email = ' "; //<- non si escapa il singolo apice contenuto nei doppi apici
$query2 = $query2 + $email;
$query2 = $query2 + " ' "; // stesso motivo di sopra.Sintassi correttissima

 - 
							
							
							
							
							
Ti consiglio vivamente di parsare i valori che metti nelle query, così come sono ora nel controllo email potrei benissimo effettuare una sql injection.
 - 
							
							
							
							
							

 - 
							
							
							
							
							
Oddio!, non ho visto i punti dopo il primo doppio apice e prima del secondo!!
Pensavo avesse scritto '"$email"' invece che '".$email."'!
Non ho letto i puntini!
Colpa mia, scusate
 - 
							
							
							
							
							
Scusate l'ignoranza... cosa significa PARSARE?

Cosa avrebbe dovuto fare x evitare la sql injection?Ciao!
 - 
							
							
							
							
							
wow avrò letto 10 volte ma nn ho capito niente