- Home
- Categorie
- Coding e Sistemistica
- PHP
- 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 queryGli 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