Bonjour à tous,

Je vous souhaites à tous une heureuse et excellente année 2014.

Je viens vous exposer mon problème, étant floodé par 200 message de robot par jour sur mon livre d'or j'essaie d'installer un captcha sur ce dernier.

Après des milliers de test hélas sans succès !!! je viens vous quémander un peu d'aide.
Mon livre d'or n'a pas de base MySQL et est composé d'un fichier writeguest.php, guestbook.php.

Ma modification de code à eu lieu dans le fichier guestbook.php, en voici le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php session_start(); ?>
<!DOCTYPE html>
 
 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="description" CONTENT="">
<meta HTTP-EQUIV="IMAGETOOLBAR" content="no" SCROLLING="yes" >
<meta name="keywords" CONTENT="">
<head>
<title>Livre d'or</title>
 
<style type="text/css">
	body { 
		background: #000000; 
		color: #000000;
		font-family: Verdana ;
	color:white;
font-size:14px;
    }
 
</style> 
<style type="text/css">
div.grande 
    { 
 
    width : 70%; 
    } 
p{
  line-height:25px;
}
 
</style>
 
</head>
<body>
<form method=post action=writeguest.php 
onSubmit='if ( this.nom.value.length < 2 ) { return false ;}' >
 <BR><p align="center"><FONT FACE="gabriola" size="9" color="white">Fils de Sa&ocirc;ne</FONT></BR><FONT FACE="gabriola" size="6" color="white">Livre d'or </FONT></p></FONT>	
 
<table border="0" align="center"> 
<tr><td><img src="test.jpg"></td><td>
 <Div>
<table>
<tr><td><FONT FACE="monotype corsiva" size="4" color="white">Nom :</FONT></td>
    <td><input type=text name=nom size=25 ></td></tr>
<tr><td><FONT FACE="monotype corsiva" size="4" color="white">Mail :</FONT></td>
    <td><input type=text name=mail size=25 ></td></tr>
<tr><td><FONT FACE="monotupe corsiva" size="4" color="white">Message:</FONT></td><td colspan=1>
        <textarea name=message rows=6 cols=47></textarea>
    </td></tr>
</table>
</Div>
 
</td><td><img src="livre.jpg"></td></td></tr></table>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" >
         <div style="text-align:center;">Code de sécurité:
              <input name="secure" type="text" size="10" />
              <?php
   if (isset($_POST['submitform'])){
      $secure = isset($_POST['secure']) ? strtolower($_POST['secure']) : '';
      if ($secure == $_SESSION['securecode']) {
         echo '<FONT FACE="gabriola" size="9" color="white">Le code de sécurité est ok</FONT>';
         unset($_SESSION['securecode']);
      }
      else {  echo "<script language='JavaScript'>alertLe code de sécurité est incorrecte!</script>";
         }
    }
?>
              <img src="securitecode.php" alt="Code de sécurité" /></div></BR>
 
 
<div style="text-align:center;"><INPUT border=0 src="envoyer.jpg" type=image type=submit name="submitform" value="Envoyer" /></div>
</form>
<div style="text-align:center;"><a href="http://fils-de-saone.fr/index.htm"onMouseOver="window.status='';return true"><img src="bfermer.jpg"  BORDER="0" alt=""/></a></div>
 
<div align="center" ><div class="grande" style="border:3px solid #000000; padding 1px;"><div style="text-align:left;"><FONT FACE="gabriola" size="6" color="white"  >Vos impressions, commentaires:</FONT></div></div>
<div align="center" >
<div class="grande" style="border:3px solid #FFFFFF; padding 3px;"><div style="text-align:left;">
 <?php include("guestbook.txt"); ?></div></div>
 
</body>
</html>
Et voici le code du fichier securitecode.php qui doit vérifier le code captcha et générer l'image :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
 
 
 
// Créer un fichier securitecode.php dans lequel vous placer ce code :
session_start();
 
$largeur  = 120;
$hauteur  = 40;
$longueur = 5;
$liste = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$code    = '';
// $counter = 0;
 
$image = @imagecreate($largeur, $hauteur) or die('Impossible d\'initializer GD')
;
 
for( $i=0; $i<10; $i++ ) {
   imageline($image,
   mt_rand(0,$largeur), mt_rand(0,$hauteur),
   mt_rand(0,$largeur), mt_rand(0,$hauteur),
   imagecolorallocate($image, mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)
));
 }
 
for( $i=0, $x=0; $i<$longueur; $i++ ) {
   $charactere = substr($liste, rand(0, strlen($liste)-1), 1);
   $x += 10 + mt_rand(0,10);
   imagechar($image, mt_rand(3,5), $x, mt_rand(5,20), $charactere,
   imagecolorallocate($image, mt_rand(0,155), mt_rand(0,155), mt_rand(0,155)));
   $code .= strtolower($charactere);
 }
 
  header('Content-Type: image/jpeg');
  imagejpeg($image);
  imagedestroy($image);
 
  $_SESSION['securecode'] = $code;
// fin du code
?>
Mon gros problème est que quelque soit le captcha rentré, valide ou non ou même absent le message est envoyé !!! et je n'arrive pas à créer un bouton qui pourrait régénérer le code captcha dans le fichier securitecode.php

Je vous remercie par avance pour vos aides

Amicalement
scoubi