Foros del Web » Programando para Internet » PHP »

loguear usuario y recoger sus datos

Estas en el tema de loguear usuario y recoger sus datos en el foro de PHP en Foros del Web. hola buenos dias ; alguien me podría echar una mano con este código? Intento que conecte a la base de datos, busque si esta el ...
  #1 (permalink)  
Antiguo 15/07/2008, 04:42
 
Fecha de Ingreso: mayo-2008
Mensajes: 117
Antigüedad: 15 años, 11 meses
Puntos: 8
loguear usuario y recoger sus datos

hola buenos dias ;

alguien me podría echar una mano con este código? Intento que conecte a la base de datos, busque si esta el usuario, recopile TODA la información del usuario en la tabla y luego que me muestre el nombre por pantalla, pero solo conecta, comprueba que este el usuario y sigue su camino sin recoger los datos...
que ago mal? alguien me echa 1 cable? Razz
Código:

<?

if (($_POST['nombre']=="") ||($_POST['pass']==""))
{
include ('clientes.php');
?>
<script type="text/javascript">
alert ("Introduce usuario y contraseña");
</script>
<?

}
else
{
$usuario=validar_usuario($_POST['nombre'],$_POST['pass']);
if ($usuario=="")
{
include ('clientes.php');
?>
<script type="text/javascript">
alert ("Debe estar registrado para acceder!!");
</script>
<?

}
else
{session_start();
//$_SESSION['access'] = true;
echo "el nombre es".$usuari['nom'];

include ('index.php');
}

}
function validar_usuario($nombre,$pass)
{

$host = "localhost";
$usuari = "XXXXXXXXXXXX";
$passw = "XXXXXXXXXXXX";
$tabla = "mitabla";
$sql = "SELECT * FROM usuaris";

$conexion = mysql_connect($host,$usuari,$passw) or die ("Fallo en el primer pas");
mysql_select_db($tabla, $conexion);
$query = 'SELECT * FROM mitabla where nom=\''.$_POST['nombre'].'\' and pass=\''.$_POST['pass'].'\'';
$resultado = mysql_query($query,$conexion) or die ("falla al consultar datos");
$resultat = mysql_query($sql,$conexion) or die ("falla al consultar
datos 2 ");
while ($usuari = mysql_fetch_array($resultat));
$row = mysql_num_rows($resultado);

return $row;
}
?>


Me arece que me falta algo... por el tema de que cuando se supone que tiene que recoger datos... como sabe que solo es del usuario en concreto? .. me falta completar...algun experto del tema?
Razz
gracias a todos,
un saludo
  #2 (permalink)  
Antiguo 15/07/2008, 04:59
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 5 meses
Puntos: 48
Respuesta: loguear usuario y recoger sus datos

Código PHP:
function validar_usuario($nombre,$pass)
{

$host "localhost";
$usuari "XXXXXXXXXXXX";
$passw "XXXXXXXXXXXX";
$tabla "mitabla";
$sql "SELECT * FROM usuaris";

$conexion mysql_connect($host,$usuari,$passw) or die ("Fallo en el primer pas");
mysql_select_db($tabla$conexion);
$query 'SELECT * FROM mitabla where nom=\''.$_POST['nombre'].'\' and pass=\''.$_POST['pass'].'\'';
$resultado mysql_query($query,$conexion) or die ("falla al consultar datos");
$resultat mysql_query($sql,$conexion) or die ("falla al consultar
datos 2 "
);
while (
$usuari mysql_fetch_array($resultat));
$row mysql_num_rows($resultado);

return 
$row;

Menudo lio tienes en esta funcion. Devuelves $row, que es lo devuelto por mysql_num_rows(), es decir, el numero de registros devueltos por la consulta. Asi que
Código PHP:
$usuario=validar_usuario($_POST['nombre'],$_POST['pass']); 
siempre va a acabar con ese valor en $usuario, nunca con el registro.

En la funcion tambien tienes 2 consultas, una que no se para que sirve (SELECT * FROM usuaris). Deja solo lo que necesites.

Y por ultimo
Código PHP:
while ($usuari mysql_fetch_array($resultat)); 
Esta linea siempre va a hacer que $usuari valga false, porque mysql_fetch_*() siempre devuelve false al intentar leer el registro siguiente al ultimo.
  #3 (permalink)  
Antiguo 15/07/2008, 11:53
 
Fecha de Ingreso: mayo-2008
Mensajes: 117
Antigüedad: 15 años, 11 meses
Puntos: 8
Respuesta: loguear usuario y recoger sus datos

vale te cuento.. soy nuevo en esto, primero me cogi al html, luego al css, php y finalmente bd y es preciso que aga algun fallo que otro xD.

Por tu reaccion veo que he echo una gran cagada que igual hasta hace daño a la vista pero intento aprender, se comprensible
En principio tenia esto (poniendo donde estan las variables los datos directamente:
Código PHP:
$conexion mysql_connect($host,$usuari,$passw) or die ("Fallo en el primer pas");            //$conexion conecta con la base de datos con mi usuario y contraseña 
mysql_select_db($tabla$conexion);  //selecciona la tabla de la base de datos
$query 'SELECT * FROM mitabla where nom=\''.$_POST['nombre'].'\' and pass=\''.$_POST['pass'].'\'';           //compara los datos que le mando en los campos nom y pass en la tabla de la base de datos
$resultado mysql_query($query,$conexion) or die ("falla al consultar datos");  //conecta con la base de datos y realiza la pregunta
$row mysql_num_rows($resultado);            // devuelve el numero de filas pero no tengo ni idea de lo que hace 

return $row;       // si el usuario es existe responde 1 por lo que valudar_usuario tiene un valor y entonces sigue con el codigo de arriva de la funcion -> else {session_start(); ... 
Este codigo funciona perfecto, conecta con la base de datos y luego responde si esta o si no, hasta hay todo bien. Pero ahora necesito que me recoja los datos de la base de datos por que quiero crear 3 perfiles diferentes y necesito que cuando conecte con la base de datos recoja los campos del usuario para así saber su perfil (un campo de la tabla) y direccionarlo a un sitio o a otro.
tonces estuve mirando varios tutoriales y al final encontré uno que creo que explica mas o menos lo que yo necesito y intente adaptarlo para que hiciese lo que yo quería pero parece ser que lo maree mucho ...

A partir de donde esta el codigo en este momento seguro que en media línea mas tengo lo que quiero pero no lo consigo por el tema de que trabajo en una empresa en la cual no puedo concentrarme en este tema durante mas de 30 minutos seguidos y así es bastante difícil adelantar... me podrías ilustrar 1 poco? si es posible 1 pequeña explicación de lo que hace exactamente el codigo que dejo (pongo lo que yo interpreto, corrigeme por favor) y si eso de paso echarme un cable con lo que me falta...


venga muchas gracias
un saludo

Última edición por harryp; 15/07/2008 a las 12:02 Razón: Mas detallado
  #4 (permalink)  
Antiguo 16/07/2008, 05:02
 
Fecha de Ingreso: mayo-2008
Mensajes: 117
Antigüedad: 15 años, 11 meses
Puntos: 8
Respuesta: loguear usuario y recoger sus datos

solucionado :

$host = "localhost";
$usuari = "lalalalal";
$passw = "lalallalala";
$tabla = "lalalala___clientes";

$conexion = mysql_connect($host,$usuari,$passw) or die ("Fallo en el primer pas");
mysql_select_db($tabla, $conexion);
$query = 'SELECT * FROM usuaris where nom=\''.$_POST['nombre'].'\' and pass=\''.$_POST['pass'].'\'';
$resultado = mysql_query($query,$conexion) or die ("falla al consultar els datos");
$row = mysql_fetch_assoc($resultado);

return $row;

primero eso, ahora $row ya contiene la fila que necesito
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:09.