Ver Mensaje Individual
  #6 (permalink)  
Antiguo 18/07/2013, 00:09
rbczgz
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Problema con recaptcha y paso de variables POST

Archivo index.php (primera parte)

Código PHP:
Ver original
  1. <?php
  2. require_once ("includes/config.php"); // incluir configuracion.
  3. require_once (INCLUDES ."funciones.php"); // incluir funciones.
  4. require_once (INCLUDES ."tablas.php"); // incluir tablas de la base de datos.
  5. require_once (INCLUDES ."recaptchalib.php");
  6.  
  7. //Llaves de la captcha
  8. $captcha_publickey = "6Lcnx-QSAAAAAEpitsHdBmV4wAcv5Gmp6x6Bznk7";
  9. $captcha_privatekey = "6Lcnx-QSAAAAAJydP4J2I22VcYX3cvCwrLV3I08Q";
  10.  
  11. //creo una conexión con la base de datos
  12. $db = new SpoonDatabase(CONTROLADOR, SERVIDOR, USUARIO, CLAVE, BASE_DATOS);
  13.  
  14.  
  15. require_once (INCLUDES ."header_uno.php");
  16.  
  17.  
  18. ?>
  19. <title>Registro</title>
  20. <?php
  21.  
  22. require_once (INCLUDES ."header_dos.php");
  23.  
  24. //Grabamos los países de la tabla en un array, para mostrarlos en el formulario
  25. $paises = $db->getRecords("SELECT id_pais, nombre_pais FROM ".$tabla_paises);
  26.  
  27. // SI LA VARIABLE DE CONTROL $grabar NO ESTA O NO ES IGUAL A 1... INCLUIMOS EL FORMULARIO
  28. if ( (!isset($_POST['grabar'])) || ($_POST['grabar'] != "Inscribir") ) {
  29.  
  30. include_once (INCLUDES."form.php");
  31.  
  32. //UNA VEZ ENVIADO, LO PROCESAMOS
  33. //SABEMOS QUE ESTÁ ENVIADO PORQUE LA VARIABLE DE CONTROL $grabar ESTA Y ES IGUAL A Inscribir
  34. } elseif ( (isset($_POST['enviar'])) && ($_POST['enviar'] == "1") && (isset($_POST['grabar'])) && ($_POST['grabar'] == "Inscribir") ) {
  35.  
  36. //########################################################
  37. // RECECPCIÓN DE VARIABLES DEL FORMULARIO DESDE LA WEB
  38. //########################################################
  39.  
  40. if ( (isset($_POST['nombre'])) && (!empty($_POST['nombre'])) ) {
  41. $nombre = stripslashes(trim(ucwords(strtolower(strip_tags($_POST['nombre'])))));
  42. }
  43. if ( (isset($_POST['apellidos'])) && (!empty($_POST['apellidos'])) ) {
  44. $apellidos = stripslashes(trim(ucwords(strtolower(strip_tags($_POST['apellidos'])))));
  45. }
  46. if ( (isset($_POST['nif'])) && (!empty($_POST['nif'])) ) {
  47. $nif = stripslashes(trim(ucwords(strip_tags($_POST['nif']))));
  48. }
  49. if ( (isset($_POST['email'])) && (!empty($_POST['email'])) ) {
  50. $email = stripslashes(trim(strtolower(strip_tags($_POST['email']))));
  51. }
  52. if ( (isset($_POST['direccion'])) && (!empty($_POST['direccion'])) ) {
  53. $direccion = stripslashes(trim(ucwords(strtolower(strip_tags($_POST['direccion'])))));
  54. }
  55. if ( (isset($_POST['codigo_postal'])) && (!empty($_POST['codigo_postal'])) ) {
  56. $codigo_postal = stripslashes(trim(strip_tags($_POST['codigo_postal'])));
  57. }
  58. if ( (isset($_POST['telefono_fijo'])) && (!empty($_POST['telefono_fijo'])) ) {
  59. $telefono_fijo = stripslashes(trim(strip_tags($_POST['telefono_fijo'])));
  60. }
  61. if ( (isset($_POST['telefono_movil'])) && (!empty($_POST['telefono_movil'])) ) {
  62. $telefono_movil = stripslashes(trim(strip_tags($_POST['telefono_movil'])));
  63. }
  64. if ( (isset($_POST['localidad'])) && (!empty($_POST['localidad'])) ) {
  65. $localidad = stripslashes(trim(ucwords(strtolower(strip_tags($_POST['localidad'])))));
  66. }
  67. if ( (isset($_POST['provincia'])) && (!empty($_POST['provincia'])) ) {
  68. $provincia = stripslashes(trim(ucwords(strtolower(strip_tags($_POST['provincia'])))));
  69. }
  70. if ( (isset($_POST['id_pais'])) && (!empty($_POST['id_pais'])) ) {
  71. $id_pais = stripslashes(trim(strip_tags($_POST['id_pais'])));
  72. }
  73. if ( (isset($_POST['dia'])) && (!empty($_POST['dia'])) ) {
  74. $dia = trim(htmlentities(strip_tags($_POST['dia'])));
  75. }
  76. if ( (isset($_POST['mes'])) && (!empty($_POST['mes'])) ) {
  77. $mes = trim(htmlentities(strip_tags($_POST['mes'])));
  78. }
  79. if ( (isset($_POST['anio'])) && (!empty($_POST['anio'])) ) {
  80. $anio = trim(htmlentities(strip_tags($_POST['anio'])));
  81. }
  82. if ( (isset($_POST['usuario'])) && (!empty($_POST['usuario'])) ) {
  83. $usuario = stripslashes(trim(strip_tags($_POST['usuario'])));
  84. }
  85. if ( (isset($_POST['clave'])) && (!empty($_POST['clave'])) ) {
  86. $clave = stripslashes(trim(strip_tags($_POST['clave'])));
  87. }
  88.  
  89. //#####################################################################
  90. //VALIDACIONES DE LOS DATOS RECIBIDOS DEL FORMULARIO
  91. //#####################################################################
  92.  
  93. $error = "";
  94.  
  95. //Validaciones de rellenado del formulario
  96. if (empty($nombre))                 $error .= "<li class='junto normal'>No se ha completado el campo &quot;Nombre&quot;</li>";
  97.  
  98. if (empty($apellidos))              $error .= "<li class='junto normal'>No se ha completado el campo &quot;Apellidos&quot;</li>";
  99.  
  100. if (empty($nif))                $error .= "<li class='junto normal'>No se ha completado el campo &quot;N.I.F.&quot;</li>";
  101.  
  102. if (empty($email))              $error .= "<li class='junto normal'>No se ha completado el campo &quot;E-mail&quot;</li>";
  103.  
  104. if (!empty($email)) {
  105.  
  106. if (validar_email($email)==FALSE)   $error .= "<li class='junto'>El e-mail introducido no es una direcci&oacute;n de e-mail v&aacute;lida.</li>\n"; }
  107.  
  108. if (!empty($email) && (validar_email($email)!=FALSE)) {
  109.  
  110.       //Comprobamos si el e-mail existe en la base de datos
  111.       $comprueba_email = $db->getRecord("SELECT email FROM ".$tabla_usuarios." WHERE email=?", $email);
  112.      
  113.       if (!empty($comprueba_email))             $error .= "<li class='junto'>El e-mail introducido ya est&aacute; en uso</li>\n";
  114.  
  115.       } //Si no existe, seguimos con las validaciones
  116.  
  117. if (empty($telefono_fijo))              $error .= "<li class='junto normal'>No se ha completado el campo &quot;Teléfono fijo&quot;</li>";
  118.  
  119. if (empty($telefono_movil))                 $error .= "<li class='junto normal'>No se ha completado el campo &quot;Teléfono móvil&quot;</li>";
  120.  
  121. if (empty($direccion))              $error .= "<li class='junto normal'>No se ha completado el campo &quot;Dirección&quot;</li>";
  122.  
  123. if (empty($codigo_postal))              $error .= "<li class='junto normal'>No se ha completado el campo &quot;Código Postal&quot;</li>";
  124.  
  125. if (empty($localidad))              $error .= "<li class='junto normal'>No se ha completado el campo &quot;Localidad&quot;</li>";
  126.  
  127. if (empty($provincia))              $error .= "<li class='junto normal'>No se ha completado el campo &quot;Provincia&quot;</li>";
  128.  
  129. if (empty($id_pais))                $error .= "<li class='junto normal'>No se ha seleccionado el campo &quot;País&quot;</li>";
  130.  
  131. if (empty($dia) || empty($mes) || empty($anio))         $error .= "<li class='junto normal'>Es necesario completar todos los datos de la &quot;Fecha de nacimiento&quot;</li>";
  132.  
  133.     if (!empty($dia)) {
  134.         if (!empty($mes)) {
  135.            if (Bisiesto($anio) == 0){ //Si el año en curso no es bisiesto
  136.             if (($mes == '02') && ($dia > 28))  $error .= "<li class='junto normal'>Febrero no puede tener más de 28 días</li>"; //Febrero no puede tener más de 28 días
  137.                         } else { //Si no, si el año en curso es bisiesto
  138.             if (($mes == '02') && ($dia > 29))  $error .= "<li class='junto normal'>Febrero no puede tener más de 29 días</li>"; //Febrero no puede tener más de 29 días
  139.                         }
  140.  
  141.             if (($mes == '04') && ($dia > 30))  $error .= "<li class='junto normal'>Abril no puede tener más de 30 días</li>";
  142.             if (($mes == '06') && ($dia > 30))  $error .= "<li class='junto normal'>Junio no puede tener más de 30 días</li>";
  143.             if (($mes == '09') && ($dia > 30))  $error .= "<li class='junto normal'>Septiembre no puede tener más de 30 días</li>";
  144.             if (($mes == '11') && ($dia > 30))  $error .= "<li class='junto normal'>Noviembre no puede tener más de 30 días</li>";
  145.         }
  146.     }
  147.  
  148. if (empty($usuario))                $error .= "<li class='junto normal'>No se ha completado el campo &quot;Usuario&quot;</li>";
  149.  
  150. if ( !empty($usuario) ) {
  151.  
  152.       //Comprobamos si el e-mail existe en la base de datos
  153.       $comprueba_usuario = $db->getRecord("SELECT usuario FROM ".$tabla_usuarios." WHERE usuario=?", $usuario);
  154.      
  155.       if (!empty($comprueba_usuario))           $error .= "<li class='junto'>El usuario introducido ya est&aacute; en uso</li>\n";
  156.  
  157.       } //Si no existe, seguimos con las validaciones
  158.  
  159. if (empty($clave))              $error .= "<li class='junto normal'>No se ha completado el campo &quot;Clave&quot;</li>";
  160.  
  161. if ( isset($_POST["recaptcha_response_field"]) ) {
  162. $captcha_respuesta = recaptcha_check_answer ($captcha_privatekey,
  163.                                              $HTTP_SERVER_VARS["REMOTE_ADDR"],
  164.                                              $_POST["recaptcha_challenge_field"],
  165.                                              $_POST["recaptcha_response_field"]);
  166.                                              
  167. if (!$captcha_respuesta->is_valid) {
  168.                     $error .= "<li class='junto'>Debes escribir correctamente las palabras de la imagen</li>";
  169.                     } else {
  170.                    
  171.                     $error .= "";}
  172.                     }
  173.  
  174. if (!empty($error)) {
  175.  
  176. ?>
  177. <?php
  178. //Comprobación de la recepción de los datos enviados por POST
  179. foreach($_POST as $campo=>$valor)
  180. {
  181. //Aquí los campos que no nos interesa que se recuperen
  182. //El valor del botón de envío o de control no nos interesa
  183. if ($campo != "grabar") {
  184. ?>
  185. <b>Campo</b>: <?php echo $campo ?> <b>Valor</b>: <?php echo $valor ?><br>
  186. <?php
  187.     }
  188. }
  189.  
  190. //#####################################################################
  191. //PÁGINA QUE SE MUESTRA SI FALTA ALGÚN CAMPO DEL FORMULARIO
  192. //#####################################################################
  193.  
  194. ?>
  195.  
  196. <div align="center">
  197. <div style="width: 600px;">
  198. <p align="center">No se puede realizar la operaci&oacute;n.</p>
  199.  
  200. <p align="center">Se han detectado los siguientes errores:</p>
  201.  
  202. <div align="left">
  203. <ul>
  204. <?php echo $error ?>
  205. </ul>
  206. </div>

Aún hay más...