-
Errore sintassi MySQL
Ciao a tutti,
ho creato una pagina di registrazione, e nell'ultima parte dei controlli (quella dove controlla che non sia già registrato quel determinato username) salta fuori il messaggio che c'è un errore MySQL alla riga 1; qual è l'errore?
Codice PHP:
<?php
include("database_connection.php");
$username1 = $_GET['username'];
$password1 = $_GET['password'];
$email1 = $_GET['email'];
$ste = "0";
// Contiene la password criptata e 8 lettere a caso o che formi una parola ri-criptato per evitare che alla conferma e registrazione vengano usati bot //
$extracript = MD5("paragone".$password1."");
// Controllo Username //
$r = "";
$query = ("SELECT password FROM membri WHERE username = ".$username1."");
$result = mysql_query($query);
while($r=mysql_fetch_array($result))
{
$controllo=$r["password"];
}
// Username già utilizzato? //
if($controllo == ""){
// Inserisco i dati nel database //
mysql_query("INSERT INTO membri (username,password,email,ste,sey) VALUES ('$username1','$password1','$email1','$ste',$extracript')",$db) || die(mysql_error());
// Invia la email di conferma //
$oggetto = "Conferma Registrazione al Sito";
$info = "Per confermare la registrazione premi questo link: http://www.programmarealpc.altervista.org/test/ukc/conferma.php?username=".$username."&email=".$email1."&botcontrol=".$extracript."";
mail($email1, $oggetto, $info);
echo "Registrato correttamente, Controlla il tuo indirizzo email per confermare la registrazione.";
mysql_close($db);
}else{
echo "Questo username è già stato usato, verrai reindirizzato alla pagina di registrazione.";
header("Refresh: 3; URL=registrazione.php");
mysql_close($db);
}
?>
Grazie.
PS: può andar bene il codice che controlla che non ci sia l'username già registrato? in pratica cerca la password dell'username; se non la trova vuol dire che l'username non è già registrato quindi il valore della password sarà "" (vuoto).
Ri-Grazie.
-
Per prima cosa modifica:
Codice PHP:
$query = ("SELECT password FROM membri WHERE username = ".$username1."");
In:
Codice PHP:
$query = "SELECT password FROM membri WHERE username = '$username1'";
Poi io il controllo lo avrei fatto diversamente: esequi la query, mysql_num_rows, e controlli se il risultato della funzione precedente sia uguale a zero (0 = nessun utente registrato con quel nome).
Codice PHP:
$result = mysql_query($query);
$controllo = mysql_num_rows($result);
// Username già utilizzato? //
if($controllo == 0){
-
Grazie per le correzioni, continua comunque a darmi questo errore:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '')' at line 1
Come posso risolvere?
Grazie.
EDIT: risolto ho notato che mancava una virgoletta che ho slisciato per sbaglio Grazie e ciao