如果出現錯誤,我希望我的聯系表單輸入欄位保存用戶的輸入,否則如果電子郵件通過,則將其清除。現在它可以作業,除非在發送電子郵件時欄位仍然填寫。我可以重繪 頁面,但它不會顯示“您的電子郵件已發送”訊息。
這是我的表格:
<form class="contact-form" action="" method="post">
<input type="text" name="name" value="<?php if(isset($_POST["name"])) echo $_POST["name"]; ?>" />
</form>
我嘗試在我的 php 代碼中添加一些處理電子郵件業務的內容 - 如果訊息已發送,unset($_POST["name"])并且還添加到此表單輸入的 phpelse echo '';中,但這似乎不起作用。似乎變數仍然設定。
uj5u.com熱心網友回復:
假設您的頁面是contact.php.
你的 php 代碼應該是這樣的:
// we will keep here error message
$error = '';
// if request is get and isset sent
if ($_SERVER["REQUEST_METHOD"] === "GET" and isset($_GET["sent"]))
echo '<p id="output-area">Message has been sent.</p>';
else {
// if request is post
if ($_SERVER["REQUEST_METHOD"] === "POST") {
// then verify input data
if (!empty($_POST['msg'])) {
// if mail was sent, redirect to contact.php?sent
if (mail("[email protected]", "My subject", $_POST['msg'])){
header('Location: contact.php?sent');
exit;
} else
$error = "Mail does not sent.";
} else
$error = 'Please fill in all inputs.';
}
}
if ($error != '')
echo '<p >Error: ' . $error . '</p>';
// here goes your form
echo '<form action="contact.php" method="post">
<textarea name="msg">' . (!empty($_POST["msg"]) ? $_POST["msg"] : '') . '</textarea>
<input type="submit" value="send">
</form>';
uj5u.com熱心網友回復:
您應該在發生錯誤時設定錯誤標志。嘗試這個
$錯誤=假;if(isset($_POST['submit'])){
$msg = $_POST['msg'];
if(mail("[email protected]","My subject",$msg)){
}else{
$error = "mail does not sent";
}
}
" />轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/426777.html
下一篇:POST請求中不傳遞引數
