Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/08/2013, 16:59
albemartinez
 
Fecha de Ingreso: mayo-2013
Mensajes: 55
Antigüedad: 11 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() 
?>