Ver Mensaje Individual
  #7 (permalink)  
Antiguo 02/09/2013, 09:38
Fenixmc
 
Fecha de Ingreso: febrero-2013
Ubicación: Badajoz
Mensajes: 5
Antigüedad: 11 años, 2 meses
Puntos: 0
Información Respuesta: PHP en ocasiones manda datos en blanco.

Cita:
Iniciado por Erick_MD9 Ver Mensaje
Lo más seguro, es que no sea un usuario.
Un spider o bot.

Saludos
Gracias Erick por tu ayuda y por hacer que piense de diferente forma, cuando uno piensa lo hace siempre de la misma manera pero cuando otro da su punto de vista hace que comiences a tener otra visión sobre el problema.
Efectivamente, puede tratarse de un Spider y la solución pasa por:

En el PHP validar a Null las variables.
Cargarles los valores que vienen del formulario.
Y condicionar los envíos de mail al hecho de que una de las variables no sea Null o en mi caso a que la variable $email contenga la @.
De esta manera los mails solo se enviarán cuando el PHP sea llamado por el HTML que contiene el formulario.
Este es el código final:

//coloco las variables a null
$nombre = NULL;
$email = NULL;
$asunto = NULL;
$consulta = NULL;
$ip = NULL;

//levanto las los datos a traves de variables
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$asunto = $_POST['asunto'];
$consulta = $_POST['consulta'];
$ip = getRealIP();

// armo los mails con la info levantada y muestro mensajes si la variable email contiene @
if ( strpos($email,'@') !== FALSE ) {
mail('[email protected]', 'Consulta desde el formulario Web', "* Envia: $nombre \r\n* E-mail: $email \r\n\r\n* Asunto: $asunto \r\n\r\n* Mensaje: $consulta", "From: $email \r\n\r\n ATENCION: Antes de dar respuesta verificar con el panel de control si ha confirmado la consulta desde su bandeja de correo. \r\n IP del usuario: " .$ip );

mail('[email protected]', 'Consulta desde el formulario Web', "* Envia: $nombre \r\n* E-mail: $email \r\n\r\n* Asunto: $asunto \r\n\r\n* Mensaje: $consulta", "From: $email \r\n\r\n ATENCION: Antes de dar respuesta verificar con el panel de control si ha confirmado la consulta desde su bandeja de correo. \r\n IP del usuario: " .$ip );

mail($email, 'Su consulta desde el formulario Web:', "* Envia: $nombre \r\n* E-mail: $email \r\n\r\n* Asunto: $asunto \r\n\r\n* Mensaje: $consulta", "From: $email \r\n\r\n Gracias por usar este servicio, en breve le daremos respuesta.");

// Una vez que se envia, vuelvo al formulario ancunciando que los datos se enviaron
echo "<script>history.back(alert(\"Su consulta se ha mandado y está siendo procesada, gracias.\"));</script>";
}

echo "<script>window.close();</script>";

?>


Dejo el tema abierto unos días por si veo que algo falla pero creo que ha quedado solucionado.

Gracias Erick.