Bueno, estoy armando de cero un sistema de usuarios bien simplon para practicar ya que recién estoy empezando.
Ahora que ya hice, casi de manera de boceto, el sistema de registro, logueo y logout, estoy probando el tema de restringir el acceso a determinadas páginas. Para ello cree un archivo, que pienso usar como include cada vez que quiero restringir una web.
Pero al incluirlo en una página, noto que no la restringe, por lo que en mi sistema de logueo tuve que haber echo cosas mal con las sesiones y no veo qué, aunque tengo unas pistas... Les pongo los códigos en orden del sistema de logueo:
conectar.php (incluido en casi todas las páginas de la web)
Código PHP:
<?php
$conexion = mysql_connect("localhost", "root", "pw");
mysql_select_db("basedatos", $conexion);
if (isset($_SESSION['logueado']) && isset($_SESSION['usuario']))
{
die();
} else {
session_start();
}
?>
Código PHP:
<html><body><FORM ACTION="log_ver.php" METHOD="post">
Usuario: <INPUT TYPE="text" NAME="logus" SIZE="20" MAXLENGHT="20"> <BR>
Contraseña: <INPUT TYPE="password" NAME="logpw" SIZE="20" MAXLENGHT="20"> <BR>
<INPUT TYPE="submit" CLASS="boton" VALUE="Entrar">
</FORM></body></html>
Código PHP:
<?php
include 'conectar.php';
$logus=$_POST['logus'];
$logpw=$_POST['logpw'];
if ($_POST['logus'] != "" && $_POST['logpw'] != "")
{
$coincide = mysql_query("SELECT id FROM usuarios WHERE nick LIKE '$logus'");
if ($fila = mysql_fetch_array($coincide))
{
$coincide2 = mysql_query("SELECT id FROM usuarios WHERE pass LIKE '$logpw'");
if ($fila2 = mysql_fetch_array($coincide2))
{
$_SESSION['logueado'] = "si";
$_SESSION['usuario'] = "$logus";
header ("Location: log_ok.php");
} else {
echo "Contraseña incorrecta"; // Falta retorno a login usando Javasc
}
} else {
echo "El usuario no existe"; // Falta retorno a login usando Javasc
}
} else {
echo "Debe llenar el formulario para continuar"; // Falta retorno a login usando Javasc
}
?>
Luego me deslogueo yendo al archivo log_out.php
Código PHP:
<?php
session_destroy();
header ("Location: ..\index.php");
?>
Código PHP:
<?php
//Restringe el acceso a la sección que lo incluya. Se debe estar logueado para entrar.
if ($_SESSION['logueado'] = 'si')
{
echo "Hola ¡Gracias por visitarnos!";
// falta redirreccionar
} else {
header ("Location: login.php");
}
?>
Gracias desde ya por su ayuda.