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.