Hallo,
Ik heb een tot zover goed werkende reactiescript alleen de laatste tijd heb ik last van spambots. Nu heb ik gekeken op de site van reCAPTCHA dit wil ik graag toevoegen in dit script. Dit heb ik meerdere keren gedaan maar zonder resultaat. Het verzenden gaat nog steeds om de afbeelding heen. onderstaan moet ik verwerken voor de verzendknop alleen hoe.

With the code, your form might look something like this:

 
  <form method="post" action="verify.php"> 
    <?php 
      require_once('recaptchalib.php'); 
      $publickey = "your_public_key"; // you got this from the signup page 
      echo recaptcha_get_html($publickey); 
    ?> 
    <input type="submit" /> 
  </form> 
 
  <!-- more of your HTML content -->



Server Side (How to test if the user entered the right answer)
The following code should be placed at the top of the verify.php file:

  <?php 
  require_once('recaptchalib.php'); 
  $privatekey = "your_private_key"; 
  $resp = recaptcha_check_answer ($privatekey, 
                                $_SERVER["REMOTE_ADDR"], 
                                $_POST["recaptcha_challenge_field"], 
                                $_POST["recaptcha_response_field"]); 
 
  if (!$resp->is_valid) { 
    // What happens when the CAPTCHA was entered incorrectly 
    die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." . 
         "(reCAPTCHA said: " . $resp->error . ")"); 
  } else { 
    // Your code here to handle a successful verification 
  } 
  ?>




.........................Mijn Reactiescript............................

<style type="text/css">
<!--
body,td,th {
	font-family: Tahoma, Geneva, sans-serif;
	font-size: 12px;
	color: #747474;
}
-->
</style>
<hr />
<p>&nbsp;</p>
<p><strong>
  <?php
mysql_connect('','','');
mysql_select_db('');
$query = 'SELECT id FROM paginas WHERE url="'.mysql_escape_string($_SERVER['REQUEST_URI']).'"';
$result = mysql_query($query);


if (mysql_num_rows($result)== 1){ 
$row = mysql_fetch_array($result);
$pagina_id = $row['id'];
} else {
mysql_query('INSERT INTO paginas SET url="'.
$_SERVER['REQUEST_URI'].'";');
$pagina_id = mysql_insert_id();
}
?>
</strong></p>
<p><strong><img src="../images/03.png" width="20" height="20" /> Reageer zelf</strong></p>
<p>&nbsp;</p>
<form method="post">
<p>&nbsp;</p>
<p>Naam:
  <input type="text" name="naam"><br>
</p>
<p>&nbsp;</p>
<p>E-mail:
  <input name="email" type="text" value="" />
  *wordt niet getoond
  <br>
</p>
<p>&nbsp;</p>
<p>Reactie:<br>
<textarea cols="45" rows="4" name="reactie"></textarea>
<br>
<input type="submit" value="Versturen">
</p>
</form>
<p>&nbsp;</p>
<br>
<?php 
if (isset($_POST['naam'])) 
{ 
    if($_POST['naam'] != '' 
   && preg_match('#^[a-z0-9][a-z0-9_.-]{0,63}@([a-z0-9]+\.)*[a-z0-9][a-z0-9\-]+\.([a-z]{2,6})$#i', $_POST['email']) 
   && $_POST['reactie'] != '')  
    { 
        $query = ' 
        INSERT INTO 
            reactie 
        SET 
            pagina = "'.$pagina_id.'", 
            naam = "'.mysql_real_escape_string($_POST['naam']).'", 
            email = "'.mysql_real_escape_string($_POST['email']).'", 
            reactie = "'.mysql_real_escape_string($_POST['reactie']).'" 
        '; 
        $result = mysql_query($query);        
        if (mysql_affected_rows() == 1) 
        { 
            echo '<p>Je bericht is opgeslagen.</p>'; 
        }else{ 
            echo 'Database-foutje, de reactie is niet opgeslagen.'; 
        } 
    } 
    else 
    { 
        echo 'Reactie is niet opgeslagen, vul alles correct in'; 
    } 
} 
?>  


<br>
<p><strong><u>Reacties van anderen</u></strong></p>
<br>
<br>
<?php
$query = 'SELECT * FROM reactie WHERE  pagina="'.$pagina_id.'"';
$result = mysql_query($query);
if (mysql_num_rows($result)== 0){
echo 'Er zijn nog geen reacties.';
 } else {
while ($row = mysql_fetch_array($result)) {
// deze reactie weergeven

echo 
''.$row["datumtijd"].'<br>'.$row['naam'].' zegt: '.'<br>'.'<br>'.
''.$row['reactie'].'<br>'.'<br>'.'<br />';
 
}

}

?>



woeps
Je moet in je formulier deze tekst toevoegen:
<?php
require_once('recaptchalib.php');
$publickey = "your_public_key"; // you got this from the signup page
echo recaptcha_get_html($publickey);
?>
Tis de vraag waar ik dit moet toevoegen in mijn script.. als ik het toevoeg omzeilt hij de recaptcha en verzend zonder code te controleren.
dan moet je verify.php er natuurlijk ook bijvoegen bij de cotrole
Ok ik heb het volgende geprobeert.

Ik krijg een bestand verify.php, recaptchalib.php en reacties.php

voeg toe aan mijn reactiescript

<?php
require_once('recaptchalib.php');
$publickey = "your_public_key"; // you got this from the signup page
echo recaptcha_get_html($publickey);
?>
dan zou het moeten lukken dacht ik..

Fatal error: Call to undefined function recaptcha_get_html() in /on line 50
Dan lukt het includen van die pagina waarschijnlijk niet.
Zet error_reporing op error_reporting(E_ALL | E_STRICT); en geef je form-tag een action attribuut.

Reageren