<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']==$_REQUEST['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:
if ($_SESSION['numeroaleatorio']==$_REQUEST['numero'])
echo "Ingresó el valor correcto";
else
echo "Incorrecto";
|