Foros del Web » Programando para Internet » PHP »

Redirección de página

Estas en el tema de Redirección de página en el foro de PHP en Foros del Web. Hola! Qué tal? hice un sistema de autentificación basado en una session, y a la que valido con un script de seguridad al principio de ...
  #1 (permalink)  
Antiguo 23/06/2010, 19:03
Avatar de kmzero  
Fecha de Ingreso: octubre-2008
Mensajes: 43
Antigüedad: 15 años, 6 meses
Puntos: 0
Redirección de página

Hola! Qué tal?
hice un sistema de autentificación basado en una session, y a la que valido con un script de seguridad al principio de cada página cifrada. Todo funcionaba bien, pero de pronto, Mozilla me advierte que "la página está redirigiendo de una manera que podría ser interminable" y explorer, simplemente (como es habitual) se tilda.
Aquí va el código:
cada página tiene el
Código PHP:
<?php
include("patrol.php");
?>
LUego, este es el código del include
Código PHP:
<?php

session_start
();

//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado"] != "SI") {

   
 
//si no existe, envio a la página de autentificacion
    
header("Location: login.php");
    
    exit();
}


?>
Por si aclara en algo, les muestro la validación del usuario:
Código PHP:
<?php
session_start
();
require(
"connect.php");

$connect mysql_connect($host,$usuario_db,$pass_db)or die ('Ha fallado la conexión: '.mysql_error());

//a partir de acá van las querys y variables especiales.

   
if(trim($_POST['usuario']) != "" && trim($_POST['pass']) != "");
     {
    
$usuario strtolower(htmlentities($_POST['usuario'], ENT_QUOTES));

    
$password $_POST["pass"];

    
$result mysql_query('SELECT Pass, EmailUsuario FROM Usuarios000 WHERE EmailUsuario=\''.$usuario.'\'');

     if(
$row mysql_fetch_array($result)){

             if(
$row["Pass"] == $password){    
    
                  
$_SESSION['&usuario'] = $row['EmailUsuario'];                                                            //compruebo si contraseña y usuario son correctos, si lo son
                  
session_start();//defino la sesion
        
                  
$_SESSION ['autentificado']='SI';                       //establezco la variable de $_Session con valor "SI"  para recuperarla en otra página

        
header("Location: panel.php");                     //mando directamente a la pagina encriptada
                        
}else{
                                     echo 
"<tr><td><strong>Password incorrecto!</strong></td><p>
          <td><a href= 'login.php' target='_self'>Volver a intentarlo</a></td></tr></p>"
;
          echo 
"<tr width= 50%><td></td><td class=DestacadoCopia><a href='recuperar.php' _self>Recordarme mi usuario o contrase&ntilde;a</a></td></tr>"; }                                         //fin del else
                                        
              
}else{
                          echo 
"<tr><td><strong>Atenci&oacute;n: El usuario '$usuario' no est&aacute; registrado en el sistema</strong></td></tr><p>";
                                     echo 
"<tr><td><a href='login.php' target='_self'>Regresar a Usuarios </a></td></tr>";}             //fin del else

mysql_free_result($result);

}

mysql_close();
?>
Muchas gracias por echarle un vistazo!
  #2 (permalink)  
Antiguo 23/06/2010, 19:16
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 15 años
Puntos: 14
Respuesta: Redirección de página

Mira, en la parte de verificar "nick" y pass, deberías hacer la consulta a la tabla usuarios.
Código PHP:
Ver original
  1. $result = "SELECT * FROM Usuarios000 WHERE EmailUsuario='$usuario' and Pass='$password'";
  2. mysql_query($result);
Luego con mysql_num_rows (link) revisas si es válido.
¿Qué cuándo es válido?
Cuando la consulta te devuelve 1 fila (suponiendo que sólo existe un usuario con ese nick). Es decir,
Código PHP:
Ver original
  1. if(mysql_num_rows($result)!=0){
  2.    //es quién dice ser xD
  3. }
  4. else{
  5.   //es un impostor :(
  6. }

Saludos.
__________________
Sólo quien nunca nada hace, nunca se equivoca.
  #3 (permalink)  
Antiguo 24/06/2010, 10:42
Avatar de kmzero  
Fecha de Ingreso: octubre-2008
Mensajes: 43
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Redirección de página

HOla De la cuesta:
gracias por la respuesta, pero creo que no se entendió la consulta.
El tema de la verificación no tiene problema. Justamente inicio una session para que la variable se recoja en toda la navegación.
Como dije antes, funcionó bien, pero de pronto los navegadores se colgaron.
Gracias por las ideas!
  #4 (permalink)  
Antiguo 24/06/2010, 11:03
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Redirección de página

Esto es asi:

Código PHP:

//&usuario => &
$_SESSION['&usuario'
Evidentemente hay un loop infitino

Y puede ser el redireccionamiento que va a una pagian y vuelve a la misma:

Ejemplo:

Código PHP:

//....
header("Location: panel.php");                     
//si de esta linea rediriges a este script:
//....

//y de este script vuelves al anterior, estaras en un ciclo infinito
if ($_SESSION["autentificado"] != "SI") { 
 
//si no existe, envio a la página de autentificacion 
    
header("Location: login.php"); 
    exit(); 


Última edición por wiwi74; 24/06/2010 a las 11:10
  #5 (permalink)  
Antiguo 25/06/2010, 12:00
Avatar de kmzero  
Fecha de Ingreso: octubre-2008
Mensajes: 43
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Redirección de página

Gracias! no me había dado cuenta.
El problema viene porque quiero que el mismo botón que lleva a login.php redirija al usuario ya iniciado a panel.php
Cómo podría hacer ese script? o no me queda otra que anexar otro botón para que vaya al panel directamente.??? (son muchas páginas!)
Gracias!

Etiquetas: Ninguno
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 05:29.