He creado un captcha con el siguiente código.
Código:
Guardo el resultado de la función en la variable de sesión de $_SESSION['tmptxt']session_start(); function randomText($length) { $pattern = "1234567890abcdefghijklmnopqrstuvwxyz"; for($i=0;$i<$length;$i++) { $key .= $pattern{rand(0,35)}; } return $key; } $_SESSION['tmptxt'] = randomText(8); // Imagen que va a mostrar de fondo $fondo = "../themes/image/captcha.png"; // Se define el header header("Content-type: image/png"); // Creando el fondo con la imagen $imagen = imagecreatefrompng("$fondo"); // Color del texto (R,G,B) $color = imagecolorallocate($imagen,100,60,255); // Texto que se va a mostrar $texto1 = $_SESSION['tmptxt']; imagestring($imagen,50,80,30,$texto1,$color); // Salida de la imagen imagepng($imagen);
Hasta aquí todo bien.
El problema viene en el momento que abro otra sesión en el formulario de registro.
Este es el código del formulario
Código:
El problema es que el código que aparece insertado en la imagen de captcha no coincide con la variable $_SESSION['tmptxt']<form method="post" action="#"> <p class="RegisterFormUserInput" id="registerPuser"> <label>Nombre de usuario</label> <br> <input type="text" name="username" id="RegisterUsername" required> </p> <p class="RegisterFormUserInput" id="registerPmail"> <label>Corréo electrónico</label> <br> <input type="email" name="email" id="RegisterMail" required> </p> <p class="RegisterFormUserInput" id="registerPpasswd1"> <label>Contraseña</label> <br> <input type="password" name="passwd1" id="RegisterPasswd1" required> </p> <p class="RegisterFormUserInput" id="registerPpasswd2"> <label>Repita la contraseña</label> <br> <input type="password" name="passwd2" id="RegisterPasswd2" required> </p> <p id="RegisterimgCaptcha"> <img src="users/captcha.php" id="RegisterCaptcha" alt="Captcha"> </p> <p class="RegisterFormUserInput" id="registerPcaptcha"> <label>Escriba lo que pone en la imágen</label> <br> <input type="text" name="captchaValue" id="RegistercaptchaValue" required> </p> <p id="registerPcondition"> <input type="checkbox" name="conditions" id="RegisterConditions"> <span>Acepto los términos y condiciones de uso. <a href="#">Leer términos y condiciones</a></span> </p> <p id="regiterPsubmit"> <input type="submit" value="Crear cuenta" id="RegisterSubmit"> </p> </form> </div> <div id="RegisterPoptions"> <p>Si tienes cuenta pero has olvidado tu contraseña pincha <a href="">aquí...</a></p> <p><a href="">Volver a workdyant</a></p> </div> <? session_start(); echo $_SESSION['tmptxt']; ?>
El resultado de la variable muestra el código anterior al usado en la imagen.
Parece como desfasado.
Os dejo un enlace en el cual se ve el código de captcha en la imagen del formulario y un echo de la variable en la esquina inferior izquierda
http://workdyant.hol.es/sign-up/
No me deja poner el link :(
Otra vez gracias al que me pueda atender.