Firma dinamica Castg! version 1.1 [PHP]

Iniciado por Castg!, 19 Enero 2011, 00:36 AM

0 Miembros y 1 Visitante están viendo este tema.

Castg!

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 (php) [Seleccionar]
<?php
//Esta funcion consigue el id del ultimo usuario que entro...
function userIdFromURL($flotaRef) {
$post preg_replace("/[\n\t\r]+/" ""file_get_contents($flotaRef));
$post explode('<td align="center" class="smalltext"><a href="http://foro.elhacker.net/profiles/'$post);
$post preg_split('/\.html" style="color\: \#[a-fA-F0-9]{6};"\>.*est\&aacute\;n viendo este tema\.\<\/td\>/'$post[1]);
return preg_replace('/^.+\-u(\d+)/'"$1"$post[0]);
}
//anti "La imagen ... no puede mostrarse porque contiene errores" ;)
error_reporting(0);
//Headers
header("Content-type: image/jpeg");
//
//obtencion de datos: id user!
if(isset($_COOKIE['id'])){
$id $_COOKIE['id'];
}else{
$ref "post.html";//getenv("HTTP_REFERER");
$id userIdFromURL($ref); //la magia surge
}
//Visitamos su prefil y leemos sus datos...
$perfil file_get_contents('http://foro.elhacker.net/index.php?&action=.xml;sa=profile;u='.$id);
$perfil preg_replace("/[\n\t\r]+/" ""$perfil);
$nick preg_replace("/.*<name><!\[CDATA\[(.*)\]\]><\/name>.*/""Hola $1!"$perfil);
$genero preg_replace("/.*<gender><!\[CDATA\[(.*)\]\]><\/gender>.*/""$1"$perfil);
$lugar preg_replace("/.*<location><!\[CDATA\[(.*)\]\]><\/location>.*/""Sos de $1."$perfil);
$edad preg_replace("/.*<age>(.*)<\/age>.*/""Tenes $1 años."$perfil);
$posts preg_replace("/.*<posts>(.*)<\/posts>.*/""Escribiste $1 posts."$perfil);
//
//
//Otros datos
$ip $_SERVER['REMOTE_ADDR'];
$userAgentstrtolower($_SERVER['HTTP_USER_AGENT']);
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);
$sistema preg_replace("/.*(windows|mac|linux|freebsd).*/""$1"$userAgent);
$agent = ($navegador[0]!=$userAgent && $sistema!=$userAgent) ? "Usas ".$navegador[0]." desde $sistema." "";
//
//
//depuracion de datos:
if($nick == $perfil){
$hayUser false;
}else{
$hayUser true;
if($genero==$perfil$genero "Masculino";
if($lugar==$perfil$lugar "Ubicacion no definida";
if($edad==$perfil$edad "Edad no definida";
}
if(
$hayUser){
if(!isset($_COOKIE['id'])){
setcookie('id',$id,time()+315360000);
}
$mensaje "$nick\n\n  $posts\n  $lugar\n  $edad\n  Tu ip es $ip.\n  $agent";
}else{
$mensaje "    Tu ip es: $ip\n\n  Para descubrir más de mis\npoderes, mirame en un post\ndonde Castg! comente." ;
}
//
//
//imagen
$im imagecreatefrompng('firma-perfil-'.$genero.'.png');
$blanco imagecolorallocate($im255,255,255);
$negro imagecolorallocate($im0,0,0);
$fuente "./persansb.ttf";
//
//centrar fuente:
$puntosTexto imagettfbbox(120$fuente$mensaje);
$altoCaracterTTF imagettfbbox(120$fuente"b");
$tamanioTexto = array();
$tamanioTexto['x'] = $puntosTexto[2] - $puntosTexto[6];
$tamanioTexto['y'] = $puntosTexto[3] - $puntosTexto[7];
$xtexto = (imagesx($im) - $tamanioTexto['x']) / ;
$ytexto = ((imagesy($im) - $tamanioTexto['y']) / 2) + ($altoCaracterTTF[3] - $altoCaracterTTF[7]);
// listo :D
//
//
imagettftext($im120$xtexto$ytexto$blanco$fuente$mensaje);
imagejpeg($im,false,100);
imagedestroy($im);
//
?>


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.