Foros del Web » Programando para Internet » PHP »

Problema con validación de usuario

Estas en el tema de Problema con validación de usuario en el foro de PHP en Foros del Web. Hola, tengo un primer formulario de validación, donde se introduce el nombre y código pa autentificarlo. Lo que me ocurre es raro, porque introduzco una ...
  #1 (permalink)  
Antiguo 22/07/2003, 15:44
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 14 años, 5 meses
Puntos: 0
Problema con validación de usuario

Hola, tengo un primer formulario de validación, donde se introduce el nombre y código pa autentificarlo. Lo que me ocurre es raro, porque introduzco una primera ver NOMBRE y CODIGO CORRECTO, me vuelve a mortrar otra vez la página de autentificación, le vuelvo a poner otra vez el NOMBRE y CODIGO, es ahora cuando me deja entrar en la página.

Mi pregunta:¿Por qué hace que me valide dos veces, si los primeros datos son correctos?

$query="SELECT NOMBRE, CODIGO FROM Tabla WHERE NOMBRE=$_POST['NOMBRE'] AND CODIGO=$_POST['CODIGO']";

mysql_select_db ($database_connProyecto, $connProyecto);
$Result=
mysql_query($query, $connProyecto) or die(mysql_error());
$res = mysql_fetch_assoc ($Result);

if (mysql_num_rows ($Result)!=0){
//usuario y contraseña válidos
//defino una sesion y guardo datos

session_start ();
$_SESSION ['autentificado']="SI"; ?>
<script language="JavaScript">
parent.location.href="Proyecto.html";
</script>
<?php
}
else
{ //si no existe le mando otra vez a la autentificación
?>
<script language="JavaScript">
alert("Acceso denegado");
parent.location.href="index.php";
</script>
<?php
}

Y luego en cada una de las páginas a proteger pongo:

<?php
session_start();
//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION ['autentificado'] != "SI") {
//si no existe, envio a la página de autentificacion
?>
<script language="JavaScript">
parent.location.href="index.php";
</script>
<?php
//ademas salgo de este script
exit();
}
?>

Última edición por dominguez; 22/07/2003 a las 15:46
  #2 (permalink)  
Antiguo 22/07/2003, 15:57
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

¿Te sale el alert()? ¿O te salta a Proyecto.HTML y de ese te vuelve a saltar al index.php?

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 22/07/2003, 16:16
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 14 años, 5 meses
Puntos: 0
Hola, lo curioso es q he podido comprobar q el alert no salta, por tanto entra en el "if" y debería crear esa variable, pero luego cuando comprueba si esta definida o no, la primera vez me dice q no está definida ¿por qué?

Y luego en un segundo intento ya dice q si está definida

No sé porque en el primer intento si y cuando me redirecciona pa validar otra vez y le introduzco los datos dice q si.

Gracias por tu interés.
  #4 (permalink)  
Antiguo 22/07/2003, 16:21
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 14 años, 5 meses
Puntos: 0
salta a Proyecto.HTML y de ese vuelve a saltar al index.php, SI EFECTIVAMENTE...
  #5 (permalink)  
Antiguo 22/07/2003, 18:07
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
¿Y que codigo tienes en Proyecto.HTML? ¿El que pusistes debajo? Lo digo porque como pones que es .html, no se comoincluyes el codigo PHP que redirecciona otra vez a la index.php.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 22/07/2003, 18:10
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 14 años, 5 meses
Puntos: 0
Proyecto.html se compone de tres frames y en el frame principal está principal.php que es así de simple:

<?php include ("Comprueba.php");?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
PRINCIPAL
</body>
</html>
  #7 (permalink)  
Antiguo 22/07/2003, 18:17
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 14 años, 5 meses
Puntos: 0
Josemi, pero si creo una variable de sesión se guarda en el servidor en una ruta especificada por éste no??

Y si la creo como es mi caso y le doy un valor, pq luego no reconoce q está creada?

Pienso q el código es correcto, no sé...
  #8 (permalink)  
Antiguo 22/07/2003, 18:27
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Me suena que hubo algun mensaje que trataba un problema similar (quizas el mismo) con sesiones, frames y demas. No recuerdo si lo solucionaron. Intenta mirar en el buscador. Puede ser que se le pierda en algun momento el sesion_id, entre la redireccion en javascript y el frameset. Puedes probar a poner el session_start() al comienzo de la pagina que hace la comprobacion, la que da valor a la variable de sesion, a ver si hay suerte.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #9 (permalink)  
Antiguo 22/07/2003, 18:33
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 14 años, 5 meses
Puntos: 0
Josemi, funciona!!!!!!!!!!

Ahora ya si que no entiendo nada, porque si lo pongo al principio si y en el if no??

Bueno, muchas gracias por tu tiempo y un saludo.
  #10 (permalink)  
Antiguo 22/07/2003, 18:37
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Ni idea. Mi logica era que quizas no habia conseguido crear bien la sesion al tenerla por debajo de tanto codigo. Date cuenta que puede que este usando cookies para propagarla (seguramente, ya que te funciona la redireccion javascript), y las cookies se deben crear antes que cualquier salida al navegador (al igual que header()). Asi que por costumbre es mejor poner session_start() al comienzo del codigo.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #11 (permalink)  
Antiguo 23/07/2003, 00:29
Avatar de elportal  
Fecha de Ingreso: julio-2003
Ubicación: Guadalajara
Mensajes: 6
Antigüedad: 14 años, 4 meses
Puntos: 0
la verdad

la verdad no entiendo mucho, pero ando aprendiendo PHP
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 16:51.