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


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [AYUDA] Formulario con reCAPTCHA
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [AYUDA] Formulario con reCAPTCHA  (Leído 1,913 veces)
powazniak

Desconectado Desconectado

Mensajes: 2


Ver Perfil
[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.


« Última modificación: 12 Mayo 2015, 16:46 pm por #!drvy » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [AYUDA] Formulario con reCAPTCHA
« Respuesta #1 en: 12 Mayo 2015, 05:28 am »

Código
  1. $captcha = $_POST['g-recaptcha-response'];

busca donde se agrega eso, lo quitas y listo


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
powazniak

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: [AYUDA] Formulario con reCAPTCHA
« Respuesta #2 en: 12 Mayo 2015, 05:42 am »

Hola, gracias por tu respuesta.

No entiendo mucho de php, pero por lo que veo no están declarados los campos del formulario en el php, creo que lo que necesito es decirle que mande todos menos ese.

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Bypass Recaptcha y cualquier otra « 1 2 »
Nivel Web
~ Yoya ~ 13 9,578 Último mensaje 19 Julio 2012, 04:51 am
por ~ Yoya ~
Inventor de Captcha y ReCaptcha es Guatemalteco « 1 2 »
Foro Libre
elias_vsv 13 13,305 Último mensaje 17 Diciembre 2011, 16:14 pm
por Carloswaldo
No me valida este recaptcha
PHP
Crash_RPM 1 3,099 Último mensaje 12 Julio 2012, 19:52 pm
por cassiani
ReCaptcha
Desarrollo Web
3dw1n 1 1,842 Último mensaje 13 Mayo 2016, 19:51 pm
por Cr4id3r
Recaptcha en formulario html
PHP
eugeniocol 5 3,471 Último mensaje 11 Agosto 2017, 21:41 pm
por eugeniocol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines