Foros del Web » Programando para Internet » PHP »

Ver perfil usario por URL (Tipo Twitter)

Estas en el tema de Ver perfil usario por URL (Tipo Twitter) en el foro de PHP en Foros del Web. Estimados: El problema es siguiente, hice un código en el cuál se mostraría la linea de tiempo de un usuario en PHP, uno por session(Para ...
  #1 (permalink)  
Antiguo 19/11/2011, 20:58
 
Fecha de Ingreso: octubre-2011
Mensajes: 27
Antigüedad: 12 años, 6 meses
Puntos: 2
Ver perfil usario por URL (Tipo Twitter)

Estimados:
El problema es siguiente, hice un código en el cuál se mostraría la linea de tiempo de un usuario en PHP, uno por session(Para ver el propio perfil) y otro por URL
el problema es que no puedo lograr que muestre ambos casos; es decir, que me muestre la linea de tiempo de otro usuario aunque ya este logeado

Código PHP:
Ver original
  1. // Consulta por Usuario
  2. if(isset($_SESSION['usuario']) && $_SESSION['login'] != "") {
  3. $user = mysql_query("SELECT * FROM usuario WHERE nick='". $_SESSION['usuario'] ."'");
  4. while($usuario = mysql_fetch_array($user)){
  5. $q = mysql_query("SELECT *
  6.                  FROM mensaje
  7.                  WHERE mensaje.id_usuario = '". $usuario[0] ."'
  8.                  ORDER BY mensaje.cod_mensaje DESC");
  9. $timeline='';
  10. while($row=mysql_fetch_assoc($q))
  11. {
  12.    
  13.     $timeline.=formatTweet($usuario['nick'],$row['mensaje'],$row['dt'],$usuario['avatar']);
  14. }
  15. }
  16. // fetch the latest tweet
  17. $lastTweet = '';
  18.  
  19. $usuari = $_SERVER['REQUEST_URI'];
  20. $usuariox = str_replace("/","", $usuari);
  21. $user = mysql_query("SELECT * FROM usuario WHERE nick='". $_SESSION['usuario'] ."' OR nick='$usuariox'");
  22. while($usuario = mysql_fetch_array($user)){
  23. list($lastTweet) = mysql_fetch_array(mysql_query("SELECT mensaje.mensaje
  24.                                                  FROM usuario, mensaje
  25.                                                  WHERE usuario.nick ='". $usuario['nick'] ."'
  26.                                                  ORDER BY mensaje.cod_mensaje DESC LIMIT 1"));
  27.  
  28. if(!$lastTweet) $lastTweet = "No tienes nada escrito!";
  29. }
  30. }
  31. // Si no existe ususario, Mostrará todos los mensajes!
  32. else{
  33.  
  34. $timeline='';
  35. $usuari = $_SERVER['REQUEST_URI'];
  36. $usuariox = str_replace("/","", $usuari);
  37. $avatar = mysql_query("SELECT * FROM usuario WHERE nick='$usuariox'");
  38. while($userr = mysql_fetch_assoc($avatar))
  39. {
  40.    $q = mysql_query("SELECT *
  41.                  FROM mensaje
  42.                  WHERE mensaje.id_usuario = '". $userr['id'] ."'
  43.                  ORDER BY mensaje.cod_mensaje DESC");
  44.    while($row=mysql_fetch_assoc($q))
  45.     {
  46.     $timeline.=formatTweet($userr['nick'],$row['mensaje'],$row['dt'],$userr['avatar']);    
  47.     }
  48. }
  49.  
  50. // fetch the latest tweet
  51. $lastTweet = '';
  52. list($lastTweet) = mysql_fetch_array(mysql_query("SELECT mensaje.mensaje
  53.                                                  FROM usuario, mensaje
  54.                                                  WHERE usuario.nick ='$usuariox'
  55.                                                  ORDER BY mensaje.cod_mensaje DESC LIMIT 1"));
  56.  
  57. if(!$lastTweet) $lastTweet = "No tienes nada escrito!";
  58. }

Alguna sugerencia?
Cuaquier ayuda, bienvenida sea https://github.com/kurassier/PioPio
  #2 (permalink)  
Antiguo 20/11/2011, 00:00
 
Fecha de Ingreso: noviembre-2011
Ubicación: Valladolid, Yucatan,México
Mensajes: 11
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Ver perfil usario por URL (Tipo Twitter)

Creo que problema esta aquí
$usuari = $_SERVER['REQUEST_URI'];
$usuariox = str_replace("/","", $usuari);

una URI muestra enlaces de esta form

/admin/usuario/
/admin/usuario.php
/admin/usuario.html
/usuario/

si tu uri es como del 4 caso, entonces puede ser otro problema
en el caso de de que tu uri sea de alguno parecido a los tres primeros, te recomendaría que utilizaras la función explode de php, que lo que hace es crear un array de tu dirección, y así podrás obtener el nombre del usuario que quieras ver sus mensaje o twits..

creo que ese podría ser tu problema, revisa y me dices
  #3 (permalink)  
Antiguo 20/11/2011, 07:52
 
Fecha de Ingreso: octubre-2011
Mensajes: 27
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: Ver perfil usario por URL (Tipo Twitter)

Tengo pensado el caso 4, si te fijas solo elimino los "/" para hacer la comparación con la BD para "validar" que ese usuario exista, el problema como lo mencione es que si ya estoy logeado no me permite ver los otros usuarios.
Creo que es por problemas con el con el isset normal, pero si lo cambio a validar por URI primero, al mostrarme el perfil me permitiria comentar en dicho perfil y no es la idea.
Llevo como 4 días tratando de solucionar esto.
  #4 (permalink)  
Antiguo 20/11/2011, 13:59
 
Fecha de Ingreso: octubre-2011
Mensajes: 27
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: Ver perfil usario por URL (Tipo Twitter)

Me responderé solo:

Código PHP:
Ver original
  1. define('INCLUDE_CHECK',1);
  2. require('procesos/conexion.php');
  3. require('procesos/functions.php');
  4. include('procesos/EasyLogin.php');
  5.  
  6. // Consulta por Usuario
  7. if(isset($_SESSION['usuario']) && $_SESSION['login'] != "") {
  8.    
  9. $usuari = $_SERVER['REQUEST_URI'];
  10. $usuariox = str_replace("/","", $usuari);
  11. $user = mysql_query("SELECT * FROM usuario WHERE nick='". $usuariox ."'");
  12. while($usuario = mysql_fetch_array($user)){
  13. $q = mysql_query("SELECT *
  14.                  FROM mensaje
  15.                  WHERE mensaje.id_usuario = '". $usuario[0] ."'
  16.                  ORDER BY mensaje.cod_mensaje DESC");
  17. $timeline='';
  18. while($row=mysql_fetch_assoc($q))
  19. {
  20.    
  21.     $timeline.=formatTweet($usuario['nick'],$row['mensaje'],$row['dt'],$usuario['avatar']);
  22. }
  23. }
  24. // fetch the latest tweet
  25. $lastTweet = '';
  26.  
  27. $usuari = $_SERVER['REQUEST_URI'];
  28. $usuariox = str_replace("/","", $usuari);
  29. $user = mysql_query("SELECT * FROM usuario WHERE nick='". $_SESSION['usuario'] ."' OR nick='$usuariox'");
  30. while($usuario = mysql_fetch_array($user)){
  31. list($lastTweet) = mysql_fetch_array(mysql_query("SELECT mensaje.mensaje
  32.                                                  FROM usuario, mensaje
  33.                                                  WHERE usuario.nick ='". $usuario['nick'] ."'
  34.                                                  ORDER BY mensaje.cod_mensaje DESC LIMIT 1"));
  35.  
  36. if(!$lastTweet) $lastTweet = "No tienes nada escrito!";
  37. }
  38. }
  39. // Si no existe ususario, Mostrará todos los mensajes!
  40. else{
  41.  
  42. $timeline='';
  43. $usuari = $_SERVER['REQUEST_URI'];
  44. $usuariox = str_replace("/","", $usuari);
  45. $avatar = mysql_query("SELECT * FROM usuario WHERE nick='$usuariox'");
  46. while($userr = mysql_fetch_assoc($avatar))
  47. {
  48.    $q = mysql_query("SELECT *
  49.                  FROM mensaje
  50.                  WHERE mensaje.id_usuario = '". $userr['id'] ."'
  51.                  ORDER BY mensaje.cod_mensaje DESC");
  52.    while($row=mysql_fetch_assoc($q))
  53.     {
  54.     $timeline.=formatTweet($userr['nick'],$row['mensaje'],$row['dt'],$userr['avatar']);    
  55.     }
  56. }
  57.  
  58. // fetch the latest tweet
  59. $lastTweet = '';
  60. list($lastTweet) = mysql_fetch_array(mysql_query("SELECT mensaje.mensaje
  61.                                                  FROM usuario, mensaje
  62.                                                  WHERE usuario.nick ='$usuariox'
  63.                                                  ORDER BY mensaje.cod_mensaje DESC LIMIT 1"));
  64.  
  65. if(!$lastTweet) $lastTweet = "No tienes nada escrito!";
  66. }
  67.  
  68. ?>

En vez de validar los usuarios por session lo hice por URI..... y la condición de comentar agrege un && para que sea session y uri iguales :D
  #5 (permalink)  
Antiguo 21/11/2011, 01:01
 
Fecha de Ingreso: noviembre-2011
Ubicación: Valladolid, Yucatan,México
Mensajes: 11
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Ver perfil usario por URL (Tipo Twitter)

Creo que ya capte tu punto, una sugerencia, creo que podrías utilizar el comparador IN de mysql, en vez de nick='". $_SESSION['usuario'] ."' OR nick='$usuariox'" podrías utilizar por
nick IN("$_SESSION['usuario']" ,"$usuariox"), quizas te pueda servir, saludos

Etiquetas: request_uri, session, usuarios
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:38.