Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] problema con variable de sesion

Estas en el tema de problema con variable de sesion en el foro de PHP en Foros del Web. es un sistema de perfiles donde la dirección del perfil corresponde con la variable $us que contiene el id del usuario la variable funciona solo ...
  #1 (permalink)  
Antiguo 29/06/2013, 01:33
Avatar de misantropo_iluminati  
Fecha de Ingreso: junio-2013
Mensajes: 2
Antigüedad: 10 años, 9 meses
Puntos: 0
Pregunta problema con variable de sesion

es un sistema de perfiles donde la dirección del perfil corresponde con la variable $us que contiene el id del usuario

la variable funciona solo cuando se registra un usuario nuevo y por unica vez, y no funciona una vez logueado clickeando el link perfil.php?id=$us

registro(despues de los if) :
Código PHP:
Ver original
  1. mysql_query("INSERT INTO usuarios VALUES ('','$nick','$email','$pass')");
  2.             $logueo = mysql_query("SELECT id,nick,pass,email FROM usuarios WHERE nick = '$nick'") or die(mysql_error());
  3.             $datos = mysql_fetch_array($logueo);
  4.             $_SESSION['nick'] = $datos['nick'];
  5.             $_SESSION['id'] = $datos['id'];
  6.             $_SESSION['email'] = $datos['email'];
  7.             $us = $datos['id'];
  8.             header("Location: perfil.php?id=$us"); //aqui funciona perfecto
  9.                        // por unica vez

login(despues de los if) ;
Código PHP:
Ver original
  1. $logueo = mysql_query("SELECT id,nick,pass,email FROM usuarios WHERE nick = '$nick'") or die(mysql_error());
  2.                 $datos = mysql_fetch_array($logueo);
  3.                 $_SESSION['nick'] = $datos['nick'];
  4.                 $_SESSION['id'] = $datos['id'];
  5.                 $_SESSION['email'] = $datos['email'];
  6.                 $us = $datos['id'];
  7.                 header('Location: index.php');

una vez logueado al clickar el link del perfil:
<a href="perfil.php?id=$us"><li>Perfil</li></a>

me envia textual a perfil.php?id=$us en vez de enviarme a por ejemplo perfil.php?id=3

que estoy haciendo mal?
  #2 (permalink)  
Antiguo 29/06/2013, 13:22
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: problema con variable de sesion

Cita:
me envia textual a perfil.php?id=$us en vez de enviarme a por ejemplo perfil.php?id=
Si simplemente reemplazando esa variable id= cambias de usuario (lo cual es inseguro al maximo), entonces para que usas sesiones ?

La informacion de usuario la mantienes en tu SESSION y no la envias salvo por $_POST y eso cuando se esta registrando o cambiando datos de registro.


Si quieres saber si el usuario se logueo, preguntarias

Código PHP:
If ($_SESSION($datos['id']))
   
// logueado
else
  
// no logueado 
Asi que esto no tiene sentido:

Código PHP:
 header("Location: perfil.php?id=$us"
PD: yo miraria ejemplos de sistemas de logueo... estas haciendo cosas que no deberias ... descartaria ese codigo por completo.
__________________
Salu2!
  #3 (permalink)  
Antiguo 29/06/2013, 13:30
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problema con variable de sesion

Me parece que estás creando el enlace sólo con HTML y deberías modificar para enviar el contenido de la variable $us:

Código PHP:
Ver original
  1. <?php
  2. // Así no te va a funcionar:
  3. ?>
  4. <a href="perfil.php?id=$us"><li>Perfil</li></a>
  5.  
  6. <?php
  7. // Así es como debe ser:
  8. ?>
  9. <a href="perfil.php?id=<?php echo $us; ?>"><li>Perfil</li></a>
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 29/06/2013, 13:50
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: problema con variable de sesion

Sigo pensando que perfil.php debe obtener el ID por $_SESSION y no via $_GET por seguridad

Sino se podria ver el perfil de otro usuario...y si es privado ? o tiene info privada ?
__________________
Salu2!
  #5 (permalink)  
Antiguo 29/06/2013, 13:52
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problema con variable de sesion

Italico76, tienes razón, para el perfil propio debe ser por sesión, pero para ver el de otros usuarios por url viene bien.

No había leido bien el tema, sólo vi la causa de que le aparezca $us en la url.
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 29/06/2013, 14:02
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: problema con variable de sesion

Exacto @Triby lo decia porque proviene de un registro pero como no habia visto la causa de la falla......estamos parejos xD
__________________
Salu2!

Última edición por Italico76; 29/06/2013 a las 14:10
  #7 (permalink)  
Antiguo 01/07/2013, 22:29
Avatar de misantropo_iluminati  
Fecha de Ingreso: junio-2013
Mensajes: 2
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: problema con variable de sesion

Cita:
Iniciado por Triby Ver Mensaje
Me parece que estás creando el enlace sólo con HTML y deberías modificar para enviar el contenido de la variable $us:

Código PHP:
Ver original
  1. <?php
  2. // Así no te va a funcionar:
  3. ?>
  4. <a href="perfil.php?id=$us"><li>Perfil</li></a>
  5.  
  6. <?php
  7. // Así es como debe ser:
  8. ?>
  9. <a href="perfil.php?id=<?php echo $us; ?>"><li>Perfil</li></a>

Última edición por misantropo_iluminati; 01/07/2013 a las 22:36

Etiquetas: mysql, registro, select, sql, usuarios, variable
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 00:41.