Jump to content

Ayuda para terminar formulario con captcha


Recommended Posts

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 by nz5
Link to comment
Share on other sites

  • 7 months later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...