Ver Mensaje Individual
  #8 (permalink)  
Antiguo 27/05/2010, 16:43
Avatar de Nemutagk
Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Bienvenido + Captcha

Ok, checando tu código "captcha.php" no veo nada mal, lo eh probado funciona bien, crea la imagen con el código captcha y guarda el código en la sesión...

lo único que quedaría es ver como estas guardando el archivo "captcha.php", recuerda que nada, absolutamente nada debe estar antes del "<?php session_start()" ni si quiera algún espacio en blanco o salto de linea nada!!! =)

Ahora, lo que si veo es que en tu formulario (no en el archivo captchademo.php) no estas validando el captcha, así que, no importa si lo llenas o no o si lo llenas mal, este nunca se valida, al final tu código de tu formulario seria así

Código PHP:
Ver original
  1. <?php
  2. if (isset($_POST)) {
  3. $form = '
  4. <form action="contacto1.php" method="post" name="Formulario_pedido" id="Formulario_pedido">
  5. <input name="tema" type="text" class="form" id="tema" size="40">
  6. <input name="nombre" type="text" class="form" id="nombre" size="40">
  7. <input name="empresa" type="text" class="form" id="empresa" size="40">
  8. <input name="localidad" type="text" class="form" id="localidad" size="40">
  9. <select name="provincia" size="1" class="form" id="provincia">
  10. <option value="Elige su provincia">-- Elige su provincia --</option>
  11. <option value="Fuera de España">Fuera de España<option>
  12. <option value="Álava">Álava</option>
  13. <option value="Albacete">...</option>
  14. </select>  
  15. <input name="pais" type="text" class="form" id="pais" size="40">
  16. <input name="telefono_fijo" type="text" class="form" id="telefono_fijo" size="40">
  17. <input name="movil" type="text" class="form" id="movil" size="40">
  18. <input name="e-mail" type="text" class="form" id="e-mail" size="40">
  19. <textarea name="comentarios" cols="38" rows="5" class="form" id="comentarios">
  20. </textarea>
  21. <strong class="subder">Verificación de la palabra:</strong><br>
  22. Ingresar el texto mostrado en la imagen
  23. <img src="captcha.php" width="100" height="30" vspace="3" border="1"><br>
  24. <input name="tmptxt" type="text" size="22">
  25. <input name="Enviar" type="submit" id="Enviar" value="Enviar" class="boton">
  26. <input name="Borrar" type="reset" id="Borrar" value="Borrar" class="boton">
  27. <input name="action" type="hidden" value="checkdata">
  28. </form>';
  29.  
  30. echo $form;
  31. }else {
  32.     if (!is_empty($_POST['tmptext']) && $_POST['tmptext'] == $_SESSION['tmptxt']) {
  33.         //Estoy recibiendo el formulario, compongo el cuerpo  
  34.         $cuerpo = "Formulario enviado\n";
  35.         $cuerpo .= "tema: " . $_POST["tema"] . "\n";  
  36.         $cuerpo .= "nombre: " . $_POST["nombre"] . "\n";
  37.         $cuerpo .= "empresa: " . $_POST["empresa"] . "\n";
  38.         $cuerpo .= "localidad: " .$_POST["localidad"] . "\n";  
  39.         $cuerpo .= "provincia: " . $_POST["provincia"] . "\n";  
  40.         $cuerpo .= "pais: " . $_POST["pais"] . "\n";
  41.         $cuerpo .= "telefono_fijo: " . $_POST["telefono_fijo"] . "\n";  
  42.         $cuerpo .= "movil: " . $_POST["movil"] . "\n";  
  43.         $cuerpo .= "e-mail: " . $_POST["e-mail"] . "\n";
  44.         $cuerpo .= "comentarios: " . $_POST["comentarios"] . "\n";  
  45.    
  46.         //mando el correo...  
  47.         mail("[email protected]","Formulario recibido",$cuerpo);  
  48.    
  49.         //doy las gracias por el envio  
  50.         echo "Gracias por rellenar el formulario. Se ha enviado correctamente. Nos pondremos en contacto en breve.";
  51.     }else {
  52.         echo 'Vuelve a intentarlo, el c&oacute;digo del captcha esta mal';
  53.     }  
  54. }
  55. ?>

Ojo, checa que cambie tu "$HTTP_POST_VARS" por "$_POST", porque?, porque "$HTTP_POST_VARS" ya es obsoleto, y en futuras versiones de PHP dejaran de funcionar, así mismo con "$HTTP_GET_VARS" cambia por "$_GET"....

También checa que ahora estamos verificando la variable "$_POST['tmptext']" el cual es el código del captcha, verificamos que no venga vació y que sea igual al código que se muestra en la imagen, así como debe de estar debería de funcionar, cualquier otro problema no dudes en preguntar =)
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)