Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/08/2011, 21:11
Trapar
 
Fecha de Ingreso: julio-2009
Mensajes: 77
Antigüedad: 15 años, 4 meses
Puntos: 5
sistema de logueo basico, no me restringe acceso

Hola.

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();
}

?>
login.php formulario de login
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
log_ver.php procesa el formulario
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
}

?>
Bueno, hasta acá estaría logueado.
Luego me deslogueo yendo al archivo log_out.php

Código PHP:
<?php

session_destroy
();
header ("Location: ..\index.php");

?>
Y entro a una página a la que quiero restringirle el acceso y que el mismo sea solo para usuarios registrados. Para ello hago un include en ella al archivo que pongo a continuación (que dicho sea de paso, es el unico archivo al que no le pude poner como include el conectar.php ya que si lo hago me dice que va a ignorar la session que se inicia en el ya que hay una que ya se encuentra iniciada...)

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");
}

?>
Yo creo que hay cosas mal en log_ver.php en la parte en que creo 2 variables de session y le asigno valores... me saltee algo importante por ahí, mi experiencia con sesiones es CERO..
Gracias desde ya por su ayuda.

Última edición por Trapar; 11/08/2011 a las 22:03