2015-03-31 5 views
0

мой HTML код:

<form role="form" method="post" > 
 
    <fieldset> 
 
     <div class="form-group"> 
 
      <input class="form-control" placeholder="Enter Your Email" name="email" type="text" autofocus> 
 
     </div> 
 

 
     <!-- Change this to a button or input when using this as a form --> 
 
     <input type="submit" href="dashboard.php" class="btn btn-lg btn-success btn-block btn-warning" value="Reset" name="sub"> 
 
    </fieldset> 
 
</form>

мой PHP почты (код):

$email = $_POST['email']; 
$to = $email; 
$subject = "Password Recovery"; 
$full="http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 
$reffurl=str_replace("forget_pass_nw_pass.php","",$full); 

$message = "You are receiving this e-mail because you have requested to recover your password."; 

$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 
$headers .= 'From: <[email protected]>' . "\r\n"; 

$mail_sent = mail($to,$subject,$message,$headers); 

я попытался изменить

$ to = $ email

в

$ к = "[email protected]"

и это на самом деле работает. но когда это от $ to to $ email, ни одно электронное письмо не отправляется.

+0

Она просто означает, что $ _POST [ 'электронная почта'] является либо нулевое значение этого индекса не производится. Можете ли вы показать свой код формы, потому что он не указан в указанном коде. –

+0

Вы получаете '$ _POST ['email']' значение в вашем PHP-файле –

+0

Я пробовал echo «$ email»; и он фактически возвращает типы пользователей электронной почты в форму, а не пустую или неправильную строку. – sgchecker

ответ

0
$email=$_POST['email']; 
// Sanitize E-mail Address 
$email =filter_var($email, FILTER_SANITIZE_EMAIL); 
// Validate E-mail Address 
$email= filter_var($email, FILTER_VALIDATE_EMAIL); 
if (!$email){ 
echo "Invalid Sender's Email"; 
} 
else{ 
    $to = $_POST['email']; 
    $to = $email; 
$subject = "Password Recovery"; 
$full="http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 
$reffurl=str_replace("forget_pass_nw_pass.php","",$full); 

$message = "You are receiving this e-mail because you have requested to recover your password."; 

$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 
$headers .= 'From: <[email protected]>' . "\r\n"; 

$mail_sent = mail($to,$subject,$message,$headers); 
+0

@ Iftikhar обеспокоен тем, что он используется для проверки того, объявлена ​​ли электронная почта или нет – Ghostman

1

Похоже, что проблема с дополнительным интервалом. изменение

$email = $_POST['email']; 

в

$email = trim($_POST['email']);