Codice PHP:
<?php
session_start();
//------------------------------------------------------------------------------------
// Unico valore da settare (la dir dove viene salvata l'immagine)
$dir_img = "/test_vari/code_img/code/";
//------------------------------------------------------------------------------------
function Code_Img($dir_img) {
$codice = rand(1000,9999);
$altezza = 20;
$perturba = 85;
$larghezza = strlen($codice)*11;
$im = imagecreate($larghezza, $altezza);
$colore_sfondo = imagecolorallocate($im, 255, 255, 255);
$colore_testo = imagecolorallocate($im, 100, 100, 100);
$colore_linea = imagecolorallocate($im, 200, 200, 200);
for ($i=1;$i<$altezza;$i=$i+6) {
imageline($im,1,$i,$larghezza,$i,$colore_linea);
}
for ($i=1,$temp=strlen($codice);$i<$temp*12;$i=$i+6) {
imageline($im,$i,1,$i,$altezza,$colore_linea);
}
for ($i=1;$i<$perturba;$i++) {
$temp = array(rand(1,$larghezza),rand(1,$altezza));
imageline($im,$temp[0],$temp[1],$temp[0],$temp[1],$colore_testo);
}
imagestring($im, 5, 5, 3, $codice, $colore_testo);
$rand_name = rand(1000,date("dmYHms")) . substr(microtime(), 2, 4) . ".jpg";
imagejpeg($im, $_SERVER["DOCUMENT_ROOT"] . $dir_img . $rand_name, 20);
// .............................
$_SESSION['code_img'] = $codice;
$_SESSION['name_img'] = $rand_name;
} // END function Code_Img
//------------------------------------------------------------------------------------
function Code_Img_Destroy($dir_img) {
$dir = $_SERVER["DOCUMENT_ROOT"];
if (file_exists($dir . $dir_img . $_SESSION['name_img']) == TRUE ){
if (is_writable($dir . $dir_img . $_SESSION['name_img'])){
unlink ($dir . $dir_img . $_SESSION['name_img']);
//...........................
unset($_SESSION['code_img']);
unset($_SESSION['name_img']);
$dir_img = NULL;
}
}
} // END function Code_Img_Destroy
//------------------------------------------------------------------------------------
if ( $_SERVER['REQUEST_METHOD'] == 'POST' && array_key_exists('code_img', $_POST) ) {
if (isset($_SESSION['name_img'])) {
if ($_POST['code_img'] == $_SESSION['code_img']) {
echo "Il codice è coretto :-)
";
// Elimina: sessioni, foto, dir
Code_Img_Destroy($dir_img);
// Termia o reindirizza o etc...
} else {
echo "Il codice è errato :-(
";
// Elimina: sessioni, foto e dir
Code_Img_Destroy($dir_img);
// Riparti
Code_Img($dir_img);
}
}
} else { // Allo start
Code_Img($dir_img);
}
?>
<?php if (isset($_SESSION['name_img'])) { ?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
[img]code/<?= $_SESSION['name_img']; ?>[/img]
<input name="code_img" type="text" value="">
<input name="submit" type="submit" value="INVIA">
</form>
<?php } ?>