Sistema di LogIn "dati errati"??

  • Creatore Discussione Creatore Discussione Daver
  • Data di inizio Data di inizio

Daver

Nuovo Utente
19 Ago 2011
3
0
0
Salve a tutti, sono nuovo del forum, cercavo aiuto e sono approdato quì dove più di qualche volta ho spulciato in giro.
Io ed un mio amico abbiamo deciso di intraprendere un progettino, una gdr online, quindi munito di tutte le risorse online che ho trovato inizio a giocare un pò col codice cercando di creare il nostro sito/gioco. Sono partito dal sistema di registrazione che mi sembrava il più semplice per ora, tutto ok, i dati arrivano correttamente al DB locale (uso wamp) la password viene criptata in MD5 prima di essere inviata e ok. Cerco di creare il sistema di log in, gli unici due risultati che sono riuscito ad ottenere sono un header che parte ignorando il mio if (mah avrò sbagliato chissà dove) e ora invece l'header sembra ok ma mi segnala sempre che i dati immessi sono sbagliati, eppure sono quelli giusti, compresa criptazione con MD5.
Provo ad allegarvi Struttura del DB, codice del form e motore per il log in, magari riuscite almeno a spiegarmi cosa c'è che non va.

DB
utenti
id INT(4) NO NULL AUTOINCREMENT
nome VARCHAR(35)
mail VARCHAT(35)
pass VARCHAR(65)
sesso VARCHAR(1)
razza INT(2)

Form di invio login_form.php
PHP:
<html>
<head>
<title>LogIn</title>
<link rel="stylesheet" type="text/css" href="stile.css">
</head>
<body>
    <form name="login" method="post" action="login.php">
        <p>Username<input type="text" name="username" id="username"><br />
        Password<input type="password" name="password" id="password"></p>
        <?
        //Ricordami
        //<input type="checkbox" name="ricordami[]" valure="ON" class="check">
        ?>
        <input type="submit" value="Login" name="submi" id="submit" class="button">
        <input type="reset" valute="Cancella" name="reset" id="reset" class="button">
    </form>
</body>
</html>

Motore autenticazione login.php
PHP:
<html>
<head>
<title>LogIn</title>
<link rel="stylesheet" type="text/css" href="stile.css">
</head>
<body>
    
    <?php
    //collegamento al database
    include 'config.php';
    //raccogliamo i dati
    $user = $_POST['username'];
    $pass = $_POST['password'];
    //protezione dal MySQL injection
    $user = stripslashes($user);
    $user = mysql_real_escape_string($user);
    $pass = stripslashes($pass);
    $pass = mysql_real_escape_string($pass);
    //crypto la password
    $epass=MD5($pass);
    //verifico i dati immessi
    $sql = "SELECT * FROM utenti WHERE nome = '$user' AND pass = '$epass'";
    $result = mysql_query($sql);
    //controlliamo se l'esito della verifica è positivo
    $count=mysql_num_rows($result);
    if($count==1){
    //creiamo le session
    session_register("myusername");
    session_register("mypassword");
    header("location:login_success.php");
    }else{
        echo "<h8>Dati Errati</h8>";
    }
    ?>
</body>
</html>

Scusate in anticipo il post mastodontico :crying:
P.S. il ricordami nel login_form.php nn è un errore, è un appunto per un eventuale modo per mantenere la sessione aperta tramite cookies.
 
Ultima modifica:
Probabilmete l'errore è in login_success.php, bisognerebbe vedere cosa fai li.

session_register() penso sia deprecata

meglio usare

$_SESSION['myusername'] = valore che vuoi assegnargli
 
Grazie del consiglio su $_SESSION.
Non credo il problema sia su login_succes.php dato che l'header non parte proprio. Qualsiasi dato inserisco, corretto o non, come risultato ottengo solo la stampa a video di Dati Errati
 
Ho provato il tuo codice sulla mia tabella e fino a login_success.php ci arrivo,
per questo ho detto che il problema poteva essere dopo

A questo punto mi viene da pensare che la query non vada mai a buon fine per un errore di sintassi per esempio.

Hai provato a stampare la query che produci e ad incollarla direttamente nel sql di phpmyadmin?

PHP:
$sql = "SELECT * FROM utenti WHERE nome = '$user' AND pass = '$epass'";
echo $sql;
die();
 
ho provato a stampare ora la query con il login tagliato dopo il $sql e come risultato mi da
"SELECT * FROM utenti WHERE nome = 'user' AND pass = '202cb962ac59075b964b07152d234b70'"
Ora il problema è che la mia pass di prova è 123 e in MD5 sul database mi risulta diversa.
Allora deve essere un problema con la registrazione XD ora provo a darci un occhiata ^_^
 

Discussioni simili