Como una imagen puede cambiar estando en el mismo directorio

Iniciado por BALTA00, 16 Abril 2015, 22:13 PM

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

BALTA00

Esto es simple curiosidad, y ganas de aprender, he visto captchas que por ejemplo la imagen está en http://mipagina.com/captcha.jpg abro el enlace directo al directorio, y me sale un capcha, actualizo, y desde la misma ruta me carga otro o.

:o ¿Cómo es eso posible?

engel lex

se llama script de servidor, paginas dinamicas o como quieras llamarla... la imagen no existe, se genera cada vez que es solicitada

en php puede ser tan simple como
Código (php) [Seleccionar]
<?php
session_start
();
$ranStr md5(microtime());
$ranStr substr($ranStr06);
$_SESSION['cap_code'] = $ranStr;
$newImage imagecreatefromjpeg("cap_bg.jpg");
$txtColor imagecolorallocate($newImage000);
imagestring($newImage555$ranStr$txtColor);
header("Content-type: image/jpeg");
imagejpeg($newImage);
?>


y para revisar que esté correcta la respuesta del usuario

Código (php) [Seleccionar]
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
if (
$_POST['captcha'] == $_SESSION['cap_code']){
// Captcha verification is Correct. Do something here!
}else{
// Captcha verification is wrong. Take other action
}
}
?>
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

BALTA00

:O Ya veo, y las imágenes se generan a partir de un directorio real, y el script hace que de manera aleatoria al hacer la request el servidor me envíe una de las imágenes de X directorio a esa ubicación?

engel lex

en este caso usa es una imagen solo como fondo (para que el fondo no sea plano unicolor)

explico por lineas

2.inicia sesion (para aguardar el resultado y comprobar luego)
3. crea una cadena (md5)
4. toma 6 letras de esa cadena
5. guarda el resultado en la sesión
6. crea una imagen en ram tipo jpg, a partir de una imagen que será el fondo
7. se escoge negro como color de letra
8. se coloca el texto al azar en la imagen
9. se le indica al navegador que lo que va en camino es una imagen jpg
10. se envía la imagen al navegador

aquí termina el script y esa imagen ya no exíste más...

puede tambien agarrar una imagen de un directorio al azar pero es más limitado
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

BALTA00

Cita de: engel lex en 16 Abril 2015, 22:46 PM
en este caso usa es una imagen solo como fondo (para que el fondo no sea plano unicolor)

explico por lineas

2.inicia sesion (para aguardar el resultado y comprobar luego)
3. crea una cadena (md5)
4. toma 6 letras de esa cadena
5. guarda el resultado en la sesión
6. crea una imagen en ram tipo jpg, a partir de una imagen que será el fondo
7. se escoge negro como color de letra
8. se coloca el texto al azar en la imagen
9. se le indica al navegador que lo que va en camino es una imagen jpg
10. se envía la imagen al navegador

aquí termina el script y esa imagen ya no exíste más...

puede tambien agarrar una imagen de un directorio al azar pero es más limitado

wow, era más complejo de lo que creía, pensé que había un directorio con montones de imágenes y el servidor tenía prestablecido que valor de números y letras tenía cada imagen.

engel lex

#5
Cita de: BALTA00 en 16 Abril 2015, 22:50 PM
wow, era más complejo de lo que creía, pensé que había un directorio con montones de imágenes y el servidor tenía prestablecido que valor de números y letras tenía cada imagen.

todo lo contrario  ;D es más simple! no necesitas un directorio con 100.000.000 de imágenes, sino solo unas decenas de lineas de códigos y tienes imágenes casi infinitas

claro, este es un ejemplo simple... algo más robusto requeriría más programación...

esta tecnica tambien suele usarse para marcas de agua e imagenes dinamicas (como fb que nunca te dice el nombre real de la imagen o donde está guardada)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

BALTA00

Muy conforme con la respuesta, gracias por la mini clase de captchas e imágenes dinámicas.