elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Firma dinamica Castg! version 1.1 [PHP]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Firma dinamica Castg! version 1.1 [PHP]  (Leído 2,538 veces)
Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.191



Ver Perfil WWW
Firma dinamica Castg! version 1.1 [PHP]
« en: 19 Enero 2011, 00:36 am »

bueno, si no mal recuerdan hace un tiempo hice una imagen dinamica en php, la cual usandola de firma, al entrar a un post, mostraba los datos del usuario que la veia.

para recordar un poco y no volver a escribir tanto:

http://foro.elhacker.net/php/firma_dinamica_por_castg_observa_tus_datos_automaticamente-t285255.0.html

Bueno, la use un tiempo hasta que sirdarckcat puso un filtro a las imagenes de elhacker.net ¬¬, cuestion de seguridad. Estuve muy ausente en el foro y hace poco volvi a escribir uno o dos mensajes y note que ese filtro no estaba mas, por lo que quise volver a usar mi firma.

al principio tuve muchos problemas por lo que me propuse depurarlo UN POCO. cambie unas boludeces del codigo y agregue una estupidez jaja, saegun tu sexo, es el color de fondo de la imgen.





Código
  1. <?php
  2. //Esta funcion consigue el id del ultimo usuario que entro...
  3. function userIdFromURL($flotaRef) {
  4. $post = preg_replace("/[\n\t\r]+/" , "", file_get_contents($flotaRef));
  5. $post = explode('<td align="center" class="smalltext"><a href="http://foro.elhacker.net/profiles/', $post);
  6. $post = preg_split('/\.html" style="color\: \#[a-fA-F0-9]{6};"\>.*est\&aacute\;n viendo este tema\.\<\/td\>/', $post[1]);
  7. return preg_replace('/^.+\-u(\d+)/', "$1", $post[0]);
  8. }
  9. //anti "La imagen ... no puede mostrarse porque contiene errores" ;)
  10. //Headers
  11. header("Content-type: image/jpeg");
  12. //
  13. //obtencion de datos: id user!
  14. if(isset($_COOKIE['id'])){
  15. $id = $_COOKIE['id'];
  16. }else{
  17. $ref = "post.html";//getenv("HTTP_REFERER");
  18. $id = userIdFromURL($ref); //la magia surge
  19. }
  20. //Visitamos su prefil y leemos sus datos...
  21. $perfil = file_get_contents('http://foro.elhacker.net/index.php?&action=.xml;sa=profile;u='.$id);
  22. $perfil = preg_replace("/[\n\t\r]+/" , "", $perfil);
  23. $nick = preg_replace("/.*<name><!\[CDATA\[(.*)\]\]><\/name>.*/", "Hola $1!", $perfil);
  24. $genero = preg_replace("/.*<gender><!\[CDATA\[(.*)\]\]><\/gender>.*/", "$1", $perfil);
  25. $lugar = preg_replace("/.*<location><!\[CDATA\[(.*)\]\]><\/location>.*/", "Sos de $1.", $perfil);
  26. $edad = preg_replace("/.*<age>(.*)<\/age>.*/", "Tenes $1 años.", $perfil);
  27. $posts = preg_replace("/.*<posts>(.*)<\/posts>.*/", "Escribiste $1 posts.", $perfil);
  28. //
  29. //
  30. //Otros datos
  31. $ip = $_SERVER['REMOTE_ADDR'];
  32. $userAgent= strtolower($_SERVER['HTTP_USER_AGENT']);
  33. preg_match("/(firefox|msie|opera|netscape|chrome|safari|epiphany|galeon|iceape|icewease|kazehakasel|konqueror|minefield|seamonkey|shiretoko|avant|lock|k-meleon|minefield|navigator)/", $userAgent, $navegador);
  34. $sistema = preg_replace("/.*(windows|mac|linux|freebsd).*/", "$1", $userAgent);
  35. $agent = ($navegador[0]!=$userAgent && $sistema!=$userAgent) ? "Usas ".$navegador[0]." desde $sistema." : "";
  36. //
  37. //
  38. //depuracion de datos:
  39. if($nick == $perfil){
  40. $hayUser = false;
  41. }else{
  42. $hayUser = true;
  43. if($genero==$perfil) $genero = "Masculino";
  44. if($lugar==$perfil) $lugar = "Ubicacion no definida";
  45. if($edad==$perfil) $edad = "Edad no definida";
  46. }
  47. if($hayUser){
  48. if(!isset($_COOKIE['id'])){
  49. setcookie('id',$id,time()+315360000);
  50. }
  51. $mensaje = "$nick\n\n  $posts\n  $lugar\n  $edad\n  Tu ip es $ip.\n  $agent";
  52. }else{
  53. $mensaje = "    Tu ip es: $ip\n\n  Para descubrir más de mis\npoderes, mirame en un post\ndonde Castg! comente." ;
  54. }
  55. //
  56. //
  57. //imagen
  58. $im = imagecreatefrompng('firma-perfil-'.$genero.'.png');
  59. $blanco = imagecolorallocate($im, 255,255,255);
  60. $negro = imagecolorallocate($im, 0,0,0);
  61. $fuente = "./persansb.ttf";
  62. //
  63. //centrar fuente:
  64. $puntosTexto = imagettfbbox(12, 0, $fuente, $mensaje);
  65. $altoCaracterTTF = imagettfbbox(12, 0, $fuente, "b");
  66. $tamanioTexto = array();
  67. $tamanioTexto['x'] = $puntosTexto[2] - $puntosTexto[6];
  68. $tamanioTexto['y'] = $puntosTexto[3] - $puntosTexto[7];
  69. $xtexto = (imagesx($im) - $tamanioTexto['x']) / 2 ;
  70. $ytexto = ((imagesy($im) - $tamanioTexto['y']) / 2) + ($altoCaracterTTF[3] - $altoCaracterTTF[7]);
  71. // listo :D
  72. //
  73. //
  74. imagettftext($im, 12, 0, $xtexto, $ytexto, $blanco, $fuente, $mensaje);
  75. imagejpeg($im,false,100);
  76. //
  77. ?>

practicamente, agregue la opcion de freebsd como sistema, hice una funcion para recoger el id y se imprime como imagen jpeg, antes png.

Cualquier error que les presente mi firma, diganmelo! tengo que arreglar ahora que me acorde despues de escribir esto, si sos usuario oculto. tengo que averiguar bien, no estoy seguro que haya problema.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Creacion de firma dinamica
PHP
GreatSaiyan 1 5,255 Último mensaje 2 Octubre 2004, 04:52 am
por Azielito
Firma dinamica por Castg! Observa tus datos automaticamente! « 1 2 ... 7 8 »
PHP
Castg! 71 26,392 Último mensaje 21 Abril 2010, 22:36 pm
por Castg!
Ayuda con Firma dinamica « 1 2 »
PHP
SabaLero0_ 19 8,872 Último mensaje 22 Abril 2011, 02:44 am
por Castg!
Firma dinámica [Castg] - Depurado
PHP
Castg! 1 4,211 Último mensaje 31 Marzo 2012, 11:20 am
por Og.
Firma dinámica (Detección ip real y Sistema operativo) PHP
PHP
el-brujo 0 2,773 Último mensaje 16 Mayo 2012, 11:40 am
por el-brujo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines