Categoria: Programacion Tema: Php Titulo: Agregar imagenes dinamicas en un archivo HTML php
Fecha del Tema: 2013-04-24 18:51:33En un concepto anterior habíamos visto como crear un archivo gráfico en forma dinámica y el envío del mismo al navegador que lo solicitó. Ahora veremos como crear el archivo de la imagen y su posterior incorporación en una página HTML. Continuaremos con el problema del dígito de verificación, pero ahora lo incorporaremos en un formulario donde el operador debe tipear el número que está viendo. En una tercera página verificaremos si ingresó el mismo valor que se generó en forma aleatoria. La primera página "pagina1.php" es el formulario: <html> <head> <title>Problema</title> </head> <body> <form action="pagina3.php" method="post"> Dígitos verificadores:<img src="pagina2.php"> <br> Ingrese valor: <input type="text" name="numero"> <br> <input type="submit" value="Verificar"> </form> </body> </html> Tengamos en cuenta que ésta es la página que se solicita inicialmente. Dentro de esta página, se incorpora una marca img para agregar una imagen a la página, pero la misma no es un archivo estático sino un archivo PHP que genera la imagen: Dígito verificador:<img src="pagina2.php"> Tengamos en cuenta que la página que procesa el valor ingresado y el valor generado en forma aleatoria es la tercera página: <form action="pagina3.php" method="post"> El segundo archivo "pagina2.php" es la imagen propiamente dicha: <?php $ancho=100; $alto=30; $imagen=imageCreate($ancho,$alto); $amarillo=ImageColorAllocate($imagen,255,255,0); ImageFill($imagen,0,0,$amarillo); $rojo=ImageColorAllocate($imagen,255,0,0); $valoraleatorio=rand(100000,999999); session_start(); $_SESSION[`numeroaleatorio`]=$valoraleatorio; ImageString($imagen,5,25,5,$valoraleatorio,$rojo); for($c=0;$c<=5;$c++) { $x1=rand(0,$ancho); $y1=rand(0,$alto); $x2=rand(0,$ancho); $y2=rand(0,$alto); ImageLine($imagen,$x1,$y1,$x2,$y2,$rojo); } Header ("Content-type: image/jpeg"); ImageJPEG ($imagen); ImageDestroy($imagen); ?> El algoritmo es el mismo visto en un concepto anterior, la única salvedad es que necesitamos almacenar en una variable de sesión, el número aleatorio para poder compararlo en la página que procesa el formulario: session_start(); $_SESSION[`numeroaleatorio`]=$valoraleatorio; Por último el tercer archivo "pagina3.php": <?php session_start(); ?> <html> <head> <title>Problema</title> </head> <body> <?php if ($_SESSION[`numeroaleatorio`]==$_POST[`numero`]) echo "Ingresó el valor correcto"; else echo "Incorrecto"; ?> </body> </html> Lo primero que hacemos es llamar a la función que rescata las variables de sesión: <?php session_start(); ?> Disponemos un if para verificar si el valor ingresado en el formulario es el mismo que el valor almacenado en la variable de sesión: <?php if ($_SESSION[`numeroaleatorio`]==$_POST[`numero`]) echo "Ingresó el valor correcto"; else echo "Incorrecto"; ?>
En un concepto anterior habíamos visto como crear un archivo gráfico en forma dinámica y el envío del mismo al navegador que lo solicitó. Ahora veremos como crear el archivo de la imagen y su posterior incorporación en una página HTML. Continuaremos con el problema del dígito de verificación, pero ahora lo incorporaremos en un formulario donde el operador debe tipear el número que está viendo. En una tercera página verificaremos si ingresó el mismo valor que se generó en forma aleatoria. La primera página "pagina1.php" es el formulario: <html> <head> <title>Problema</title> </head> <body> <form action="pagina3.php" method="post"> Dígitos verificadores:<img src="pagina2.php"> <br> Ingrese valor: <input type="text" name="numero"> <br> <input type="submit" value="Verificar"> </form> </body> </html> Tengamos en cuenta que ésta es la página que se solicita inicialmente. Dentro de esta página, se incorpora una marca img para agregar una imagen a la página, pero la misma no es un archivo estático sino un archivo PHP que genera la imagen: Dígito verificador:<img src="pagina2.php"> Tengamos en cuenta que la página que procesa el valor ingresado y el valor generado en forma aleatoria es la tercera página: <form action="pagina3.php" method="post"> El segundo archivo "pagina2.php" es la imagen propiamente dicha: <?php $ancho=100; $alto=30; $imagen=imageCreate($ancho,$alto); $amarillo=ImageColorAllocate($imagen,255,255,0); ImageFill($imagen,0,0,$amarillo); $rojo=ImageColorAllocate($imagen,255,0,0); $valoraleatorio=rand(100000,999999); session_start(); $_SESSION[`numeroaleatorio`]=$valoraleatorio; ImageString($imagen,5,25,5,$valoraleatorio,$rojo); for($c=0;$c<=5;$c++) { $x1=rand(0,$ancho); $y1=rand(0,$alto); $x2=rand(0,$ancho); $y2=rand(0,$alto); ImageLine($imagen,$x1,$y1,$x2,$y2,$rojo); } Header ("Content-type: image/jpeg"); ImageJPEG ($imagen); ImageDestroy($imagen); ?> El algoritmo es el mismo visto en un concepto anterior, la única salvedad es que necesitamos almacenar en una variable de sesión, el número aleatorio para poder compararlo en la página que procesa el formulario: session_start(); $_SESSION[`numeroaleatorio`]=$valoraleatorio; Por último el tercer archivo "pagina3.php": <?php session_start(); ?> <html> <head> <title>Problema</title> </head> <body> <?php if ($_SESSION[`numeroaleatorio`]==$_POST[`numero`]) echo "Ingresó el valor correcto"; else echo "Incorrecto"; ?> </body> </html> Lo primero que hacemos es llamar a la función que rescata las variables de sesión: <?php session_start(); ?> Disponemos un if para verificar si el valor ingresado en el formulario es el mismo que el valor almacenado en la variable de sesión: <?php if ($_SESSION[`numeroaleatorio`]==$_POST[`numero`]) echo "Ingresó el valor correcto"; else echo "Incorrecto"; ?>