Bueno, como quieras. Pero te advierto que como ejercicio teórico o experimental te va a valer, en la práctica sería como intentar construir un muro a tu casa y dejarlo a medias: no sirve para nada.
Hay una cosa que me desconcierta un poco... ¿Qué es javascript y qué PHP? Entiendo
validador() y
checkcaptcha(whatYouTyped) como javascript, pero luego al llamarlas haces:
Código PHP:
<?php include ("includes/validador.php");
$n = validador();
echo "<input type='hidden' name='verifica' value='$n' />";?>
Y eso es PHP...
¿Tienes funciones javascript y PHP que se llaman igual y hacen lo mismo? ¿O es que has confundido los dos lenguajes? Si vas a hacer PHP y javascript mi consejo es que desarrolles uno, y cuando esté listo y funcional empieces con el otro. Si vas con los dos a la vez puedes liarte.
Comprueba este ejemplo, había varios errores:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<meta http-equiv="Content-type" content="text/html;charset=iso-8859-1" />
<meta name="Author" content="derkeNuke" />
<title>Página nueva</title>
<style type="text/css">
.welldone { background-color: green; }
</style>
</head>
<body>
<script type="text/javascript">
<!--
// document.getElementById abreviado
function $(x) { return document.getElementById(x); }
function rand(a,b) {
return Math.ceil( Math.random()*Math.abs(b-a) )+Math.min(a,b);
}
// Primero aqui genero un numero aleatorio que se guarda en la variable $num
var num; // debe ser global para que todas las funciones puedan trabajar con él
function validador() {
num = rand(1000,9999);
$("ponAquiElNumero").innerHTML = num;
return num;
}
// Aqui es donde quiero validar la variable $num con el texto que ingreso en un formulario que les presento enseguida pero el problema que tengo es que no valida.
function checkcaptcha(whatYouTyped) {
var fieldset = whatYouTyped.parentNode;
var txt = whatYouTyped.value;
if (txt == num) {
fieldset.className = "welldone";
}
else
fieldset.className = "";
}
window.onload = validador;
// -->
</script>
---Aqui es donde escribo el valor del captcha y se valida con la funcion checkcaptcha
<fieldset>
<strong id="ponAquiElNumero"></strong>
<label for="captcha">Verificacion:</label>
<input type="text" id="captcha" size="4" maxlength="4"
onkeyup="checkcaptcha(this);" />
<span class="hint">Escribe los numeros en la caja de texto</span>
</fieldset>
</body>
</html>
Ponías
var txt = whatYouTyped.value y luego en la condicional
txt.value (dos value); la variable
num tiene que ser global... y todo lo que parecía PHP lo he transformado a javascript.
Espero que avances con este post.
Saludos.