Yo tengo un código parecido pero no logro hacerlo funcionar, a ver si alguien puede echarle un vistazo y descubrir qué estoy haciendo mal.
Tengo mi página index.php, en la que quiero mostrar un formulario de inicio de sesión para los usuarios no registrados, y un mensaje de bienvenida al iniciar sesión.
Código PHP:
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Index</title>
<link rel="stylesheet" href="global.css" type="text/css" />
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>
<body id="container">
<?php
include("conexion.php");
if(empty($_SESSION['login']))
{
echo "<form action='login.php' method='post'>";
echo "<table class='tabla_login'>";
echo "<tr>";
echo "<td>Usuario:</td>";
echo "<td><input type='text' name='user' size='20' maxlength='20' /></td>";
echo "<td>Contraseña:</td>";
echo "<td><input type='password' name='password' size='20' maxlength='20' /></td>";
echo "<td><input class='button' type='submit' name='submit' value='Entrar' /></td>";
echo "</tr>";
echo "</table>";
echo "</form>";
}
else
{
echo "Bienvenido, ".$user.".";
}
?>
Acá sigue más código html...
Y tengo la página login.php que procesa la información:
Código PHP:
<?php
ob_start();
include("conexion.php");
$user=$_POST['user'];
$password=$_POST['password'];
$user=stripslashes($user);
$password=stripslashes($password);
$user=mysql_real_escape_string($user);
$password=mysql_real_escape_string($password);
$sql="SELECT * FROM usuarios WHERE user='$user' AND password='$password'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1)
{
$_SESSION['login']='1';
session_register("password");
header("location:index.php");
}
else
{
$_SESSION['login']='';
echo "Usuario y/o contraseña inválidos.";
}
ob_end_flush();
?>
Lo que pasa ahora es que al iniciar sesión (con un usuario y contraseña válidos, claro) me regresa a index.php pero sigue mostrando los campos para iniciar sesión y no aparece la bienvenida por ningún lado. A ver si alguien me da una pista.
Gracias.