Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/04/2012, 16:58
tebarin
 
Fecha de Ingreso: marzo-2012
Mensajes: 19
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Captcha en formulario (no hay manera)

Gracias por contestar. Aunque ya he probado muchas cosas, voy a ir hacíendolo de nuevo y escribo aquí los resultados. Creo que el problema viene de mezclar en un archivo PHP el formulario en html y las funciones de validación en javascript y PHP, pero en algunas webs lo he visto explicado así.

Bueno, pues si cambio la parte de PHP por esto (los cambios en negrita):


else
{
alert("entramos en else");
<?php
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
echo "aprobado";





$nombre = $_POST['nombre'];
$email = $_POST['email'];
$nombrew = $_POST['nombrew'];

$formcontent="Nombre: $nombre \n Email: $email \n Web: $nombrew";
$recipient = "[email protected]";
$subject = "Nombre Web";
$mailheader = "Formulario";

mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
}
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Í
echo "reprobado";
}



?>
return false;
}
return true;

}

Entonces no me entra siquiera en los If de la función valida que comprueban la validez de los datos introducidos cuando le doy a enviar con el formulario vacío, supogo que porque ejecutra antes PHP, ve que el captcha no es igual que lo introducido (¡porque no se ha introducido nada!) y se sale de la función. Tampoco puedo ir comprobando que va ocurriendo porque si uso echo con javascript para imprimir algo por pantalla, me escribe todo el código posterior al echo justo antes del formulario

Ale, seguiré probando cosas, pero de verdad que no me aclaro con esto.