Este es el script que utilizo para autenticar usuarios y registra variables:
Archivo login.php
Código PHP:
<?
session_start();
// Conectando a la base de datos
$host = 'localhost';
$user = 'user';
$pass = 'pass';
$db = 'base_datos';
// Estableciendo form
if(!$_POST) {
?>
<html>
<head>
<title>Formulario de prueba Login por IP</title>
<style type="text/css">
<!--
body { margin: 0px 0px 0px 0px; font-family: Tahoma; font-size: 11px; }
-->
</style>
</head>
<body>
<form action="<?=$_SERVER['PHP_SELF']?>" name="frm" method="post">
<input name="username" type="text" size="20"><br>
<input name="password" type="password" size="20"><br>
<input type="submit" value="Enviar">
</form>
</body>
</html>
<?
} else {
// Trayendo variables para procesar
$username = $_POST['username'];
$password = $_POST['password'];
// Conectando a la Base de datos
mysql_connect($host,$user,$pass) or die('MySQL ha dicho: <br>'.mysql_error());
$stmp = ("SELECT * FROM login WHERE username='".$username."'");
$lg1 = mysql_db_query($db,$stmp) or die('MySQL ha dicho: <br>'.mysql_error());
$count = mysql_num_rows($lg1);
if($count == 0) {
die('Error: este usuario no existe!<br><a href="javascript:history.back()">Haga clic aqui para volver atras</a>');
} else {
$m = mysql_fetch_array($lg1);
if($m['password'] !== $password) {
die('Error: contraseña incorrecta!<br><a href="javascript:history.back()">Haga clic aqui para volver atras</a>');
exit;
}
// Si todo esta bien, creamos la sesion
$tSession['user'] = $m['username'];
$tSession['pass'] = md5($m['password']);
$tSession['id'] = $m['id'];
session_register('tSession');
// Enviamos mensaje de procesado
echo 'Su sesión ya se ha iniciado correctamente<br>';
echo 'Datos de la sesión: <br><br>';
echo 'Usuario: '.$tSession['user'].'<br>';
echo 'Identificador de Base de Datos: '.$tSession['id'].'<br><br>';
echo '<a href="'.$_SERVER['PHP_SELF'].'?s=logout">Para cerrar la sesión haga clic aquí</a>';
}
}
if($s == 'logout') {
session_destroy();
echo 'Sus cookies han sido destruidas.';
}
?>
Pregunta siguiente: Algo se encuentra bien en este script???? P.D.: Teniendo en cuenta que en cada archivo que requiera autenticación, le coloco: Código PHP:
<?
session_start();
if(isset(tSession)) {
echo 'Su sesión esta iniciada';
} else {
header('Location: login.php');
}
?>