Home » PHP MySQL, PHPMyAdmin -guide » script di login in un sito » script di login in un sito
 

Sei rimasto soddisfatto...

Enter Amount:

script di login in un sito PDF Stampa E-mail
Scritto da Administrator   
Venerdì 28 Marzo 2008 19:07
Creiamo un sistema di login nel nostro sito con la programmazione in php

Il sistema di autenticazione sfrutta il meccanismo di autenticazione fornito da Apache, che visualizza una finestra di login quando si tenta di avere accesso a pagine protette. Il tutto si compone di n°4 files denominati come segue:
index.php, login.php, benvenuto.php ed infine logout.php.(Come vedete script in php, anche contenuti all'interno di codice html).
 
Dalla pagina index.php l'utente carica la pagina login.php, la quale controlla le nostre credenziali e ci fornisce un identificativo di sessione e ci invia se queste sono corrette alla pagina benvenuto.php, dalla quale possiamo fare il logout, tramite la pagina logout.php, la quale elimina l'identificativo di sessione affidatoci e ci reindirizza alla pagina index.php, oppure si può iniziare a navigare nel il sito. La pagina benvenuto.php è una qualunque pagina del nostro sito, anche tutte...

creiamo un database di nome time, e all'interno del database creiamo la tabella users composta da questi 3 campi:

id MEDIUMINT NOT NULL AUTO_INCREMENT,
name TEXT,
password TEXT,
PRIMARY KEY(id)

per farlo possiamo vedere la guida su come creare una tabella con phpMyAdmin.
Poi sempre con phpMyAdmin clicchiamo sulla tabella a sinistra users se non lo abbiamo già fatto, in questo modo compare nella pagina centrale un menu in alto premiamo su insert, compaiono così i campi della nostra tabella, inseriamo dentro le colonna VALUE i valori di esempio, name:bill, password:ciao, a password selezioniamo il menu a discesa FUCTION e selezioniamo MD5, per protezione...poi premiamo in basso GO. Se andiamo a vedere i dati nella nostra tabella attraverso i tasto BROWSE noteremo che contengono i nuovi valori con codifica MD5 per la password.

Creata la tabella users del database time passiamo a scrivere i files:

questo è un esempio del codice della pagina index.php, da dove sceglieremo di loggarci:

<html>
<head><title>Login</title></head>
<body>
<?php if ($_GET['bad'] == 1 ) { ?>
<font color="red"> Nome utente o password errati<br/></font>
<?php } ?>
<form action="login.php" method="post">
<table width="300" border="0" cellspacing="0" cellpadding="2">
<tr><td>Nome utente:</td><td><input type="text" name="user" /></td></tr>
<tr><td>Password:</td><td><input type="text" name="password" /></td></tr>
<tr><td colspan="2"><center><input type="submit" value="login" /></center></td></tr>
</table>
</form>
</body>
</html>

Il seguente codice o script php invece appartiene al file login.php

<?php
require_once("DB.php");
$dsn = 'mysql://root:password@localhost/time';
$db =& DB::Connect( $dsn, array());
if (PEAR::isError($db)) { die($db->getMessage()); }


$res = $db->query("SELECT id FROM users WHERE name=? AND password=MD5(?)",
array($_POST['user'],$_POST['password']));

$row = array(null);
if ($res != null)
$res->fetchInto($row);

if ($row[0] != null)
{
session_start();
$_SESSION['user'] = $row[0];
header("Location: benvenuto.php");
}
else
{
header("Location: indexale.php?bad=1");
}
?>

il codice o script php che segue costituisce il file benvenuto.php

<?php
session_start();
if ($_SESSION['user'] == null || $_SESSION['user'] < 1)
{
header("Location: indexale.php");
exit;
}

require_once("DB.php");
$dsn = 'mysql://root:password@localhost/time';
$db =& DB::Connect( $dsn, array());
if (PEAR::isError($db)) { die($db->getMessage()); }

$res = $db->query("SELECT name FROM users WHERE id=?",
array($_SESSION['user']));
$res->fetchInto($row);
?>
<html>
<head><title>benvenuto</title></head>
<body>
Benvenuto <?php echo($row[0]);?><br/><br/>
<a href="/logout.php">Logout</a>
</body>
</html>

il seguente codice costituisce il file logout.php

<?php
session_destroy();
header("Location: index1.php");
?>

Copiamo tutti i files dentro la directory principale ricordandoci di cambiare root e password impostando quelle per il nostro database. inoltre si ricorda che per poter utilizzare questi script serve la libreria DB.php.

Sono graditi correzioni al codice, per chiunque noti anomalie.
Ultimo aggiornamento ( Mercoledì 28 Maggio 2008 22:21 )