ridotto all'osso, sicuramente migliorabile, ma funziona
Codice PHP:
<?php
// login.php
// Connessione al database: presuppone la presenza di una tabella users con un campo nick e un campo password
$db_host = "localhost";
$db_name = "db";
$db_user = "dbuser";
$db_pwd = "dbpassword";
$conn = mysql_connect($db_host,$db_user,$db_pwd)or die("Connessione al server MySQL fallita. L'errore è ".mysql_error());
mysql_select_db($db_name)or die("Connessione al database fallita. L'errore è ".mysql_error());
$nick = isset($_POST['nick']) ? $_POST['nick'] : ''; // Leggo il nome utente inserito nel form
$pwd = isset ($_POST['pwd']) ? $_POST['pwd'] : ''; // Leggo la password inserita nel form
$pwd_md5 = isset ($pwd) ? md5($pwd) : ''; // Cripto la password
$cookienick = isset ($_COOKIE['nick']) ? $_COOKIE['nick'] : ''; // Leggo il nome utente contenuto nel cookie, se esiste
$cookiepwd_md5 = isset ($_COOKIE['pwd_md5']) ? $_COOKIE['pwd_md5'] : ''; // Leggo la password criptata contenuta nel cookie, se esiste
if ($cookienick != ""){ // L'utente è già loggato? 1
echo "Sei loggato come $cookienick"; // 1Y Se sì, visualizzane il nome
?>
- [url="logout.php"]esci[/url]
<?php
}
else { // 1N Se no, esegui il login
if (($nick!="") && ($pwd!="")) { // Sono stati inseriti utente e password? 2
$q_admin=mysql_query("SELECT * FROM users WHERE nick='$nick' AND password='$pwd_md5'"); // 2Y Se sì, confrontali con quelli del db
$q_admin_count=mysql_num_rows($q_admin);
if ($q_admin_count == 1) { // E' stata trovata una corrispondenza? 3
setcookie("nick", $nick, time()+3600); // 3Y Se sì, memorizza il nick in un cookie...
setcookie("pwd_md5", $pwd_md5, time()+3600); // ...e la password in un altro
echo "Benvenuto, " . $nick // Visualizza l'avvenuto login
}
else { // 3N Se no, visualizza un messaggio di errore e invita l'utente a rifare il login
?>
Utente o password errati, [url="login.php"]riprova[/url]
<?php
}
}
else { // 2N Se no, chiedi all'utente di inserirli
?>
<h2>Login utente</h2>
<form action="login.php" method="post">
<table>
<tr>
<td>
Utente
</td>
<td>
<input type="text" name="nick" />
</td>
</tr>
<tr>
<td>
Password
</td>
<td>
<input type="password" name="pwd" />
</td>
</tr>
<tr>
<td>
<input type="submit" name="formsend" value="Entra" />
</td>
</tr>
</table>
</form>
<?
}
}
mysql_close($conn); // Chiudi la connessione al db
?>
questo per uscire:
Codice PHP:
<?php
// logout.php
$cookienick = $_COOKIE["nick"];
if ($cookienick != "") {
setcookie("nick", "", time()-3600);
setcookie("pwd_md5", "", time()-3600);
echo "Logout effettuato con successo";
}
else {
echo "Non sei loggato!";
}
?>