Visualizzazione risultati 1 fino 3 di 3

Discussione: Errore sintassi MySQL

  1. #1
    Guest

    Predefinito 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.

  2. #2
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    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){
    Ultima modifica di javascripter : 01-06-2010 alle ore 15.36.34

  3. #3
    Guest

    Predefinito

    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
    Ultima modifica di programmarealpc : 01-06-2010 alle ore 16.15.00

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •