Tengo un formulario de contacto, que descargué y posteriormente edité lo que podía del código html y css, pero me ha llegado mucho spam al correo, x lo que quiero meter un captcha y no lo logro... aquí está el código:
Código:
Posteriormente viene esto:<?php //proceso del formulario // si existe "enviar"... if (isset ($_POST['enviar'])) { //recogemos las variables $nombre = $_POST['nombre']; $email = $_POST['email']; $comentario = $_POST['comentario']; //comprobamos si todos los campos fueron completados if (!preg_match("/([\w\.\-]+)(\@[\w\.\-]+)(\.[a-z]{2,4})+/i", $email)) { $flag='err'; $mensaje='<div class="errorContForm"><p>Correo electrónico inválido.</p></div>'; } else { $emailOk=$_POST['email']; } if ($nombre!='' && $email==$emailOk && $vsecc==$captchaOk && $comentario!='') { // si es asi armamos el html $contenido = '<html><body>'; $contenido .= '<h2>Contacto desde formulario</h2>'; $contenido .= '<p>Enviado el '. date("d M Y").'</p>'; $contenido .= '<hr />'; $contenido .= '<p>Nombre: <strong>'.$nombre.'</strong>'; $contenido .= '<p>Email: <strong>'.$email.'</strong>'; $contenido .= '<p>Comentario: <strong>'.$comentario.'</strong>'; $contenido .= '<hr />'; $contenido .= '</body></html>'; // si todos los campos fueron completados enviamos el mail mail ("[email protected]", "Formulario de contacto", $contenido, "From: $email\nContent-Type: text/html; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit"); $flag='ok'; $mensaje='<div id="warningBox"> <h4>¡Gracias por contactar a Seisiún!</h4> <p>Tu mensaje ha sido enviado y será respondido pronto.</p> </div>'; header("refresh:3;url=index.html"); /* Redirect browser */ } else { //si no todos los campos fueron completados se frena el envio y avisamos al usuario $flag='err'; $mensaje='<div class="errorContForm"><p>Revisá bien tu mensaje... Puede que falte algo...</p></div>'; } } ?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es" dir="ltr"> <head> <!-- aquí hay código irreelevante -->
Código:
Logré hacer que el captcha se "refrescara" al actualizar la página, pero aunque uno no escriba el captcha correctamente (incluso si se deja en blanco) el mensaje se envía! creo que el problema se halla en el comienzo, al momento del <!-- después de mucho bla bla bla --> <!-- Begin Contact Form --> <? echo $mensaje; /*mostramos el estado de envio del form */ ?> <? if ($flag!='ok') { $admin_email = "[email protected]"; $imgcode = "YES"; $vsecc = isset($_POST['vsecc']) ? strtoupper($_POST['vsecc']) : ""; ?> <form class="seisiunForm" action="contact.php" method="post"> <div> <label>* Nombre:</label> <input class="textBox" type="text" name="nombre" value="<? echo $_POST['nombre'];?>" /> </div> <div> <label>* Correo-e:</label> <input class="textBox" type="text" name="email" value="<? echo $_POST['email'];?>" /> </div> <div> <label>* Comentario:</label> <textarea class="textBox" name="comentario"><? echo $_POST['comentario'];?></textarea> <p class="smallNote">* Espacio requerido</p> </div> <?if (strtoupper($imgcode) == "YES") {?> <div class="verificationCode"> <h5>Verificación:</h5> <p class="verificationCode">Introducí el siguiente código:</p> <div class="captchaBox"> <img class="captcha" src="guestbook/image.php?<?=time()?>" alt="captcha" /> <input class="captcha" type="text" name="vsecc" /> </div> </div> <?}?> <div class="formbutton"> <input class="formbutton" type="submit" name="enviar" value="Enviar" /> <input class="formbutton" type="reset" value="Reset" /> </div> </form> <? // Captcha session_start(); $_SESSION['secc'] = strtoupper(substr(sha1(time().$admin_email),0,4)); if ($vsecc != $_SESSION['secc'] && strtoupper($imgcode) == "YES") { $flag='err'; $mensaje='<div class="errorContForm"><p>Código de verificación inválido,</p></div>'; } else { $captchaOk=$_POST['vsecc']; } } ?>
Código:
pero no sé que hacer ya que no sé casi nada de PHP, y me gustaría solucionar eso pronto...if (isset ($_POST['enviar'])) {...
Acá está el link del formulario: [URL="http://www.tradsession.com/contact.php"]http://www.tradsession.com/contact.php[/URL]
Gracias por su ayuda gente! saludos de Costa Rica!