Help!

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

Hulp bij posten

Recente topics

Auteur Topic: captcha met cijfers  (gelezen 5408 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)
<?php
session_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>
  <?php
echo"U wordt zometeen teruggestuurd."
?>


</body>
</html>

<?php
}
?>


captcha.php
<?php

session_start();

header('content-type: image/png');

$numbers  = array();
$numbers[] rand(19);
$numbers[]  = rand(19);

if(rand(01) == 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($im255255204);
imagefill($im00$white);

$theme   = array();
$theme[] = array('CHAR_COLOR' => 
array('R' => array(204204),
'G' => array(00),
'B' => array(00
),
   'BG_COLOR' =>
array('R' => array(204204),
'G' => array(00),
'B' => array(00
)
 );
$theme[] = array('CHAR_COLOR' => 
array('R' => array(204204),
'G' => array(00),
'B' => array(00
),
   'BG_COLOR' =>
array('R' => array(204204),
'G' => array(00),
'B' => array(00
)
 );
$theme[] = array('CHAR_COLOR' => 
array('R' => array(204204),
'G' => array(00),
'B' => array(00
),
'BG_COLOR' =>
array('R' => array(204204),
'G' => array(00),
'B' => array(00
)
 );

$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?
« Laatst bewerkt op: 28 januari 2020, 20:32:13 door Fons De Spons »

 


www.combell.com