Salve a tutti,
avendo la necessita di creare una pagina di login (USERNAME e PASSWORD) con effetto Jquery, sul web ho trovato uno script che fa al caso mio.
FORM HTML
codice:<form method="post" id="modulo_login" /> <table border="0"> <tr><td>Username:</td><td><input name="username" type="text" id="username" maxlength="10" style="width: 250px"/></td></tr> <tr><td>Password:</td><td><input name="password" type="password" id="password" maxlength="10" style="width: 250px"/></td></tr> <tr><td><input type="submit" id="submit" value="Entra" /></td><td><div id="messaggio"></div></td></tr> </table> </form>
CSS
codice:.corretto, .errore { padding: 3px; text-align: center; } .corretto, .errore { width: auto; font-weight: bold; border: 1px solid #349534; background: #C9FFCA; color: #008000; } .errore { border: 1px solid #CC0000; background: #F7CBCA; color: #CC0000; }
Javascript
codice:<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $("#modulo_login").submit(function() { // passo i dati (via POST) al file PHP che effettua le verifiche $.post("login.php", { username: $('#username').val(), password: $('#password').val(), rand: Math.random() }, function(risposta) { // se i dati sono corretti... if (risposta == 1) { // applico l'effetto allo span con id "messaggio" $("#messaggio").fadeTo(200, 0.1, function() { // per prima cosa mostro, con effetto fade, un messaggio di attesa $(this).removeClass().addClass('corretto').text('Login in corso...').fadeTo(900, 1, function() { // al termine effettuo il redirect alla pagina privata document.location = 'area-privata.php'; }); }); // se, invece, i dati non sono corretti... }else{ // stampo un messaggio di errore $("#messaggio").fadeTo(200, 0.1, function() { $(this).removeClass().addClass('errore').text('Dati di login non corretti!').fadeTo(900,1); }); } }); // evito il submit del form (che deve essere gestito solo dalla funzione Javascript) return false; }); </script>
PHP
Codice PHP:<?php
// recupero i valori passati via POST
$username = htmlspecialchars($_POST['username'],ENT_QUOTES);
$password = md5($_POST['password']);
// mi connetto al MySQL
define ('DB_USER', 'root');
define ('DB_PASS', ' ');
define ('DB_HOST', 'localhost');
define ('DB_NAME', 'prova');
$dbconn = mysql_connect(DB_HOST, DB_USER, DB_PASS);
mysql_select_db(DB_NAME, $dbconn);
// effettuo la query per verificare la correttezza del login
$result = mysql_query("SELECT * FROM utenti WHERE username = '" . $username . "'");
// verifico che ci siano dei risltati...
if (mysql_num_rows($result) > 0)
{
$row = mysql_fetch_assoc($result);
// effettuo la comparazione della password digitata con quella salvata nel DB
if (strcmp($row['password'], $password) == 0) {
// in caso di successo creo la sesione
$_SESSION['userid'] = $row['id'];
// e stampo 1 (che identifica il successo)
echo 1;
}else{
// in caso di comparazione non riuscita stampo zero
else echo 0;
}
}else{
// se non ci sono risultati stampo zero
echo 0;
}
?>
Poi ho creato un database, una tabella al suo interno
id - int(20), primary key, auto increment
username - varchar(100)
password - varchar(100)
e ho inserito un valore a ID, username e password.
(1, demo, demo)
Il tutto con PHPMyadmin.
Infine ho modificato lo script PHP, inserendo i miei dati.
Ora, provando ad effettuare il login digitando i dati appena inseriti nella tabella nei campi del form, ricevo sempre il messaggio:
Dati di login non corretti.
Sbaglio qualcosa?
Spero in un vostro aiuto.
Grazie.

Rispondi quotando

