Foros del Web » Programando para Internet » PHP »

Como integro Gravatar en mi sistema de miembros.

Estas en el tema de Como integro Gravatar en mi sistema de miembros. en el foro de PHP en Foros del Web. Pues esa es la cuestión, me gustaria integrar gravatar en mi sistema, se que se puede pero no sé como y lo que hay en ...
  #1 (permalink)  
Antiguo 09/01/2011, 09:24
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 11 meses
Puntos: 3
Pregunta Como integro Gravatar en mi sistema de miembros.

Pues esa es la cuestión, me gustaria integrar gravatar en mi sistema, se que se puede pero no sé como y lo que hay en la Red está en Ingles.

Página Inicial:[URL="http://es.gravatar.com/"]http://es.gravatar.com/[/URL]
Página para incluir: [URL="http://es.gravatar.com/site/implement/images/php/"]http://es.gravatar.com/site/implement/images/php/[/URL]

Para los que no sepan lo que es... Gravatar es un sistema de avatar en el cual se utiliza en la mayoría de wordpress. La aplicación permite registrarse y subir o seleccionar un avatar con el que te identificaras en los sitios que tengan integrados gravatar. Los sitios que lo tengan integrados te pedirán una correo (antes o después) en el cual se lo pasara a gravatar para ver si ese correo tiene asociada alguna imagen.

Pues lo que yo quiero hacer es añadir este sistema de avatar a mi sistema de usuarios. Y que gravatar obtenga automáticamente el correo que dio el usuario a registrarse.

Por ejemplo:

Yo me registre con mi sistema con los siguientes datos:

Usuario: ninco90
Primer Apellido: foros
Segundo Apellido: delweb
Nombre: Alberto
Correo: [email protected]

Bien pues ahora yo accedo a mi sistema, introduzco los datos, accedo a mi perfil. Bien pues ahora en mi perfil quiero poner el sistema de gravatar que automáticamente le pedirá a la base de datos mi correo para ver si mi correo tiene avatar y así poder mostrarlo en mi perfil.


Lo he explicado lo mejor que he podido...
  #2 (permalink)  
Antiguo 09/01/2011, 09:48
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Como integro Gravatar en mi sistema de miembros.

Tenes algo echo ?, es bastante simple a través del api y tenes un componente que es extensión de Zend.

Saludos.
  #3 (permalink)  
Antiguo 09/01/2011, 10:09
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años, 1 mes
Puntos: 890
Respuesta: Como integro Gravatar en mi sistema de miembros.

Pero es tan fácil como armar esta url:

Código PHP:
Ver original
  1. <img src="http://www.gravatar.com/avatar/<?php print md5( strtolower( trim( 'elemail' ) ) ) ?>?d=imagendefault.jpg&s=50" />
__________________
Drupal Argentina
  #4 (permalink)  
Antiguo 09/01/2011, 10:29
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 11 meses
Puntos: 3
Respuesta: Como integro Gravatar en mi sistema de miembros.

He provado con ese código, peor la cosa es que mi correo tiene avatar ya pero me sale el estandar...

Creo que no funciona o le falta algo...

Última edición por ninco90; 09/01/2011 a las 10:54
  #5 (permalink)  
Antiguo 09/01/2011, 11:10
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años, 1 mes
Puntos: 890
Respuesta: Como integro Gravatar en mi sistema de miembros.

mmm prueba con mi email giovannyluis [@] gmail.com o fijate el codigo que esta produciendo.
__________________
Drupal Argentina
  #6 (permalink)  
Antiguo 09/01/2011, 11:26
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 11 meses
Puntos: 3
Respuesta: Como integro Gravatar en mi sistema de miembros.

El problema que he encontrado es como hago la llamada a la base de datos para obtener el email del usuario que ingreso.

Este es el código que estoy probando:

Código PHP:
Ver original
  1. <?php
  2. include('config.php');
  3. $query = mysql_query("SELECT username FROM usuarios WHERE email = '$email'") or die(mysql_error());
  4. $email = "$query"];
  5. $default = "img/noavatar.jpg";
  6. $size = 80;
  7. $grav_url = "http://www.gravatar.com/avatar/" . md5( strtolower( trim( $email ) ) ) . "?d=" . urlencode( $default ) . "&s=" . $size; ?>

Así medio funciona:
Código PHP:
Ver original
  1. <?php
  2. $email = "[email protected]";
  3. $default = "http://www.somewhere.com/homestar.jpg";
  4. $size = 80;
  5. $grav_url = "http://www.gravatar.com/avatar/" . md5( strtolower( trim( $email ) ) ) . "?d=" . urlencode( $default ) . "&s=" . $size; ?>
Pero claro está mi correo metido directamente y yo quiero que lo encuentre conectándose a la base de datos para así sea dinámico para los usuarios.

Última edición por ninco90; 09/01/2011 a las 11:32
  #7 (permalink)  
Antiguo 09/01/2011, 11:59
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Como integro Gravatar en mi sistema de miembros.

Entonces ninco90 lo único que queres hacer es mostrar el avatar ?, yo entiendo por integración otra cosa, en este caso seria manipular desde tu aplicación el perfil de gravatar.
De todas formas te hago una pregunta, para que haces una query si ya tenes el email ?
  #8 (permalink)  
Antiguo 09/01/2011, 12:07
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 11 meses
Puntos: 3
Respuesta: Como integro Gravatar en mi sistema de miembros.

Cita:
Iniciado por masterpuppet Ver Mensaje
Entonces ninco90 lo único que queres hacer es mostrar el avatar ?, yo entiendo por integración otra cosa, en este caso seria manipular desde tu aplicación el perfil de gravatar.
De todas formas de hago una pregunta, para que haces una query si ya tenes el email ?
El email, el correo electrónico que está puesto es un ejemplo que me funciona. Pero quiero que por medio de la query se conecte a la base de datos par obtener el email guardado de cada usuario y así que automáticamente aparezca a cada usuario su avatar.
Código PHP:
Ver original
  1. $email = "[email protected]"; <--- Eso es lo que debe de cambiar automáticamente, obteniendo el correo a través de la base de datos.
  #9 (permalink)  
Antiguo 09/01/2011, 12:10
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años, 1 mes
Puntos: 890
Respuesta: Como integro Gravatar en mi sistema de miembros.

Y si miras el codigo fuente generado te imprime el emai.? hazlo sin md5 y fijate.-
__________________
Drupal Argentina
  #10 (permalink)  
Antiguo 09/01/2011, 12:24
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 5 meses
Puntos: 416
Respuesta: Como integro Gravatar en mi sistema de miembros.

Código PHP:
Ver original
  1. <?php
  2. include('config.php');
  3. $query = mysql_query("SELECT username FROM usuarios WHERE email = '$email'") or die(mysql_error());
  4. $email = "$query"];
  5. $default = "img/noavatar.jpg";
  6. $size = 80;
  7. $grav_url = "http://www.gravatar.com/avatar/" . md5( strtolower( trim( $email ) ) ) . "?d=" . urlencode( $default ) . "&s=" . $size; ?>

Nunca te mostrara el correo, tienes muchos errores en ese codigo.
Primero no recoges ese dato usando el SELECT, solo estas recogiendo el nombre de usuario.
Usas en el WHERE el campo email, si ya tienes ese dato de algo PREVIO, ¿para que haces la consulta?
No usas mysql_fetch_assoc() para recoger el dato, y mysql_query() devuelve un resource por lo que nunca funcionara tu codigo.
Tienes un "]" luego de la variable $email que solo provoca un error de sintaxis
  #11 (permalink)  
Antiguo 09/01/2011, 12:30
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 11 meses
Puntos: 3
Respuesta: Como integro Gravatar en mi sistema de miembros.

Cita:
Iniciado por Ronruby Ver Mensaje
Código PHP:
Ver original
  1. <?php
  2. include('config.php');
  3. $query = mysql_query("SELECT username FROM usuarios WHERE email = '$email'") or die(mysql_error());
  4. $email = "$query"];
  5. $default = "img/noavatar.jpg";
  6. $size = 80;
  7. $grav_url = "http://www.gravatar.com/avatar/" . md5( strtolower( trim( $email ) ) ) . "?d=" . urlencode( $default ) . "&s=" . $size; ?>

Nunca te mostrara el correo, tienes muchos errores en ese codigo.
Primero no recoges ese dato usando el SELECT, solo estas recogiendo el nombre de usuario.
Usas en el WHERE el campo email, si ya tienes ese dato de algo PREVIO, ¿para que haces la consulta?
No usas mysql_fetch_assoc() para recoger el dato, y mysql_query() devuelve un resource por lo que nunca funcionara tu codigo.
Tienes un "]" luego de la variable $email que solo provoca un error de sintaxis
Buenas, mira he cambiado los errores que has comentado:
Código PHP:
Ver original
  1. <?php
  2. include('config.php');
  3. $query = mysql_fetch_assoc("SELECT email FROM usuarios WHERE email = '$email'") or die(mysql_error());
  4. $email = "$query"];
  5. $default = "img/noavatar.jpg";
  6. $size = 80;
  7. $grav_url = "http://www.gravatar.com/avatar/" . md5( strtolower( trim( $email ) ) ) . "?d=" . urlencode( $default ) . "&s=" . $size; ?>

Pero sigue sin funcionar... Algún fallo gordo debe de haber por que ahora ni me muestra la página...
  #12 (permalink)  
Antiguo 09/01/2011, 12:31
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 5 meses
Puntos: 416
Respuesta: Como integro Gravatar en mi sistema de miembros.

Nope, no has hecho el cambio. Solo cambiaste una función.

¿Primero que nada, de donde obtienes la variable $email que pones en la consulta SQL?
  #13 (permalink)  
Antiguo 09/01/2011, 12:34
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 11 meses
Puntos: 3
Respuesta: Como integro Gravatar en mi sistema de miembros.

Cita:
Iniciado por Ronruby Ver Mensaje
Nope, no has hecho el cambio. Solo cambiaste una función.

¿Primero que nada, de donde obtienes la variable $email que pones en la consulta SQL?
¿De la base de datos no? O eso es lo que pretendo obtener, el email.

{Aah no tengo el dato previo, ya que en el login solo se usa el usurio y la contraseña. Pero el dato si está en la base de datos ya que el usuario lo introduce cuando se registra.}
  #14 (permalink)  
Antiguo 09/01/2011, 12:37
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 5 meses
Puntos: 416
Respuesta: Como integro Gravatar en mi sistema de miembros.

Ok, ahora bien ... ¿que dato tienes a mano para poder identificar que X usuario esta logueado? ¿Un id, el nombre de usuario?
  #15 (permalink)  
Antiguo 09/01/2011, 12:41
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 11 meses
Puntos: 3
Respuesta: Como integro Gravatar en mi sistema de miembros.

Mmm... el nombre de usuario si me aparece donde quiero que aparezca el avatar. Lo que querrá decir que si, a través del usuario.

Este es el código que recibo del formulario de inicio:
Código PHP:
Ver original
  1. <?
  2. // Configura los datos de tu cuenta
  3. include('config.php');
  4.  
  5.  
  6. // Conectar a la base de datos
  7. mysql_connect ($dbhost, $dbusername, $dbuserpass);
  8. mysql_select_db($dbname) or die('No se puede seleccionar la base de datos');
  9.  
  10. if ($_POST['username']) {
  11. //Comprobacion del envio del nombre de usuario y password
  12. $username=$_POST['username'];
  13. $password=$_POST['password'];
  14. if ($password==NULL) {
  15. echo "La contraseña no fue enviada,".'<a href="sesion.php">vuelve a intentarlo.</a>'."";
  16. }else{
  17. $query = mysql_query("SELECT username,password FROM usuarios WHERE username = '$username'") or die(mysql_error());
  18. $data = mysql_fetch_array($query);
  19. if($data['password'] != $password) {
  20. echo "Datos incorrectos,".'<a href="sesion.php">vuelve a intentarlo.</a>'."";
  21. }else{
  22. $query = mysql_query("SELECT username,password FROM usuarios WHERE username = '$username'") or die(mysql_error());
  23. $row = mysql_fetch_array($query);
  24. $_SESSION["s_username"] = $row['username'];
  25. $_SESSION["s_email"] = $row['email'];
  26. $_SESSION["logeado"] = "SI";
  27. echo ("<h2>¡Bienvenido <strong>".$_SESSION['s_username']." </strong>!".$_SESSION['s_email']."</h2>");
  28. }
  29. }
  30. }
  31. ?>
  #16 (permalink)  
Antiguo 09/01/2011, 12:50
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 5 meses
Puntos: 416
Respuesta: Como integro Gravatar en mi sistema de miembros.

Ese codigo que mostraste tiene un error ya que haces la consulta 2 veces innecesariamente.
Dejando eso de lado, se supone que se guarde el correo en una SESSION pero nunca recoges este valor en la consulta.

Código PHP:
$query mysql_query("SELECT username,password,email FROM usuarios WHERE username = '$username'") or die(mysql_error());
$row mysql_fetch_array($query);
$_SESSION["s_username"] = $row['username'];
$_SESSION["s_email"] = $row['email'];
$_SESSION["logeado"] = "SI"
Ya con ese cambio hecho en tu codigo, haz esto ahora donde quieres mostrar el Gravatar:
Código PHP:
<?php
$email 
$_SESSION['s_email'];
$default "http://www.somewhere.com/homestar.jpg";
$size 80;
$grav_url "http://www.gravatar.com/avatar/" md5strtolowertrim$email ) ) ) . "?d=" urlencode$default ) . "&s=" $size?>
Nota: Se supone que ya tienes que tener el session_start() en la pagina que muestra el avatar y toda la demas info
  #17 (permalink)  
Antiguo 09/01/2011, 13:04
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 11 meses
Puntos: 3
De acuerdo Respuesta: Como integro Gravatar en mi sistema de miembros.

Amigo.... ¡¡¡¡¡ERES EL AMO DEL PHP!!!! Me has solucionado 2 problemas, el de gravatar y otro que tiene que era de mostrar el correo en la página de bienvenida.


Tío, eres un fenómeno!

MUCHAS GRACIAS AMIGO!!!!

Etiquetas: gravatar, sitemap
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 19:38.