Foros del Web » Programando para Internet » Javascript »

captcha

Estas en el tema de captcha en el foro de Javascript en Foros del Web. Hola amigos tengo un captcha en un formulario y me gustaria que cuando le den a enviar y no este escrito el mismo nombre no ...
  #1 (permalink)  
Antiguo 14/09/2012, 17:16
Avatar de fermin3d  
Fecha de Ingreso: octubre-2010
Ubicación: sevilla
Mensajes: 141
Antigüedad: 13 años, 6 meses
Puntos: 4
captcha

Hola amigos tengo un captcha en un formulario y me gustaria que cuando le den a enviar y no este escrito el mismo nombre no envie el documento me funciona bien solo que siempre envia el formulario y me gustaria que antes comprobara si el captcha es correo este es el codigo.

Código PHP:
Ver original
  1. <?php
  2.     /** Validate captcha */
  3.     if (!empty($_REQUEST['captcha'])) {
  4.      
  5.         if (empty($_SESSION['captcha']) || trim(strtolower($_REQUEST['captcha'])) != $_SESSION['captcha']) {
  6.             $captcha_message = "Captcha incorrecto"; $style = "background-color: #FF606C";
  7.         } else {
  8.             $captcha_message = "Captcha correcto!"; $style = "background-color: #CCFF99";
  9.         }
  10.         $request_captcha = htmlspecialchars($_REQUEST['captcha']);
  11.      
  12.         echo <<<HTML
  13.             <div id="result" style="$style">
  14.             <h3>$captcha_message</h3>
  15.             </div>
  16.     HTML;
  17.            
  18.         unset($_SESSION['captcha']);
  19.     }
  20.     ?>


Código HTML:
Ver original
  1. <form method="post" action="" id="form"  name="form" >
  2.                <table align="center" cellspacing="10px">
  3.                 <tr>
  4.                  <td><strong>Nombre*</strong><br />
  5.                      <input type="text" maxlength="50" size="40" name="nombre" id="nombre" class="input" value=""/></td>
  6.                    </tr>
  7.                   <tr>
  8.                  <td><strong>Email*</strong><br />
  9.                      <input type="email" maxlength="50" size="40" name="email" id="email" class="input"/></td>
  10.                    </tr>
  11.                   <tr>
  12.                  <td><strong>Teléfono</strong><br />
  13.                     <input type="number" maxlength="10" size="40" name="telefono" id="telefono" value="" class="input"/></td>
  14.                    </tr>
  15.                   <tr>
  16.                 <td><strong>Localidad*</strong><br />
  17.                     <input type="text" maxlength="30" size="40" name="localidad" id="localidad" class="input"/></td>
  18.                    </tr>
  19.                  <tr>
  20.                <td><strong>Departamento*</strong><br />
  21.                    <select class="input" name="depar" id="depar">
  22.                    <option selected="selected" value="">seleccione departamento</option>
  23.                    <option value="info@">Administración</option>
  24.                    <option value="design@">Diseño</option>
  25.                    <option value="services@">Servicios</option>
  26.                    <option value="consulting@">Consultaría</option>
  27.                    </select></td>
  28.                  </tr>
  29.                 <tr>
  30.                 <td><strong>Asunto*</strong><br />
  31.                     <input type="text" maxlength="50" size="40" name="asunto" id="asunto" class="input"/></td>
  32.                    </tr>
  33.                 <tr>
  34.                <td><strong>Mensaje*</strong><br />
  35.                    <textarea name="texto" class="input2" id="texto"></textarea></td>
  36.                 </tr>
  37.               <tr>
  38.               <td>Acepto los terminos de uso y el <a href="aviso_legal.html" target="_blank">Aviso legal</a>.</span></td>
  39.               </tr>
  40.               <tr>
  41.                <td><img src="captcha.php" id="captcha" /><br />
  42.                <input type="text" name="captcha" id="captcha-form" /><br />
  43.                <a href="#" onclick="document.getElementById('captcha').src='captcha.php?'+Math.random();" id="change-image">Recargar Captcha.</a><input type="submit" name="enviar" value="Enviar" style="padding:5px; margin-left:20px;" onclick="return validacion()"/></td>
  44.                 </tr>
  45.        </table>
  46.        </form>
algun metodo para detener el envio por javascript.
  #2 (permalink)  
Antiguo 14/09/2012, 18:41
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: captcha

Hola:

No se ve el código de la validación javascript, pero debería asociarse al evento submit del form y no al click del botón.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 14/09/2012, 19:06
Avatar de fermin3d  
Fecha de Ingreso: octubre-2010
Ubicación: sevilla
Mensajes: 141
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: captcha

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

No se ve el código de la validación javascript, pero debería asociarse al evento submit del form y no al click del botón.

Saludos
hola muchas gracias pero ese valida los campos en javascript y no el captcha espero me puedas ayudar gracias.
  #4 (permalink)  
Antiguo 15/09/2012, 01:42
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: captcha

Hola:

Es que en javascript (el foro donde nos encontramos), una validación captcha suele hacerse básicamente controlando que el campo no esté vacío, porque para saber que es correcto normalmente se hace en el servidor. Por ejemplo:

$correcto = $_POST["captcha"] == $_SESSION["captcha"];

Tal como se puede deducir, se acostumbra a tener una variable de sesión con el valor que genera la imagen... pero insisto que esos datos suelen estar en el servidor, de otra forma pienso que sería vulnerable.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: captcha, formulario, funcion, html, input, php, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:51.