Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con redireccionamientos de un sistema de usuarios

Estas en el tema de Problema con redireccionamientos de un sistema de usuarios en el foro de PHP en Foros del Web. Hola a todos. Tengo un problema con un sistema de usuarios, y es que al acceder me dice que no se ha podido abrir la ...
  #1 (permalink)  
Antiguo 06/02/2013, 15:45
 
Fecha de Ingreso: septiembre-2011
Mensajes: 60
Antigüedad: 12 años, 7 meses
Puntos: 1
Pregunta Problema con redireccionamientos de un sistema de usuarios

Hola a todos. Tengo un problema con un sistema de usuarios, y es que al acceder me dice que no se ha podido abrir la página porque se ha producido demasiados redireccionamientos. El caso es que reviso el código y parece estar bien.

Pueden ayudarme a detectar el problema?
Tengo un index, donde si no está logeado, te redirecciona a "login". Ese redireccionamiento lo tengo puesto en la cabecera para que funcione en toda la página. Este es el código:
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//ES" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<title>Five</title>
<link href="/style.css" type="text/css" rel="stylesheet">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<meta name="viewport" content="width=1150px" />
<script src='models/funcs.js' type='text/javascript'></script>
</head>
<body>
<?php
include('/login/config.php');
if($_SESSION["logeado"] != "SI"){
header ("Location: /login/");
exit;
}
?>
<div class="supbar">
	<img src="images/logo.png" width="100px" height="20px" style="margin: 10px 0 0 10px"></img>
</div> 
El código de login es:
Código HTML:
<?php
include('config.php');
if(isset($_SESSION["logeado"]) == "SI"){
header ("Location: /");
}
?> <form name="form1" method="post" action="entrar.php"><br>
<span style="color:#000; font-size:12px;">Email</span><br>
   <input name="email" type="email" id="email"><br><br>
<span style="color:#000; font-size:12px;">Contrase&ntilde;a</span><br>
    <input name="password" type="password" id="password"><br><br>
    <input type="checkbox" name="recordar" id="recordar" value="1">
<span style="color:#000; font-size:12px;">Recordar</span><br />
<br>
<span style="font-size: 12px; color: #000"><a href="recuperar.php">Recuperar contrase&ntilde;a</a> | <a href="registrarse.php">Registrarse</a><br />
</span><br />
     <input type="submit" name="Submit" value="Entrar">
     <br />
</form> 
El código de acceso al introducir los datos es:
Código PHP:
<?php
// Configura los datos de tu cuenta
include('config.php');

// Conectar a la base de datos
mysql_connect ($dbhost$dbusername$dbuserpass);
mysql_select_db($dbname) or die('No se puede seleccionar la base de datos');

if (isset(
$_POST['email'])) {
//Comprobacion del envio del email y password
$email=htmlentities($_POST['email']);
$password=md5($_POST['password']);
if (
$password==NULL) {
echo 
"No a introducido una contrasenia";
exit();
}else{
$query mysql_query("SELECT email,password FROM usuarios WHERE email = '$email'") or die(mysql_error());
$data mysql_fetch_array($query);
if(
$data['password'] != $password) {
echo 
"No a introducido una contrasenia correcta";
exit();
}else{
$query mysql_query("SELECT email,password FROM usuarios WHERE email = '$email'") or die(mysql_error());
$row mysql_fetch_array($query);
$email2 $row['email'];
$_SESSION["s_email"] = $row['email'];
$_SESSION["logeado"] = "SI";

/* Si aceptamos recordar los datos */
if($_POST['recordar']=="1"){

    if (isset(
$HTTP_X_FORWARDED_FOR) == "")
    {
        
$ip getenv('REMOTE_ADDR');
    }
    else
    {
        
$ip getenv('HTTP_X_FORWARDED_FOR');
    }
    
$id_extreme md5(uniqid(rand(), true));
    
$id_extreme2 $email2."%".$id_extreme."%".$ip;
    
setCookie('id_extreme',$id_extreme2,time() +3600*24*365,'/');
    
$query mysql_query("UPDATE usuarios SET id_extreme='".$id_extreme."' WHERE email='".$email2."'") or die(mysql_error());
}

header ("Location: /index.php");
}
}
}
?>
Pueden ayudarme? Muchas gracias
  #2 (permalink)  
Antiguo 06/02/2013, 16:19
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con redireccionamientos de un sistema de usuarios

En la cabecera tienes esto y debería esta antes del HTML para evitarte problemas:

Código PHP:
Ver original
  1. <?php
  2. include('/login/config.php');
  3. if($_SESSION["logeado"] != "SI"){
  4. header ("Location: /login/");
  5. }

Ahora, la comparación no es correcta, deberías tener algo como:
Código PHP:
Ver original
  1. // Para saber si se inició la sesión:
  2. if(isset($_SESSION["logeado"]) && $_SESSION["logeado"] == 'SI') {
  3.     // OK, Hay una sesión válida
  4. }
  5.  
  6. // Para saber si no ha iniciado sesión:
  7. if( !isset($_SESSION["logeado"]) || $_SESSION["logeado"] != 'SI') {
  8.     // No ha iniciado sesión
  9. }
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 06/02/2013, 16:35
 
Fecha de Ingreso: septiembre-2011
Mensajes: 60
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Problema con redireccionamientos de un sistema de usuarios

Muchas gracias por contestar. He implementado el código y me ha quedado así:

login:
Código HTML:
<?php
include('config.php');
// Para saber si no ha iniciado sesión:
if(isset($_SESSION["logeado"]) && $_SESSION["logeado"] == 'SI') {
    header ("Location: /");
}
?>
<form name="form1" method="post" action="entrar.php"><br>
<span style="color:#000; font-size:12px;">Email</span><br>
   <input name="email" type="email" id="email"><br><br>
<span style="color:#000; font-size:12px;">Contrase&ntilde;a</span><br>
    <input name="password" type="password" id="password"><br><br>
    <input type="checkbox" name="recordar" id="recordar" value="1">
<span style="color:#000; font-size:12px;">Recordar</span><br />
<br>
<span style="font-size: 12px; color: #000"><a href="recuperar.php">Recuperar contrase&ntilde;a</a> | <a href="registrarse.php">Registrarse</a><br />
</span><br />
     <input type="submit" name="Submit" value="Entrar">
     <br />
</form> 
Y el Header me quedó así:
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//ES" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
include('/login/config.php');
// Para saber si no ha iniciado sesión:
if( !isset($_SESSION["logeado"]) || $_SESSION["logeado"] != 'SI') {
    header ("Location: /login/");
    exit;
}
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<title>Five</title>
<link href="/style.css" type="text/css" rel="stylesheet">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<meta name="viewport" content="width=1150px" />
<script src='models/funcs.js' type='text/javascript'></script>
</head>
<body>
<div class="supbar">
	<img src="images/logo.png" width="100px" height="20px" style="margin: 10px 0 0 10px"></img>
</div> 
Y me sigue ocurriendo exactamente lo mismo.
Qué puede ser?
Gracias!
  #4 (permalink)  
Antiguo 06/02/2013, 16:56
 
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 487
Antigüedad: 12 años, 8 meses
Puntos: 31
Respuesta: Problema con redireccionamientos de un sistema de usuarios

Saludos, le explico que tienes esto

Código PHP:
Ver original
  1. <?php
  2. include('config.php');
  3. // Para saber si no ha iniciado sesión:
  4. if(isset($_SESSION["logeado"]) && $_SESSION["logeado"] == 'SI') {
  5.     header ("Location: /");
  6. }
  7. ?>


donde la ruta del header ("Location: /")
no esta definida
agregar algo similar
header ("Location: /index.php");

tambien te recuerdo utilizar ob_start(): al inicio

Saludos,
__________________
El talento se educa en la KARMA y el carácter en la tempestad.
Gabriel De Los Santos
  #5 (permalink)  
Antiguo 06/02/2013, 17:27
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con redireccionamientos de un sistema de usuarios

Ese header lo utilizas también para login?... supongo que habrá que cambiar de lugar la comprobación de sesión iniciada.
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 07/02/2013, 05:01
 
Fecha de Ingreso: septiembre-2011
Mensajes: 60
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Problema con redireccionamientos de un sistema de usuarios

Ok, ya he detectado el error, y es que puse en el header /login, y al tenerlo en un localhost, la dirección era /Library/WebServer/Documents/includes/login

Con razón me daba error.
Mchísimas gracias por vuestra ayuda! Gracias a vosotros he podido optimizar el código.

Tengo otra dudilla de menor importancia que es si posible utilizar una dirección de redireccionamiento en el header, que lo que haga, en lugar de (como la que he puesto) ir a la raíz e ir buscando el archivo, volver al directorio anterior para buscar la carpeta que quiero?

No se si me he explicado bien..

Saludos!!

Última edición por serg_prog; 07/02/2013 a las 06:14

Etiquetas: redireccionamiento, sistema, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:41.