Foros del Web » Programando para Internet » PHP »

Priblema con autenticacion usando PHP y MYSQL

Estas en el tema de Priblema con autenticacion usando PHP y MYSQL en el foro de PHP en Foros del Web. Hola ; Estoy intentando realizar un proceso en el que por medio de un formulario en el que se introduce un email y un password ...
  #1 (permalink)  
Antiguo 14/11/2006, 03:05
 
Fecha de Ingreso: noviembre-2006
Mensajes: 14
Antigüedad: 17 años, 5 meses
Puntos: 0
Priblema con autenticacion usando PHP y MYSQL

Hola ;

Estoy intentando realizar un proceso en el que por medio de un formulario en el que se introduce un email y un password se establece un prodceso de control de usuarios mediante un tabla simple de mysql en donde además de que comprueb si el usario esta activo en la base intento que redirija el navegador al campo ruta contenido en esa tabla.

Os pongo antes de nada un ejemplo de como seria la tabla

email password nombre ruta



Para ello he creado el siguiente formulario :

<form action="controlphp">E-mail: <input maxlength="30" size="15" name="direccion" type="text" />
<p> </p>
<p>Password: <input type="password" maxlength="30" size="15" name="password" /> </p>
<p> </p>
<p align="left"><input type="submit" name="Request" value="Login" /></p>
</form>

Con estos dos datos enviados al archivo controlphp trato de realizar el proceso de validacion y redireccion :

controlphp

<?
//conecto con la base de datos
$conn = mysql_connect("server","user","pswd");
//selecciono la BBDD
mysql_select_db("db",$conn);

//Sentencia SQL para buscar un usuario con esos datos
$ssql = "SELECT * FROM clientes WHERE email='$direccion' and password='$password'";
//Ejecuto la sentencia
$rs = mysql_query($ssql,$conn);
//vemos si el usuario y contraseña es váildo
//si la ejecución de la sentencia SQL nos da algún resultado
//es que si que existe esa conbinación usuario/contraseña
if (mysql_num_rows($rs)!=0){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
session_register("autentificado");
$autentificado = "SI";
/*AQUI ES DONDE YO ME PIERDO HE INTENTADO ASIGNAR EL RESULTADO DE LA COLUMNA RUTA DEL REGISTRO E INCLUIRLA EN LA LINEA SIGUIENTE PERO ME DA ERROR .TAMBIÉN COMO VEIS INTENTO LLAMAR A OTRO ARCHIVO QUE ES RUTA.PHP PERO NO CONSIGO ENVIAR EL CONTENIDO DE ESTE CAMPO

header ("Location: rutaphp");
}
else {
//si no existe le mando otra vez a la portada
session_start();
session_register("autentificado");
$autentificado = "NO";
header("Location: formulariodeacceso");
}
mysql_free_result($rs);
mysql_close($conn);
?>

ALGUIEN PUEDE ORIENTARME ACERCA DE COMO PODER REALIZAR LA REDIRECCIÓN

GRACIASSSSS
  #2 (permalink)  
Antiguo 14/11/2006, 03:31
 
Fecha de Ingreso: noviembre-2006
Mensajes: 14
Antigüedad: 17 años, 5 meses
Puntos: 0
Me podéis indicar si soys tan amables algun maual en donde aparezca un ejemplo de este tipo o decirme si estoy equivocandome de raiz intentando hacer este proceso.

Gracias
  #3 (permalink)  
Antiguo 14/11/2006, 05:15
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
intenta reemplazar:
Código PHP:
if (mysql_num_rows($rs)!=0){ 
por
Código PHP:
if(mysql_num_rows($rs) > 0){ 
Código PHP:
if(mysql_num_rows($rs) > 0){
$autentificado "SI";
header ("Location: rutaphp");
}
else {
$autentificado "NO";
header("Location: formulariodeacceso");

lo de las sesiones:
Código PHP:
session_start();
session_register("autentificado"); 
intenta ponerlo solo en el archivo: rutaphp Para un mejor control.

Saludos
__________________
Hospedaje Web al mejor costo!
  #4 (permalink)  
Antiguo 14/11/2006, 05:42
 
Fecha de Ingreso: noviembre-2006
Mensajes: 14
Antigüedad: 17 años, 5 meses
Puntos: 0
Hola de nuevo;

En primer lugar gracias por la respuesta me ha aclarado lo básico, pero ahora lo que no se es como podría pasar el campo ruta de mi tabla en el caso de que :

if(mysql_num_rows($rs) > 0){
$autentificado = "SI";
header ("Location: rutaphp");
}

Tendria que hacer algo así????

if(mysql_num_rows($rs) > 0){
$autentificado = "SI";
header ("Location: rutaphp?$rs["ruta"]");
}

Espero tu respuesta
Un saludo
  #5 (permalink)  
Antiguo 14/11/2006, 06:05
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Cita:
Iniciado por raglab Ver Mensaje
Hola de nuevo;

En primer lugar gracias por la respuesta me ha aclarado lo básico, pero ahora lo que no se es como podría pasar el campo ruta de mi tabla en el caso de que :

if(mysql_num_rows($rs) > 0){
$autentificado = "SI";
header ("Location: rutaphp");
}

Tendria que hacer algo así????

if(mysql_num_rows($rs) > 0){
$autentificado = "SI";
header ("Location: rutaphp?$rs["ruta"]");
}

Espero tu respuesta
Un saludo
Para pasar el campo ruta? solo especifica el archivo: header("Location: nombre.php"); ó a que te refieres?
Saludos
__________________
Hospedaje Web al mejor costo!
  #6 (permalink)  
Antiguo 14/11/2006, 06:09
 
Fecha de Ingreso: noviembre-2006
Mensajes: 14
Antigüedad: 17 años, 5 meses
Puntos: 0
creo que te refieres a esta linea:

header ("Location: rutaphp?$rs["ruta"]");

Lo que intento ,pero sin exito, es pasar el campo ruta del registro resultante de la sentenca sql para que cuando vaya a ruta.php abra esa URL y asi el usuario acceda a su pagina personal.

Era esa tu pregunta ????

Ya ves que ando perdidillo, a ver si me puedes ayudar
  #7 (permalink)  
Antiguo 14/11/2006, 06:21
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
me imagino que intentas sacar la ruta de sql, asi que necesitas hacer unos cambios en la sentencia:

Código PHP:
$ssql "SELECT email,password,ruta FROM clientes WHERE email='$direccion' and password='$password'"
Código PHP:
while ($fila mysql_fetch_assoc($res)) {
  
header("Location: pagina.php".$fila['ruta']);

Saludos
__________________
Hospedaje Web al mejor costo!
  #8 (permalink)  
Antiguo 14/11/2006, 07:04
 
Fecha de Ingreso: noviembre-2006
Mensajes: 14
Antigüedad: 17 años, 5 meses
Puntos: 0
Hola de nuevo;

La verdad es que esto ya tiene más sentido .Lo que sucede es que me aparece este error :


Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/www/vhost/raglab.com/home/html/rlb/control.php on line 21

tiene algo que ver con mi version de Mysql o algo similar no tengo ni idea a que se refiere.

Si me podéis informar???

Gracias esto me está sirviendo de gran ayuda
  #9 (permalink)  
Antiguo 14/11/2006, 07:07
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
el error fue mio, disculpa.

Sustituye $res por $rs

Saludos
__________________
Hospedaje Web al mejor costo!
  #10 (permalink)  
Antiguo 14/11/2006, 07:30
 
Fecha de Ingreso: noviembre-2006
Mensajes: 14
Antigüedad: 17 años, 5 meses
Puntos: 0
ok;

He realizado el cambio pero me redirije a una url con los datos del form separados por & despues de la dirección inicial y no encuentra nada.

Bien hasta aqui se ha comprobado que el user y password son correctos y el contenido del campo ruta de mi tabla es una url valida de un periodico para probar la acción no puedo incluir enlaces por eso no te la indico.

Que puede estar sucediendo???

disculpa por hacer perder el tiempo con consultas de principiante pero estoy liado
  #11 (permalink)  
Antiguo 14/11/2006, 07:37
 
Fecha de Ingreso: noviembre-2006
Mensajes: 14
Antigüedad: 17 años, 5 meses
Puntos: 0
Creo que el problema está en esta linea :

header("Location: pagina.php".$fila['ruta']);

deberia de sustirtuir esto por el raiz del dominio por ejemplo y luego los directorios o paginas personales incluirlos en el campo ruta de la base de datos en lugar de la url entera es asi?????

espero respuesta
Gracias
  #12 (permalink)  
Antiguo 14/11/2006, 07:39
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
andale, lo puedes hacer :) y sería mucho mejor.

(respecto a lo del header puedes hacer:
$miruta = $fila['ruta']; y
header("Location: index.php?$miruta");

Te recuerdo que el "?" y el "&" son simbolos que definen algo... por lo que un ? necesita una función para redireccionar ó cargar, algo como modulares.

ejemplo: index.php?user=$miruta

Saludos
__________________
Hospedaje Web al mejor costo!
  #13 (permalink)  
Antiguo 15/11/2006, 04:06
 
Fecha de Ingreso: noviembre-2006
Mensajes: 14
Antigüedad: 17 años, 5 meses
Puntos: 0
Gracias por tu ayuda Urgido el problema se ha solucionado.

Un saludo
  #14 (permalink)  
Antiguo 24/07/2007, 13:51
 
Fecha de Ingreso: julio-2007
Mensajes: 5
Antigüedad: 16 años, 9 meses
Puntos: 0
Pregunta Re: Priblema con autenticacion usando PHP y MYSQL

Cita:
Iniciado por raglab Ver Mensaje
Gracias por tu ayuda Urgido el problema se ha solucionado.

Un saludo
Por Favor si podes poner la aclaracion como lo solucionaste el problema por favor.
Saludos Julio
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 09:15.