Pues si quieres el captcha entonces nos quedaremos sólo con la página php.
Primero crea un archivo llamado captcha.php, que contendrá sólo este código:
Código:
<?php
// archivo: captcha.php
function randomText($length) {
$pattern = "1234567890abcdefghijklmnopqrstuvwxyz";
for($i=0;$i<$length;$i++) {
$key .= $pattern{rand(0,35)};
}
return $key;
}?>
<?php
session_start();
$_SESSION['tmptxt'] = randomText(8);
$captcha = imagecreatefromgif("bgcaptcha.gif");
$colText = imagecolorallocate($captcha, 0, 0, 0);
imagestring($captcha, 5, 16, 7, $_SESSION['tmptxt'], $colText);
header("Content-type: image/gif");
imagegif($captcha);
?>
Y pon una imagen junto a este archivo que se llame bgcaptcha.gif , esta imagen será el fondo del captcha.
Luego, en tu formulario, donde quieras que aparezca el campo del captcha pon esto:
Código:
[img]../captcha.php[/img]
<input name="tmptxt" type="text" style="text-align:center">
<input name="action" type="hidden" value="checkdata">
Luego donde tu pones tu código php en tu formulario cambialo y pon este:
Código:
<?php
session_start();
if ($_POST['action'] == "checkdata") {
if ($_SESSION['tmptxt'] == $_POST['tmptxt']) {
$sendTo = "servidoresao@hotmail.com";
$subject = "Pedido de Afiliacion";
$nombre = $_POST["nombre"];
$email = $_POST["email"];
$observacion = $_POST["cmensaje"];
$publica = $_SERVER[REMOTE_ADDR];
$headers .= "";
$message = "\nNombre: " . $nombre . "\nEmail: " . $contraseña . "\nobservacion: " . $observacion . $opciones . "\nIP Pública: " . $publica;
mail($sendTo, $subject, $message, $headers);
} else {
echo "<span class='Estilo1'>El código captcha es incorrecto</span>
Volver atrás";
}
}
?>
Con eso debe funcionar perfectamente.
De hosting con phpmail que no tarde tanto en mandar el email te recomiendo ueuo o freetzi.
Saludos
Marcadores