• Super User

    Non effettua il login

    Ciao a tutti,
    sto lavorando a uno script per il login:

    <html>
    <head>
    </head>
    <body>
    <?php
    $uname=$_POST["username"];
    $tpass=sha1($_POST["password"]);
    print $uname;
    print $tpass;
    
    
    $connection = mysql_connect ("localhost", "root");
    if (!$connection)
    {
    die ('Could not connect: ' . mysql_error());
    }
    
    mysql_select_db("cms", $connection);
    
    $query = mysql_query("SELECT id FROM users WHERE name = '$uname' and pass = '$tpass' LIMIT 1");
    
    if(mysql_num_rows($query) == 1)
    {
        print "logged in";
    }
    else
    {
        die('Nome utente o password errati');
    }
    ?>
    </body>
    </html>
    ```però sia che io metta i dati giusti o quelli sbagliati mi scrive "Nome utente o password errati" premetto che sto lavorando con xampp in locale (per questo senza protezioni) e che il mio database è basato su questo file:
    
    

    <html>
    <head>
    </head>
    <body>
    <?php
    $connection = mysql_connect ("localhost", "root");

    if (!$connection)
    {
    die ('Could not connect: ' . mysql_error());
    }

    if (mysql_query("CREATE DATABASE cms",$connection))
    {
    print "Database create!";
    }
    else
    {
    print "Couldn't create database: " . mysql_error();
    }

    mysql_select_db("cms", $connection);
    $sql = "CREATE TABLE Users
    (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name varchar(40),
    pass varchar (28),
    mail varchar (30),
    sex varchar (10),
    level varchar (1),
    location varchar (20),
    banned varchar (1),
    pending varchar (1),
    growth varchar (3),
    Age int
    )";

    $tql = "CREATE TABLE news
    (
    title varchar(30),
    content varchar(200),
    time varchar (20),
    puser varchar (40),
    cate varchar (50),
    Age int
    )";

    mysql_query($sql,$connection);
    mysql_query($tql,$connection);

    ?>
    </body>
    </html>


  • Consiglio Direttivo

    Ciao max0005 e benvenuto nel Forum GT. 🙂

    La password inserita nella tabella users è stata hashata (sha1) prima di inserirla? 🙂


  • Super User

    Intendi quella inserita nella registrazione? Si, questo è il file che elabora i dati inseriti dagli utenti per la registrazione e li inserisce nel mysql:

    <html>
    <head>
    </head>
    <body>
    <?php
    $connection = mysql_connect ("localhost", "root");
    if (!$connection)
    {
    die ('Could not connect: ' . mysql_error());
    }
    
    mysql_select_db ("cms", $connection);
    
    $name=$_POST["name"];
    $password=$_POST["pass"];
    $epass=sha1($password);
    $mail=$_POST["mail"];
    $sex=$_POST["sex"];
    $age=$_POST["age"];
    $location=$_POST["location"];
    $level=1;
    $pending=0;
    $banned=0;
    
    
    
    
    
    
    
    $sql="INSERT INTO users (name, pass, mail, sex, level, location, banned, pending, growth)
    VALUES
    ('$name','$epass','$mail','$sex', '$level', '$location', '$banned', '$pending', '$age')";
    
    if (!mysql_query($sql,$connection))
      {
      die('Error: ' . mysql_error());
      }
    echo "1 record added";
    ?>
    </body>
    </html>
    
    

  • Consiglio Direttivo

    Giusto, mi era sfuggito, il problema è nella dimensione del campo:

    pass varchar (28),Sha1 crea un numero esadecimale di 40 caratteri pertanto lo salva troncato. 😉

    Ti basterà variare la dimensione a 40 per risolvere, ovviamente quelle già inserite andranno modificate. 😉


  • Super User

    Samyorn grazie mille!!! Probabilmente ci sarei arrivato fra 3 mesi e dopo innumerevoli notti corte. :rollo: Ora funziona, grazie di_nuovo per l'aiuto. :):)


  • Consiglio Direttivo

    Di nulla. 🙂

    @max0005 said:

    ... fra 3 mesi e dopo innumerevoli notti corte.
    Come ti capisco. 😄

    Alla prossima.
    :ciauz: