nz5 Posted August 3, 2012 Report Share Posted August 3, 2012 (edited) Hola comunidad, solicito su ayuda nuevamente ya que necesito insertar una captcha en un formulario que tengo en html y php.Probé con recaptcha.net pero me pide el dominio y bueno el dominio lo se cual sera :S. Edito el tema ya que logre que me aparezca la captcha donde quiero ahora el problema es que en el archivo enviar.php que envía el mail al completar los datos en el formulario html no me envía los mail cuando agrego las lineas para comprobar la captcha. El codigo: el formulario en html <div class="content_section"><form id="contacto" name="contacto" method="post" action="enviar.php"> <strong><label>Nombre<br /> <input name="nombre" type="text" id="nombre" size=30 /> </label> </strong> <p><strong> </strong> </p> </p> <p><strong> <label>Mail<br /> <input name="mail" type="text" id="mail" size=30 /> </label> </strong></p> <p><strong><label>Mensaje<br /> <textarea name="mensaje" cols="65" rows="8" id="mensaje"></textarea></label></strong></p> <img src="captcha.php" width="100" height="30"> <input name="tmptxt" type="text"> Código de seguridad (mayúsculas, minúsculas y números)<br> <p><input type="submit" name="Submit" value="Enviar" onclick=”validar_formulario()”/></p> </form> Ahora el codigo enviar.php que envia el mail <?php function correo($valor){ if(eregi("([a-zA-Z0-9._-]{1,30})@([a-zA-Z0-9.-]{1,30})",$valor)){ return true; }else{ // echo "Ingrese correo válido"; return false; } } $nombre = $_POST['nombre']; if (!isset($nombre) || $nombre == '') { exit('Falta completar el nombre.Vuelva atrás'); } //$empresa = $_POST['empresa']; $mail = $_POST['mail']; if (!isset($mail) || $mail == '') { exit('Falta completar su Email.'); }else if(correo($mail)==false){ exit('Correo inválido. Vuelva atrás e ingrese un correo válido'); } $header = 'From: ' . $mail . " rn"; $header .= "X-Mailer: PHP/" . phpversion() . " rn"; $header .= "Mime-Version: 1.0 rn"; $header .= "Content-Type: text/plain"; $mensaje = "Este mensaje fue enviado por " . $nombre . "rn"; $mensaje .= "Su e-mail es: " . $mail . " rn"; $mensaje .= "Mensaje: " . $_POST['mensaje'] . " rn"; $mensaje .= "Enviado el " . date('d/m/Y', time()); $para = '[email protected]'; $asunto = 'Consulta Jornada Psicología Internacional'; // Validar argumentos y captcha if(!$_POST) { header('Location: '.$conf['url_error']); exit; } if ($_SESSION['tmptxt'] != $_POST['tmptxt']) { header('Location: '.$conf['url_error']); exit; } mail($para, $asunto, utf8_decode($mensaje), $header); echo "Su mensaje ha sido enviado. Ahora puedes regresar a la <a href='http://www.claudio.comuf.com/ucm/contacto.html'>Página</a>"; ?> Ahora el codigo captcha.php que genera la imagen // PARAMETROS DE LA IMAGEN ////////////////////////////// $ancho = 100; // Ancho de la imágen $alto = 30; // Alto de la imágen $lineas = 6; // Cantidad de lineas de relleno $chars = 6; // Cantidad de caracteres del captcha // CREO EL OBJETO IMAGEN Y LOS COLORES A UTILIZAR /////// $imagen = imagecreate($ancho,$alto); $cLineas = imagecolorallocate($imagen,140,140,140); $cFondo = imagecolorallocate($imagen,200,200,200); $cTexto = imagecolorallocate($imagen,000,000,000); // PINTO EL FONDO /////////////////////////////////////// imagefill($imagen, 0, 0, $cFondo); // AGREGO UNAS LINEAS DE RELLENO //////////////////////// for($c=0; $c <= $lineas; $c++) { $x1=rand(0,$ancho); $y1=rand(0,$alto); $x2=rand(0,$ancho); $y2=rand(0,$alto); imageline($imagen,$x1, $y1, $x2, $y2, $cLineas); } // GENERO EL TEXTO ALEATORIO //////////////////////////// $_SESSION['tmptxt'] = randomText($chars); // AGREGO EL TEXTO ALEATORIO A LA IMAGEN //////////////// imagestring($imagen, 5, 25, 7, $_SESSION['tmptxt'], $cTexto); // DEVUELVO LA IMAGEN GENERADA ////////////////////////// header("Content-type: image/jpeg", true); imagejpeg($imagen); // DESTRUYO EL OBJETO IMAGEN PARA LIBERAR MEMORIA /////// imagedestroy($imagen); ?> y por último el codigo que comprueba la captcha pero nose como agregarlo a enviar.php porque al ponerlo no envia el mail // Validar argumentos y captcha if(!$_POST) { header('Location: '.$conf['url_error']); exit; } if ($_SESSION['tmptxt'] != $_POST['tmptxt']) { header('Location: '.$conf['url_error']); exit; } Eso ojala me oriente en agregar la comprobación de la captcha en enviar.php Muchas gracias Edited August 13, 2012 by nz5 Link to comment Share on other sites More sharing options...
AshWilliams Posted August 3, 2012 Report Share Posted August 3, 2012 Seps, se puede, te dejo un ejemplo en mi carpeta de MF:http://www.mediafire.com/?m4qfol1bd73w1do PS: Dentro de la carpeta ejemplo, al archivo formulario.php ;) Saludos :krider: Link to comment Share on other sites More sharing options...
nz5 Posted August 5, 2012 Author Report Share Posted August 5, 2012 vale lo descargue estuve probando como hacerlo funcionar pero debo poner alguna imagen de fondo en el captcha?? Link to comment Share on other sites More sharing options...
ctello1982 Posted March 12, 2013 Report Share Posted March 12, 2013 viejo ahorrate los dolores de cabeza y haz el formulario con http://www.jotform.com/ tiene varias platillas y se intrega a tu web. Saludos Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now