Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/08/2013, 16:59
albemartinez
 
Fecha de Ingreso: mayo-2013
Mensajes: 55
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Problema con la validación e datos y el envío de mail

Me autorespondo:

En lugar de empty() usar isset() (cambiar de saber si esta vacio a saber si contiene algun valor)

La variable $exito que hace el envio del mail de phpmailer debe de asignar luego del IF

y la variable $intentos asignarla desde antes de todo el script junto con el resto de las variables.

Todos las sentencias se deben agrupar debajo de if(!isset($_POST['submit'])) y ya... parece.


No se si en verdad sea así, pero a mi me funciona y con eso me parece que es suficiente.

Gracias

Código PHP:
<?php 
session_start
();  
session_id(); 

$nombre = $_POST['name']; 
$mailo = $_POST['mail']; 

require 
"includes/class.phpmailer.php"; 
$mail = new phpmailer(); 
$mail->PluginDir = "includes/"; 
$mail->Mailer = "smtp"; 
$mail->Host = "smtp.***.com"; 
$mail->SMTPAuth = true; 
$mail->Username = "**@****.com";  
$mail->Password = "***"; 
$mail->From = "**@****.com"; 
$mail->FromName = "**"; 
$mail->Timeout=30; 
$mail->AddAddress("**@***.com"); 
$mail->Subject = "**"; 
$mail->Body = "$nombre, $mailo"; 
$mail->AltBody = "para ver el mensaje necesita html"; 
$intentos=1;  


if(!isset(
$_POST['submit'])) 

{ 
if (empty(
$nombre)) 
{ 
echo 
"<script> 
alert('Por favor Ingrese un nombre') 
</script>"
; 
echo 
"<html><head></head>". 
"<body onload=\"history.go(-2)\">". 
"</body></html>"; 
exit; 
} 
elseif (empty(
$mailo)) 
{ 
echo 
"<script> 
alert('Por favor Ingrese un e-mail') 
</script>"
; 
echo 
"<html><head></head>". 
"<body onload=\"history.go(-2)\">". 
"</body></html>"; 
exit; 
} 



if ((isset(
$mailo)) && (isset($nombre))) 
     
$exito = $mail->Send(); 
while ((!
$exito) && ($intentos < 5)) { 
sleep(5); 

$exito = $mail->Send(); 
$intentos=$intentos+1; 
} 
if(!
$exito) 
{ 
echo 
"Problemas enviando correo electrónico a ".$valor; 
echo 
"<br/>".$mail->ErrorInfo;     
} 
else 
{ 
echo 
"<script> 
alert('Enviado. Gracias! :) ') 
window.location.href = 'index.html'; 
</script>"
; 
exit; 
} 
} 


session_destroy() 
?>