elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Temas
Páginas: [1]
1  Programación / PHP / [AYUDA] Formulario con reCAPTCHA en: 12 Mayo 2015, 05:03 am
Agregué recaptcha al formulario, el tema es que cuando uno lo completa me manda un mail con el g-recaptcha-response como si fuera un campo más del formulario.


Este es formulario:

Código
  1. <form name="formulario" class="form-horizontal" id="formulario" method="post" action="enviar.php" target="_self" enctype="multipart/form-data">
  2. <div class="form-group">
  3. <label for="nombre" class="col-sm-2 control-label">Nombre</label>
  4. <div class="col-sm-10">
  5. <input type="text" name="nombre" id="nombre" class="form-control" title="Se necesita un nombre" required>
  6. </div>
  7. </div>
  8. <div class="form-group">
  9. <label for="email" class="col-sm-2 control-label">Email</label>
  10. <div class="col-sm-10">
  11. <input type="text" name="email" id="email" class="form-control" pattern="^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$" title="mail@ejemplo.com" required>
  12. </div>
  13. </div>
  14. <div class="form-group">
  15. <label for="telefono" class="col-sm-2 control-label">Teléfono</label>
  16. <div class="col-sm-10">
  17. <input type="tel" name="telefono" id="telefono" class="form-control" title="Se necesita un teléfono" required>
  18. </div>
  19. </div>
  20. <div class="form-group">
  21. <label for="asunto" class="col-sm-2 control-label">Asunto</label>
  22. <div class="col-sm-10">
  23. <select name="asunto" id="asunto" class="form-control">
  24. <option>Consulta</option>
  25. <option>Quiero trabajar con ustedes</option>
  26. <option>Otro</option>
  27. </select>
  28. </div>
  29. </div>
  30. <div class="form-group">
  31. <label for="mensaje" class="col-sm-2 control-label">Mensaje</label>
  32. <div class="col-sm-10">
  33. <textarea name="mensaje" cols="50" rows="10" id="mensaje" class="form-control" title="Se necesita un mensaje" required></textarea>
  34. </div>
  35. </div>
  36. <div class="form-group">
  37. <label for="archivo1" class="col-sm-2 control-label">Adjuntar archivo:</label>
  38. <div class="col-sm-10">
  39. <input type="file" name="archivo1" id="archivo1">
  40. <p>Hasta 10 Mb.</p>
  41. </div>
  42. </div>
  43. <div class="form-group">
  44. <div class="col-sm-2"></div>
  45. <div class="col-sm-10 g-recaptcha" data-sitekey="6LdE5AUTAAAasdDkNJ2Rhdfkr0Tmmsxcf6mBwGpSji"></div>
  46. </div>
  47. <input type="submit" class="btn btn-default pull-right" id="enviar" value="Enviar">
  48. </form>
  49.  
  50.  
Y este es el archivo enviar.php:
Código
  1. <?php
  2. if(isset($_POST['g-recaptcha-response'])) {
  3.   // RECAPTCHA SETTINGS
  4.   $captcha = $_POST['g-recaptcha-response'];
  5.   $ip = $_SERVER['REMOTE_ADDR'];
  6.   $key = 'xxxx';
  7.   $url = 'https://www.google.com/recaptcha/api/siteverify';
  8.  
  9.   // RECAPTCH RESPONSE
  10.   $recaptcha_response = file_get_contents($url.'?secret='.$key.'&response='.$captcha.'&remoteip='.$ip);
  11.   $data = json_decode($recaptcha_response);
  12.  
  13.   if(isset($data->success) &&  $data->success === true) {
  14.  
  15. function form_mail($sPara, $sAsunto, $sTexto, $sDe)
  16. {
  17. $bHayFicheros = 0;
  18. $sCabeceraTexto = "";
  19. $sAdjuntos = "";
  20.  
  21. if ($sDe)$sCabeceras = "From:".$sDe."\n";
  22. else $sCabeceras = "";
  23. $sCabeceras .= "MIME-version: 1.0\n";
  24. foreach ($_POST as $sNombre => $sValor)
  25. $sTexto = $sTexto."\n".$sNombre." = ".$sValor;
  26.  
  27. foreach ($_FILES as $vAdjunto)
  28. {
  29. if ($bHayFicheros == 0)
  30. {
  31. $bHayFicheros = 1;
  32. $sCabeceras .= "Content-type: multipart/mixed;";
  33. $sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";
  34.  
  35. $sCabeceraTexto = "----_Separador-de-mensajes_--\n";
  36. $sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
  37. $sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";
  38.  
  39. $sTexto = $sCabeceraTexto.$sTexto;
  40. }
  41. if ($vAdjunto["size"] > 0)
  42. {
  43. $sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n";
  44. $sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";;
  45. $sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
  46. $sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";
  47.  
  48. $oFichero = fopen($vAdjunto["tmp_name"], 'r');
  49. $sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));
  50. $sAdjuntos .= chunk_split(base64_encode($sContenido));
  51. fclose($oFichero);
  52. }
  53. }
  54.  
  55. if ($bHayFicheros)
  56. $sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n";
  57. return(mail($sPara, $sAsunto, $sTexto, $sCabeceras));
  58. }
  59.  
  60. //cambiar aqui el email
  61. if (form_mail("mimail@dominio.com", $_POST[asunto],
  62. "Los datos introducidos en el formulario son:\n\n", $_POST[email]))
  63. header("location: gracias.php");
  64.  
  65.   }
  66.   else {
  67.      die('Tilda la casilla "No soy un robot"');
  68.   }
  69. }
  70. ?>
  71.  


El problema es que cuando uno lo llena, el mail que llega se ve así:

nombre = pablo
email = asd@asd.com
telefono = 123123
asunto = Consulta
mensaje = Prueba
g-recaptcha-response = 03AHJ_Vu9zPe-R0CF_xMr-6MwOQThHHEjdfUohb9xXwSdYOoISWdd1guPHsne3_2tjdu6squ8RWvB_PBS7Abj3B0vmzgHON2cwmZvjpJc4NfJ7gbNDQrbQ7EcVLV4FRc65bZ-oJvnm4MkBW57TD-5-2z-auj1joRcgfsfRTks_yyB7pLUr3I7ZhNP2mBLFurkaJF3l3UzE37s3Gx_TJA3R3dwUlslw99vpo4vDYZ-YPR-FEMSihAKxPYmfc3W60dr7Df0OTfV5ug3V8YUjO2bHNcFobG3PH2bWAvE_tiwI_-nEXxl4Jf67xh69oFbeJFMqDwFC0O9jBySMJZt-exADR73boOIAT3I0wscSlIGOHxRGQA5SmxcIWH0w

Lo que intento lograr es eliminar la parte de g-recaptcha-response del mail.

Alguien tiene idea como lograr esto?

Muchas gracias.

Mod: los códigos deben ir en etiquetas GeSHi
Mod: Private Key cambiado por motivos de seguridad.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines