Amigo.
El captcha por lo general funciona así:
Creas una sesión aleatoria, los caracteres de la sesión se muestran en una imagen, por lo tango, la imagen en realidad no tiene caracteres, simplemente se montan encima de ella mientras muestras el captcha en tu campo.
Como la sesión es aleatoria si alguien hace un robot de spam usando un codigo, le sera inutil porque es ramdom y se genera una diferente cada ves que cargas la página.
captcha.php
Código PHP:
<?php
session_start();
function randomText($length) {
$pattern = "1234567890abcdefghijklmnopqrstuvwxyz";
for($i=0;$i<$length;$i++) {
$key .= $pattern{rand(0,35)};
}
return $key;
}
$_SESSION['tmptxt'] = randomText(8);
$captcha = imagecreatefromgif("bgcaptcha.gif");
$colText = imagecolorallocate($captcha, 69, 11, 11);
imagestring($captcha, 5, 16, 7, $_SESSION['tmptxt'], $colText);
header("Content-type: image/gif");
imagegif($captcha);
?>
Pones una imagen en el mismo directorio de este archivo llamada bgcaptcha.gif
Para implementarla seria asi:
Código PHP:
<strong>Código Anti-Spam:</strong><br />
<div id="load_captcha"><img src='wp-content/plugins/polin/captcha/captcha.php' title='1' width='100' height='30' /></div>
<input name="codecptcha" type="text" class="frm_field" id="codecptcha" value="" maxlength="50" />
Y tu procesador de datos debera comprobar asi:
procesador.php
Código PHP:
<?
session_start();
if(isset($_POST['codecptcha'])) { $codecptcha=$_POST['codecptcha']; }
if($codecptcha==$_SESSION['tmptxt'])
{
echo "El capctha es correcto";
}
else
{
echo "El codigo que ingreso es incorrecto";
}