Foros del Web » Programando para Internet » PHP »

error al autenticar usuario

Estas en el tema de error al autenticar usuario en el foro de PHP en Foros del Web. estoy intentando crear un form para autenticar un usuario, tengo el siguiente codigo: [php] <? $pss=$_REQUEST['pss']; $user=$_REQUEST['user']; $dbh=mysql_connect ("localhost", "root", "") or die ('I cannot ...
  #1 (permalink)  
Antiguo 06/08/2004, 13:47
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.411
Antigüedad: 16 años, 6 meses
Puntos: 20
error al autenticar usuario

estoy intentando crear un form para autenticar un usuario, tengo el siguiente codigo:
[php]
<?
$pss=$_REQUEST['pss'];
$user=$_REQUEST['user'];
$dbh=mysql_connect ("localhost", "root", "") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ("consultex");




$result=mysql_db_query("consultex","select * from links WHERE link='%".$pss."%'");
if ($pss='elgato' AND $user='isabel')

{
function redireccionar($dir){

echo "<script type=\"text/javascript\">

<!--

function exec_refresh()

{

window.status = \"\" + myvar;

myvar = myvar + \" .\";

var timerID = setTimeout(\"exec_refresh();\", 100);

if (timeout > 0)

{

timeout -= 1;

}

else

{

clearTimeout(timerID);

window.status = \"\";

window.location = \"$dir\";

}

}



var myvar = \"\";

var timeout = 20;

exec_refresh();

//-->

</script>";
}
redireccionar("introducir.htm");
} else {

echo "Password Incorrecto";
}
?>


como es un sitio temporal para un unico usuario, he definido el password como constante y sin posibilidad de cambio, entonces, si el password que digita el usuario coincide con el establecido, se debe redireccionar a la pagina introducir.htm, de lo contrario debe aparecer password incorrecto, pero no me funciona, es decir, asi los datos esten incorrectos, autenticar.php, redirecciona a introducir.htm, que esta pasando?
__________________
Say no more.......
  #2 (permalink)  
Antiguo 06/08/2004, 14:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No sé como funciona esa función javascript que redirecciona .. (no sé por qué te lias con javascript ..?)

El operador para "comparar" en un IF() es == (doble igual ...o === triple igual si quieres comparar valor y tipo de la variable .. ). El uso de AND u && también es primordial por el orden que se compara ...

autenticar.php
Código PHP:
<?
if ($_POST['pss'] == 'elgato' && $_POST['user'] == 'isabel'){
   
header ("Location: pagina.tal");
   exit;
} else {
   
header ("Location: otra_pagina.tal");
   exit;
}
?>
y tu formulario

Código PHP:
<form action="autenticar.php" method="POST">

usuario: <input type="text" name="user"><br>
password: <input type="text" name="pss">

</
form
Pero no sirve de nada redireccionar a una página si validas por esta "entrada" (autenticar.php) si donde llegas (la página que redireccionas) NO compruebas si antes "pasó" por esta autentificación y validación del usuario.

Para ese "seguimiento" del usuario se usan sesiones o cookies donde, creas una variables de sesión en el punto que se autentificó correctamente tu usuario y desde ahí en las subsiguientes páginas que redireccionas o te muevas desde esas .. verificas la existencia de esa variable de sesión o cookies.

Un saludo,

Última edición por Cluster; 06/08/2004 a las 14:55
  #3 (permalink)  
Antiguo 06/08/2004, 15:07
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.411
Antigüedad: 16 años, 6 meses
Puntos: 20
gracias cluster voy a mirar detenidamente lo de las sesiones, espero no me coja muy duro
__________________
Say no more.......
  #4 (permalink)  
Antiguo 06/08/2004, 16:51
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.411
Antigüedad: 16 años, 6 meses
Puntos: 20
bueno pues ya estuve leyendo bastante acerca de las sesiones, pero aun no me han quedado claras, alguien me podria ayudar a definir como se podrian utilizar en este caso para proteger la autenticacion (darle un sentido real)
__________________
Say no more.......
  #5 (permalink)  
Antiguo 06/08/2004, 17:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
el_cesar ..

En las FAQ's de este foro tienes un ejemplo de uso de sesiones .. Pero antes deberías saber que són y si tienes dudas preguntarlas ..

Código PHP:
<? 
//Inicias el uso de sesiones.
session_start();
if (
$_POST['pss'] == 'elgato' && $_POST['user'] == 'isabel'){ 
   
// Como se autentificó .. creamos la varible "user" en la sesión con el valor de nombre que se autentificó.
   
$_SESSION['user'] = $_POST['pss'];
   
header ("Location: pagina.tal"); 
   exit; 
} else { 
   
header ("Location: otra_pagina.tal"); 
   exit; 

?>
pagina.tal (página autentificada)
Código PHP:
<?
// Incio de uso de sesiones ..
session_start();
// validación de la existencia de la sesión
if (empty($_SESSION['user'])){
   echo 
"Acceso Incorrecto";
   
// y terminamos la ejecución del script ...
   
exit;
}
?>
Resto de tu actual pagina.tal ... ha de ser .php como podrás observar al usar código PHP.

De hecho .. podrías usar ese código de validación bajo un "include()" pues lo vas a usar en todas las páginas que requieran autentificación.
Aquí estoy asumiendo que el SID se va a propagar en cookies y que tienes un navegador que las acepta. De todo esto habla el manual oficial de PHP: www.php.net/session

Un saludo,
  #6 (permalink)  
Antiguo 06/08/2004, 17:26
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.411
Antigüedad: 16 años, 6 meses
Puntos: 20
listo cluster muchas gracias por tu ayuda, asi era.... y seguire tu consejo, tratare mas bien de aclarar mis dudas antes de hacer algo..
__________________
Say no more.......
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 14:34.