• User

    Errore Query che non capisco

    Salve, ho un problemuccio vi spiego brevemente di cosa si tratta.
    Ho creato un form per la registrazione utente ho inserito lo script md5 solo che fa un piccolo errore nella query troverete elencati tutti i miei file più la tabella .

    Tabella
    [PHP]
    CREATE TABLE IF NOT EXISTS ac_users (
    id smallint(5) NOT NULL AUTO_INCREMENT,
    username varchar(30) NOT NULL DEFAULT '',
    password varchar(100) NOT NULL DEFAULT '',
    pwd_conferma varchar(100) NOT NULL DEFAULT '',
    name1 varchar(32) NOT NULL DEFAULT '',
    name2 varchar(32) NOT NULL DEFAULT '',
    email varchar(62) NOT NULL DEFAULT '',
    PRIMARY KEY (id),
    UNIQUE KEY username (username)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

    [/PHP]

    File config.php contenente tutti i dati dell'host
    [PHP]
    <?php

    $server = "localhost";
    $database = "sito";
    $db_user = "xxx";
    $db_pass = "xxx";
    $table = "ac_users";
    ?>[/PHP]

    File register.html per l'inserimento dei dati
    [PHP]<form action="register.php" method="post">
    <p>Username:
    <input type="text" name="username" size="20">
    <br>
    Password:
    <input type="password" name="password" size="20">
    <br>
    Conferma Password:<input type="password" name="pwd_conferma"><br>
    First Name :
    <input type="text" name="name1" size="20">
    <br>
    Second Name:
    <input type="text" name="name2" size="20">
    <br>
    Email:
         <input type="text" name="email" size="20">
    <br>

    <center> <input type="submit" value="Registrati!">[/PHP]

    File register.php per l'elaborazione dei dati
    [PHP]<?php
    include ('config.php');
    // connect to the mysql server
    $link = mysql_connect($server, $db_user, $db_pass)
    or die ("Could not connect to mysql because ".mysql_error());

    // select the database
    mysql_select_db($database)
    or die ("Could not select database because ".mysql_error());

    $username = $_POST['username'];
    $name1 = $_POST['name1'];
    $name2 = $_POST['name2'];
    $email = $_POST['email'];
    $password = $_POST['password'];
    $pwd_conferma = $_POST['pwd_conferma'];
    
    $db_query = "SELECT * FROM ac_users WHERE username = '$username'";
    $res =  mysql_query($db_query, $db) or die(mysql_error());
    $num_rows = mysql_num_rows($res);
    
    // Controllo campi obbligatori
    if($email==NULL || $username==NULL || $password==NULL)
    {
         echo "<br><br><br><br><br><p class='login'>Tutti i campi sono obbligatori, <a href='registrazione.php'>Torna Indietro</a></p>";
    }
    // Controllo Password
    else if($password != $pwd_conferma) 
    {
        echo "<br><br><br><br><br><p class='login'>Le password inserite non sono coincidenti, <a href='registrazione.php'>Torna Indietro</a></p>";
    }
    else if(strlen($password) < 4 ||  strlen($password) > 12)
    {
        echo "<br><br><br><br><br><p class='login'>Password troppo corta, o troppo lunga (Minimo 4 lettere e Massimo 12 lettere), <a href='registrazione.php'>Torna Indietro</a></p>";
    }
        // Registrazione dell'utente nel database
    else
    {
    $query = "INSERT INTO ac_users (username, name1, name2, email, password) VALUES ('$username','$name1','$email',MD5('$password')";
    mysql_query($query) or die(mysql_error());
    echo"<br><br><br><br><br><p class='login'>Registrazione effettuata. Esegui il login da <a href='index.php'>QUI</a></p>";
    }
    

    ?>[/PHP]

    Login.php Form di login
    [PHP]<?php
    $username = $_POST['username'];
    $password = md5($_POST['password']);

    $result =  mysql_query("SELECT * FROM utenti WHERE username='$username'");
    if(mysql_num_rows($result) == 0)
    {
         echo "<br><br><br><br><br><p class='login'><b>$username</b> non esiste come utente registrato</p>";
        echo "<p class='login'>Riprova ad inserire i dati alla pagina di <a href='login.php'>LOGIN</a></p>";
    }    
    else
    {
        $check = mysql_fetch_array($result);
        $user = $check['username'];
        $pass = $check['password'];
        
        if($username == $user && $password == $pass)
        {
            
            $_SESSION['username'] = "$username";
            $_SESSION['password'] = "$password";
                echo "<br><br><br><p class='login'>Login effettuato con successo<br></p>";
                echo "<p class='login'>Benvenuto <b>$username</b><br></p>";
                echo "<p class='login'>Adesso puoi accedere al contenuto della pagina privata dalla <a href='index.php'>homepage</a></p>";
        }
        else {
        echo "<br><br><br><br><p class='login'>Password errata<br></p>";
        echo "<p class='login'>Riprova ad inserire i dati alla pagina di <a href='login.php'>LOGIN</a></p>";
        }
    }
    ?>
    

    Username: <input type="text" name="username" size="20"><br>
    Password: <input type="password" name="password" size="20"><br>
    <input type="submit" value="Log In">
    </form><BR><BR>[/PHP]

    Datemi una mano, vi ringrazio in anticipo 🙂


  • ModSenior

    Ciao Sem93,
    qual'è la query che genera errore? E che errore è?


  • User

    l'ho sistemata dava l'errore la variabile $db che doveva essere cambiata con $link ora ho aggiornato i file e le ho sistemati ma l'errore che ho è quello della sessione, perchè le pagine a cui volevo accedere dovevano essere riservate solo ai loggati