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:
<form name="formulario" class="form-horizontal" id="formulario" method="post" action="enviar.php" target="_self" enctype="multipart/form-data"> <label for="nombre" class="col-sm-2 control-label">Nombre
</label> <input type="text" name="nombre" id="nombre" class="form-control" title="Se necesita un nombre" required> <label for="email" class="col-sm-2 control-label">Email
</label> <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> <label for="telefono" class="col-sm-2 control-label">Teléfono
</label> <input type="tel" name="telefono" id="telefono" class="form-control" title="Se necesita un teléfono" required> <label for="asunto" class="col-sm-2 control-label">Asunto
</label> <select name="asunto" id="asunto" class="form-control"> <label for="mensaje" class="col-sm-2 control-label">Mensaje
</label> <textarea name="mensaje" cols="50" rows="10" id="mensaje" class="form-control" title="Se necesita un mensaje" required></textarea> <label for="archivo1" class="col-sm-2 control-label">Adjuntar archivo:
</label> <input type="file" name="archivo1" id="archivo1"> <div class="col-sm-10 g-recaptcha" data-sitekey="6LdE5AUTAAAasdDkNJ2Rhdfkr0Tmmsxcf6mBwGpSji"></div> <input type="submit" class="btn btn-default pull-right" id="enviar" value="Enviar">
Y este es el archivo enviar.php:
<?php
if(isset($_POST['g-recaptcha-response'])) { // RECAPTCHA SETTINGS
$captcha = $_POST['g-recaptcha-response'];
$ip = $_SERVER['REMOTE_ADDR'];
$key = 'xxxx';
$url = 'https://www.google.com/recaptcha/api/siteverify';
// RECAPTCH RESPONSE
$recaptcha_response = file_get_contents($url.'?secret='.$key.'&response='.$captcha.'&remoteip='.$ip);
if(isset($data->success) && $data->success === true) {
function form_mail($sPara, $sAsunto, $sTexto, $sDe)
{
$bHayFicheros = 0;
$sCabeceraTexto = "";
$sAdjuntos = "";
if ($sDe)$sCabeceras = "From:".$sDe."\n";
else $sCabeceras = "";
$sCabeceras .= "MIME-version: 1.0\n";
foreach ($_POST as $sNombre => $sValor)
$sTexto = $sTexto."\n".$sNombre." = ".$sValor;
foreach ($_FILES as $vAdjunto)
{
if ($bHayFicheros == 0)
{
$bHayFicheros = 1;
$sCabeceras .= "Content-type: multipart/mixed;";
$sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";
$sCabeceraTexto = "----_Separador-de-mensajes_--\n";
$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";
$sTexto = $sCabeceraTexto.$sTexto;
}
if ($vAdjunto["size"] > 0)
{
$sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n";
$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";;
$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
$sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";
$oFichero = fopen($vAdjunto["tmp_name"], 'r'); }
}
if ($bHayFicheros)
$sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n";
return(mail($sPara, $sAsunto, $sTexto, $sCabeceras)); }
//cambiar aqui el email
if (form_mail("mimail@dominio.com", $_POST[asunto],
"Los datos introducidos en el formulario son:\n\n", $_POST[email]))
header("location: gracias.php");
}
else {
die('Tilda la casilla "No soy un robot"'); }
}
?>
El problema es que cuando uno lo llena, el mail que llega se ve así:
nombre = pablo
email =
asd@asd.comtelefono = 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 GeSHiMod: Private Key cambiado por motivos de seguridad.