2016-07-18 11 views
-1

Ich versuche, E-Mail per Klick auf Absenden Schaltfläche eines Formulars zu senden, aber nach dem Absenden des angegebenen Formulars erscheint die Nachricht als "Ihre E-Mail wurde erfolgreich gesendet! Vielen Dank für Ihr Feedback" aber tatsächlich wird die E-Mail nicht gesendet Die vom Benutzer eingegebene E-Mail-ID in einem Formular ... bitte helfen Sie mir, das gegebene Problem zu lösen !!!So senden Sie E-Mails von einem Formular senden?

//secure_email_form.php 
<body> 

<div class="container"> 
<!-- Feedback Form Starts Here --> 
<div id="feedback"> 
<!-- Heading Of The Form --> 
<div class="head"> 
<h3>FeedBack Form</h3> 
<p>This is feedback form. Send us your feedback !</p> 
</div> 
<!-- Feedback Form --> 
<form action="#" id="form" method="post" name="form"> 
<input name="vname" placeholder="Your Name" type="text" value=""> 
<input name="vemail" placeholder="Your Email" type="text" value=""> 
<input name="sub" placeholder="Subject" type="text" value=""> 
<label>Your Suggestion/Feedback</label> 
<textarea name="msg" placeholder="Type your text here..."></textarea> 
<input id="send" name="submit" type="submit" value="Send Feedback"> 
</form> 
<h3><?php include "secure_email_code.php"?></h3> 
</div> 
<!-- Feedback Form Ends Here --> 
</div> 
</body> 

//secure_email_code.php 
<?php 
if(isset($_POST["submit"])){ 
// Checking For Blank Fields.. 
if($_POST["vname"]==""||$_POST["vemail"]==""||$_POST["sub"]==""||$_POST["msg"]==""){ 
echo "Fill All Fields.."; 
}else{ 
// Check if the "Sender's Email" input field is filled out 
$email=$_POST['vemail']; 
// 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{ 
$subject = $_POST['sub']; 
$message = $_POST['msg']; 
$headers = 'From:'.'[email protected]'."\r\n"; // Sender's Email 
$headers = 'Cc:'.'[email protected]'."\r\n"; // Carbon copy to Sender 
// Message lines should not exceed 70 characters (PHP rule), so wrap it 
$message = wordwrap($message, 70); 
// Send Mail By PHP Mail Function 
mail("[email protected]", $subject, $message, $headers); 
echo "Your mail has been sent successfuly ! Thank you for your feedback"; 
} 
} 
} 
?> 
+0

in Formularfeld, warum Sie 'action = "#" verwenden'? –

+0

Haben Sie einen echten Gastgeber? – Hamid

+0

ja ich habe ..... – Rkboss

Antwort

1

Sieht aus wie Ihre Mail-Funktion nicht ordnungsgemäß ausgeführt wird. Sie können das Debuggen mit var_dump oder etwas versuchen.

Auch Ihr Code ist logisch falsch. Es sollte die Nachricht nur anzeigen, wenn die Mail-Funktion erfolgreich ausgeführt wird.

$send_mail = mail("[email protected]", $subject, $message, $headers); 
var_dump($send_mail); // See what you get here. It'll probably show false. 

if ($send_mail) { 
    echo "Your mail has been sent successfuly ! Thank you for your feedback"; 
} else { 
    echo "Email sending failed!"; 
} 
+0

Ich bearbeitete meinen Code, es zeigt "bool (falsch) E-Mail-Versand fehlgeschlagen! " Error. – Rkboss

+0

Leider ist die E-Mail-Funktion nicht konfiguriert, um Ihnen die entsprechende Fehlermeldung anzuzeigen. Es gibt nur wahr und falsch zurück. Wenn Sie einen zuverlässigeren Weg wünschen, sollten Sie PHP Mailer verwenden. –

0

Sie müssen eine PHP-Datei URL verwenden oder leer in Aktion verwenden. Hier müssen Sie die Aktion leer verwenden.

<form action="" id="form" method="post" name="form"> 

statt

<form action="#" id="form" method="post" name="form">