Hola Linit. Yo tengo el mismo problema ahora. Tengo un spammer molestandome continuamente.
Mira. he buscado como loca. He encontrado un codigo php que genera una imagen con N digitos (en el ejemplo son 4). Quería unirme al post para hacer una pregunta y a ver si nos sirve a los dos:
HOLA CHICOS. Tengo este codigo. Lo dejo intacto para respetar la propiedad del mismo. El problema que tengo lo cuento despues del codigo:
Código PHP:
<?php
/*
El número está encryptado en Base64.
Ejemplo:
Para el número 1542, $key valdría: MTU0Mg==
Obtener números usando funciones de Base64:
Para codificar: base64_encode()
Para decodificar: base64_decode()
Uso del script:
<img src="imagen.php?key=MTU0Mg==">
o bien:
http://localhost/imagen.php?key=MTU0Mg==
Siendo "imagen.php" es script contendor del código citado en este archivo.
Dudas?
-> http://www.php.net/manual/es/ref.image.php
-> http://www.php.net/manual/es/function.base64-encode.php
-> http://www.php.net/manual/es/function.base64-decode.php
-> http://www.php.net/manual/es/function.header.php
**************************************************************
* Ejemplo escrito por: J. Arturo Ruz C.
* Correo electrónico: a r t u r o r u z @ m s n . c o m
* No olviden escribir e intercambiar ideas ;)
**************************************************************
/********************************************************************************************************
* IMPORTANTE: Este ejemplo está adecuado para el uso de 4 caracteres como máximo para la cadena "$key". *
********************************************************************************************************/
if(!isset($_GET['key'])) { $n=rand(1000,9999); } else { $n = base64_decode($_GET['key']); }
// Se establece el cabecero del documento, en este ejemplo será del tipo Imagen GIF
// Nota: El archivo GIF tiene mejor compresión ;)
header('Content-Type: image/gif');
// Se genera el área del gráfico
$grafico = imagecreate(70, 30);
// El primer color establecido será el color de fondo
$fondo = imagecolorallocate($grafico, 0, 0, 0);
// El siguiente color establecido será el color del texto
$color = imagecolorallocate($grafico, 255, 255, 255);
// Se establece el margen inicial para cada caracter escrito
$margen = 5;
// Se obtiene cada caracter de la cadena usando el loop for()
for($x = 0; $x < strlen($n); $x++) {
// Se extrae la cadena usando la función substr()
$c = substr($n,$x,1);
// La inclinación será 10 o -10 segun sea si el número de caracter es par o no
if(($x % 2)==0) { $rend = 10; } else { $rend = -10; }
// Se escribe el caracter en el gráfico
imagettftext($grafico, 20, $rend, $margen, 22, $color, 'musich.ttf', $c);
// Se incrementa el margen del siguiente caracter a escribir, en caso de existir
$margen += 16;
}
// Se obtiene el gráfico para mostrar en el navegador
imagegif($grafico);
// Destruye la imagen creada liberando la memoria
imagedestroy($grafico);
?>
El problema que se me plantea (no me conesta el susodicho autor, por eso pregunto aquí, pues me corre algo de urgencia!) es:
arriba en los comentarios reza lo siguiente:
<img src="imagen.php?key=MTU0Mg==">
Si cargo la pagina Imagen sale perfectamente.
Si pongo una imagen como pone en ese ejemplo no sale. NO SALE. Mi pregunta es : qué demonios está pasando por variable?? MTUOMG no esta en base64 como dice el autor?, entonces porqué pasa una variable CONCRETA? no debería generarse aleatoriamente? no entiendo porqué mete esta variable.
No entiendo porqué si cargo la pagina imagen.php sale y genera aleatoriamente numeros, y si pongo una imagemn con la etiqueta IMG en una pagina php, y con el archivo en la misma carpeta, no sale??
Porfavor, ayudadnos (a los dos :) )