El código de la imagen de captcha es el siguiente:
Código PHP:
Como dije, este código lo saque de internet. Es un captcha que genera una imagen de suma, también use este otro.Ver original
<?php // Creo los valores aleatorios y guardo el resultado $_SESSION["ResultadoCaptcha"] = $Valor1 + $Valor2; // Creo una imagen vacia de 120x30 a la que pintaremos el fondo transparente y los valores en negro // Cabecera para la imagen PNG // Imprimo la imagen // Liberar memoria ?>
Código PHP:
Ver original
<?php ########################################################################################### # # CAPTCHA FÁCIL 1.0 # # Autor: Alejandro Martín Núñez # Contact: alemnunez at gmail dot com # Date: October 10, 2009 # # COMO USAR CAPTCHA FÁCIL # # FORMULARIO # En el formulario que deseas validar, inserta el siguiente código: # # <img src="captcha.php" /><br/> # <input type="text" size="12" name="captcha" /> # # # VERIFICACIÓN # Al procesar el formulario, compara el contenido del campo que # completó el usuario con el contenido de $_SESSION["captcha"] # que generó este programa: # # session_start(); # if(strtoupper($_REQUEST["captcha"]) == $_SESSION["captcha"]){ # // REMPLAZO EL CAPTCHA USADO POR UN TEXTO LARGO PARA EVITAR QUE SE VUELVA A INTENTAR # $_SESSION["captcha"] = md5(rand()*time()); # // INSERTA EL CÓDIGO EXITOSO AQUI # }else{ # // REMPLAZO EL CAPTCHA USADO POR UN TEXTO LARGO PARA EVITAR QUE SE VUELVA A INTENTAR # $_SESSION["captcha"] = md5(rand()*time()); # // INSERTA EL CÓDIGO DE ERROR AQUÍ # } # # # OLVIDÁ EL SPAM! # ########################################################################################### #create image and set background color #draw some lines for($i=0;$i<10;$i++){ } #generate a random string of 5 characters #make string uppercase and replace "O" and "0" to avoid mistakes #save string in session "captcha" key $_SESSION["captcha"]=$string; #place each character in a random position $font = 'arial.ttf'; for($i=0;$i<5;$i++){ imagettftext ($captcha, 15, rand(-25,25), $x, $y, imagecolorallocate($captcha, $color, $color, $color), $font, $string[$i]); }else{ imagestring($captcha, 5, $x, $y, $string[$i], imagecolorallocate($captcha, $color, $color, $color)); } } #applies distorsion to image #avoids catching #return the image ?>
La validación la hago en un archivo php separado del HTML , la validación funciona perfectamente, y como dije, nose de PHP, asi que intente hacer lo que pude con los conocimientos que tenia.
Código PHP:
Ver original
<?php $nombre = $_POST['nombre']; $email = $_POST['email']; $mensaje = $_POST['mensaje']; $asunto = $_POST['asunto']; $news = $_POST['newsletter']; $titulo = $asunto; $header = 'From: ' . $email; $msjCorreo = "Nombre: $nombre\n E-Mail: $email\n Asunto: $asunto\n Mensaje:\n $mensaje"; if ($_POST['submit']) { if ($_POST["captcha"] == $_SESSION["ResultadoCaptcha"]) { mail($email,'Contacto Movimiento Aztlan',"Gracias por su mensaje \n En breve nos comunicaremos con usted para darle una respuesta",'From: '.$para)){ if( $news == 'SI' ){ mail($new,'Nuevo contacto para Newsletter',"Este es un nuevo contacto para la lista de Newsletter",$header); } echo "<script language='javascript'> window.location.href = 'mensaje_enviado.html'; </script>"; } else { echo "<script language='javascript'> window.location.href = 'error_mensaje.html' </script>"; } } else { echo "<script language='javascript'> window.location.href = 'captcha_incorrecto.html'; </script>"; } } ?>
La razón por la que pongo "window.location.href", es porque crei que si después de mandar el correo, o de que se equivoque, lo mande a otra pagina, donde espera 5 segundos para que lo redireccione a otra pagina, y de esta forma, tuviera que volver a "contacto" y que ahí recargara la pagina, pero claro que no funciono, D:
El HTML lo tengo asi, solo es el fragmento donde esta el formulario:
Código HTML:
Ver original
<form action="contacto.php" method="post"> <input class="form" id="nombre" type="text" name="nombre" placeholder="Nombre y Apellido (opcional)" /> <input class="form" id="email" type="email" name="email" placeholder="[email protected]" required/> <input class="form" id="asunto" type="text" name="asunto" placeholder="Ej. Sugerencia, Queja, Pedido, etc. (opcional)" /> <input class="form" id="submit" type="submit" name="submit" value="Enviar" />
Si me pudieran ayudar, se los gradeceria mucho, :D
Lo vuelvo a decir, no tengo conocimientos en php, tampoco en javascrip, pero si logro entender su funcionamiento. :D