[PHP] Un sistema di Login, Con sistema multiutente

« Older   Newer »
  Share  
°Dark Anubis°
view post Posted on 14/2/2009, 17:29




Dunque, in questo tutorial voglio insegnarvi a creare un sistema grazie al quale potrete proteggere le vostre pagine. Questo tutorial utilizza le sessioni, più sicure dei cookie, e difficilmente bypassabili. Ecco come fare.

Per prima cosa abbiamo bisogno di un file HTML che visualizzi la schermata del login, ecco il codice:

HTML
<html>
<head>
<title>Autenticazione</title>
</head>
<body>
<form name="login" action="login.php" method="POST">
Username: <input type="text" name="username" /> <br /> <br />
Password: <input type="password" name="password" /> <br /> <br />
<input type="submit" value="Autenticati" />
</form>
</body>
</html>


Il risultato è semplicissimo: un form in cui inserire username e password, che punta al file login.php, in cui ci sarà il codice madre.

Ecco il suo contenuto:

CODICE
<?php
session_start();

$members = array(
      "username" => "password"
);

$username = isset($_POST['username']) ? trim($_POST['username']) : "";
$password = isset($_POST['password']) ? trim($_POST['password']) : "";

if($username == "" || $password == "")
      die("Compila tutti i campi.");

if(isset($members[$username]) && $members[$username] == $password)
{
      $_SESSION['auth'] = $username;
      header("Location:protected.php");
}
else
{
      die("Combinazione username/password errata.");
}
?>


Semplicemente questo codice controlla che i campi siano stati compilati e che l'utente inserito esista e abbia password uguale a quella inserita. In caso di successo imposta la sessione auth col nome dello username e reindirizza alla pagine protected.php.
Per aggiungere nuovi utenti dovete cambiare la variabile $members in questo modo:

CODICE
$members = array(
      "mario" => "rossi",
      "pinco" => "pallino"
);


In questo modo ci saranno due utenti: uno con username mario e password rossi, ed uno con username pinco e password pallino.

Ora vediamo il codice della pagina protetta:

CODICE
<?php
session_start();

if(!isset($_SESSION['auth']))
      die("Non sei autorizzato ad accedere a questa pagina.");

echo "Benvenuto <b>{$_SESSION['auth']}</b>!";
?>


E' semplice: se la sessione auth non è settata visualizza un messaggio di errore, altrimenti da il benvenuto all'utente.

Si chiude qui questa base di tutorial su come creare un sistema di autenticazione, ovviamente si possono apportare molte modifiche, come ad esempio recuperare i dati da un database oppure far rimanere l'utente loggato anche dopo la chiusura del browser, ma questo lo lascio a voi!
 
Top
0 replies since 14/2/2009, 17:29   2032 views
  Share