Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: captcha met cijfers  (gelezen 25515 keer)

0 leden en 1 gast bekijken dit topic.

Offline Fons De Spons

  • Nieuw lid
  • Berichten: 1
  • Oplossing.be
captcha met cijfers
« Gepost op: 28 januari 2020, 18:54:01 »
Bij een vorige website van mij heeft een formulier met captcha-code prima gewerkt. Bij een nieuwe site gebruik ik hetzelfde script maar het werkt nu niet. Maar ik krijg enkel de laatste alert over de verkeerde code te zien, ook al wordt de oplossing in het invulveld juist getypt. Wat kan er mis zijn?

invulformulier.php
<form id="form1" name="form1" method="post" action="contact/verwerk.php" enctype="multipart/form-data" onSubmit="return verplicht();">
<p align="center"> <br>
 <table width="95%" border="1" align="left" cellpadding="0" cellspacing="0" bordercolor="#c94d7f">
  <tr>
    <td><table width="100%" border="0" align="left" cellpadding="0" cellspacing="0" ><tr>
      <td valign="bottom"><table width="100%" border="0" align="left" cellpadding="0" cellspacing="0" >
      <tr>
        <td height="20"><div align="right"></div></td>
        <td height="20" >&nbsp;</td>
        <td height="20" colspan="3" align="center">&nbsp;</td>
      </tr>
      <tr>
        <td height="30"><div align="right"><font face="Helvetica, Arial, sans-serif" size="2" color="#c94d7f">Uw naam *</font></div></td>
        <td height="30" >&nbsp;</td>
        <td height="30" colspan="3"><input name="voornaam" type="text" class="tekstveld" id="voornaam" value="
<?php echo($voornaam);?>
" size="51"/>
         </td>
      </tr>
      <tr>
        <td height="30" ><div align="right"><font face="Helvetica, Arial, sans-serif" size="2" color="#c94d7f">Uw emailadres *</font></div></td>
        <td height="30" >&nbsp;</td>
        <td height="30" colspan="3"><input name="emailadres" type="text" id="emailadres" value="
<?php echo($emailadres);?>
" size="51"/>
          </td>
      </tr>
      <tr>
        <td height="30" ><div align="right"><font face="Helvetica, Arial, sans-serif" size="2" color="#c94d7f">Uw telefoon</font><font face="Helvetica, Arial, sans-serif" size="2" color="white"> *</font></div></td>
        <td height="30" >&nbsp;</td>
        <td height="30" colspan="3"><input name="telefoon" type="text" id="telefoon" value="
<?php echo($telefoon);?>
" size="51"/>
          </td>
      </tr>
       <tr>
        <td height="20" >&nbsp;</td>
        <td width="14" height="20" >&nbsp;</td>
        <td height="20" colspan="3">&nbsp;</td>
      </tr>     
      <tr>
        <td height="30" ><div align="right"><font face="Helvetica, Arial, sans-serif" size="2" color="#c94d7f">Onderwerp *</font></div></td>
        <td height="30" >&nbsp;</td>
        <td height="30" colspan="3"><input name="onderwerp" type="text" id="onderwerp" value="
<?php echo($onderwerp);?>
" size="51"/></td>
      </tr>

      <tr>
        <td width="214" height="5"></td>
        <td width="14" height="5"></td>
        <td width="154" height="5"></td>
        <td width="224" height="5"></td>
        <td width="190" height="5"></td>
      </tr>
      <tr>
        <td width="214" height="7"><div align="right"><font face="Helvetica, Arial, sans-serif" size="2" color="#c94d7f">Uw bericht *</font></div></td>
        <td width="14" height="0">&nbsp;</td>
        <td height="0" colspan="3"><textarea name="bericht" cols="40" rows="7" id="bericht" style="width:90%" value="
<?php echo nl2br($bericht);?>
"></textarea></td>
      </tr>
      <tr>
        <td width="214" height="20">&nbsp;</td>
        <td width="14" height="20">&nbsp;</td>
        <td height="20" colspan="3"> </td>
      </tr>
   
      <tr>
        <td width="214" height="15" ><div align="right"><font face="Helvetica, Arial, sans-serif" size="2" color="#c94d7f">Anti-spam *</font></div></td>
        <td width="14" height="0" ></td>
        <td width="154" height="0" valign="middle"><img src="http://www.de-dam.be/captcha/captcha.php" width="130" height="21" /></td>
        <td width="224" valign="middle"><input type="text" name="CAPTCHA" /></td>
        <td width="190" height="6" align="left" valign="middle">
<?php						if($_SESSION['CAPTCHA'] != $_POST['CAPTCHA']) {			echo 'verkeerde code';			}		else		("	<center>          <input type=\"submit\" name=\"verzenden\" id=\"verzenden\" value=\"Verzenden\" />        </center>");			?>
</td>
      </tr>
      <tr>
        <td height="20" >&nbsp;</td>
        <td width="14" height="20" ></td>
        <td height="20" colspan="3" valign="middle">&nbsp;</td>
        </tr>
     
      <tr>
        <td colspan="5"></td>
      </tr>
    </table>
      </tr>
    </table></td>
  </tr>
</table>
</p>

<center>
<table width="90%" border="0" cellspacing="0" cellpadding="0">
  <tbody>
    <tr>
      <td height="20">&nbsp;</td>
    </tr>
  </tbody>
</table>

  <p>
    <input type="submit" name="verzenden" id="verzenden" value="Verzenden" />
  </p>
        </center>           
</form>

verwerk.php
(ik krijg enkel de laatste alert over de verkeerde code te zien, ook al wordt de oplossing in het invulveld juist getypt)
<?phpsession_start();?>


<!DOCTYPE html>

<html lang="en">
<head></head>
 
<body ontouchstart="">

<?php stripslashes($_POST['text']);if (get_magic_quotes_gpc()) {    function stripslashes_deep($value)    {        $value = is_array($value) ?                    array_map('stripslashes_deep', $value) :                    stripslashes($value);        return $value;    }    $_POST = array_map('stripslashes_deep', $_POST);    $_GET = array_map('stripslashes_deep', $_GET);    $_COOKIE = array_map('stripslashes_deep', $_COOKIE);    $_REQUEST = array_map('stripslashes_deep', $_REQUEST);}$voornaam = mysql_real_escape_string($_POST['voornaam']);  $emailadres = mysql_real_escape_string($_POST['emailadres']); $telefoon = mysql_real_escape_string($_POST['telefoon']); $onderwerp = mysql_real_escape_string($_POST['onderwerp']); $bericht = mysql_real_escape_string($_POST['bericht']); 	echo "";			if(!strlen($_POST['voornaam'])) {     echo ' Gelieve uw naam in te vullen.<br><br>';     echo '<a href="javascript:history.back(1);">Terug</a><br><br>'; } elseif(!strlen($_POST['emailadres'])) {     echo ' Gelieve uw emailadres in te vullen.<br><br>';     echo '<a href="javascript:history.back(1);">Terug</a><br><br>'; 	} elseif(!preg_match("/.+@[a-zA-Z0-9_-]+..+/", $_POST['emailadres'])) {      echo ' U hebt geen geldig emailadres ingevuld.<br><br>';     echo '<a href="javascript:history.back(1);">Terug</a><br><br>';} elseif(!strlen($_POST['onderwerp'])) {     echo ' Gelieve een onderwerp in te vullen.<br><br>';     echo '<a href="javascript:history.back(1);">Terug</a><br><br>'; 	 		} elseif(!strlen($_POST['bericht'])) {     echo ' Gelieve een bericht te schrijven. <br><br>';     echo '<a href="javascript:history.back(1);">Terug</a><br><br>';		} elseif(!strlen($_POST['CAPTCHA'])) {     echo ' Gelieve de anti-spamcode in te vullen. <br><br>';     echo '<a href="javascript:history.back(1);">Terug</a><br><br>';			                                 } elseif ($_SESSION['CAPTCHA'] != $_POST['CAPTCHA']) {    echo ' <b>Je hebt de verkeerde code opgegeven!</b><br><br>';     echo '<a href="javascript:history.back(1);">Terug</a><br><br>'; 	}        else {$voornaam=$_POST['voornaam'];$emailadres=$_POST['emailadres'];$telefoon=$_POST['telefoon'];$onderwerp=$_POST['onderwerp'];$bericht=$_POST['bericht'];$datum = date("d-m-Y H:i");$to  = 'info@website.be' . ', ';$subject = "onderwerp";$mail_body = "<html><head><title>" . $onderwerp . "</title></head><body>hier alle content</body></html>";$headers  = 'MIME-Version: 1.0' . "\r\n";$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";$headers .= 'From: Website <info@website.be>' . "\r\n";mail($to, $subject, $mail_body, $headers);$to =  " ". $emailadres . " ";$subject = 'uw ingestuurd bericht';$mail_body = "<html><head>  <title>" . $onderwerp . "</title></head><body>Uw bericht is met succes verzonden en zal zo snel mogelijk bekeken worden. </body></html>";$headers  = 'MIME-Version: 1.0' . "\r\n";$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";$headers .= 'From: <info@website.be>' . "\r\n";mail($to, $subject, $mail_body, $headers);?>

<meta http-equiv="REFRESH" content="5;URL=../invulformulier.php">
<p class="titel">Bericht verstuurd</p>

<?php echo "Deze vraag is met succes doorgestuurd,<br>en zal snel bekeken worden."; ?>

<br><br>
 
<?phpecho"U wordt zometeen teruggestuurd."; ?>


</body>
</html>

<?php}?>


captcha.php
<?php	session_start();	header('content-type: image/png');		$numbers 	= array();	$numbers[]	= rand(1, 9);	$numbers[]  = rand(1, 9);		if(rand(0, 1) == 0) {		$_op 						= '+'; 		$code						= strval($numbers[0]) .' + ' .strval($numbers[1]) .' =';		$_SESSION['CAPTCHA'] = $numbers[0] + $numbers[1];	} else {		$_op 						= '*';			$code						= strval($numbers[0]) .' x ' .strval($numbers[1]) .' =';		$_SESSION['CAPTCHA'] = $numbers[0] * $numbers[1];	}	session_write_close();	$font = dirname(__FILE__) .'/fonts/arial.ttf';	$width  = 16;	$height = 20;		$code_length = 7;		$image_height = $height + 2;	$image_width  = $width * $code_length + 20;		$im 	  = imagecreatetruecolor($image_width, $image_height);	$white  = imagecolorallocate($im, 255, 255, 204);	imagefill($im, 0, 0, $white);	$theme   = array();	$theme[]	= array('CHAR_COLOR' => 							array('R' => array(204, 204),									'G' => array(0, 0),									'B' => array(0, 0) 									),						   'BG_COLOR' =>							array('R' => array(204, 204),									'G' => array(0, 0),									'B' => array(0, 0) 									)						 );	$theme[]	= array('CHAR_COLOR' => 							array('R' => array(204, 204),									'G' => array(0, 0),									'B' => array(0, 0) 									),						   'BG_COLOR' =>							array('R' => array(204, 204),									'G' => array(0, 0),									'B' => array(0, 0) 									)						 );	$theme[]	= array('CHAR_COLOR' => 							array('R' => array(204, 204),									'G' => array(0, 0),									'B' => array(0, 0) 									),							'BG_COLOR' =>							array('R' => array(204, 204),									'G' => array(0, 0),									'B' => array(0, 0) 									)						 );		$pos_x 	= 5;	$pos_y 	= 20;	$random = rand(0, (count($theme) - 1) );	$angle	= 0;	$size	   = 16;	for($i = 0, $count = strlen($code); $i < $count; $i++) {							$color  = imagecolorallocate($im, 											  rand($theme[$random]['CHAR_COLOR']['R'][204], $theme[$random]['CHAR_COLOR']['R'][1]), 											  rand($theme[$random]['CHAR_COLOR']['G'][0], $theme[$random]['CHAR_COLOR']['G'][1]), 											  rand($theme[$random]['CHAR_COLOR']['B'][0], $theme[$random]['CHAR_COLOR']['B'][1])											  ); 						imagettftext($im, $size, $angle, $pos_x, $pos_y, $color, $font, $code{$i});		$pos_x  += $width + 1;					}	imagepng($im);		imagedestroy($im);	?>


Wat ontbreekt er of is er fout?