我现在所拥有的是一个包含简单输入字段的表单,例如姓名,电话号码,电子邮件和评论。
<div id="specialsForm"><h3>Interested in this coupon? Email us! </h3>
<form method="post" action="emailMonthlySpecials.php">
Name: <input name="name" type="text" /><br />
Email: <input name="email" type="text" /><br />
Phone Number: <input name="phone" type="text" /><br /><br />
Comment: <br/>
<textarea name="comment" rows="5" cols="30"></textarea><br /><br />
<input type="submit" value="Submit Email"/>
</form></div>
在我的emailMonthlySpecials.php中,我有以下代码:
$name = $_REQUEST['name'] ;
$email = $_REQUEST['email'] ;
$phone = $_REQUEST['phone'] ;
$comment = $_REQUEST['comment'] ;
if(!empty($name) && (!empty($email) || !empty($phone))) {
mail("my.email@hotmail.com", "Monthly Specials Email",
"Name: $name
Email: $email
Phone Number: $phone
Comment: $comment", "From: $email" );
} else {
echo '<span class="error">A name, comment, phone number/email is required</span><br />';
};
它转到一个新页面并显示错误(如果有的话),如果没有则转到一个空白页面(我知道如何让它转到感谢页面,但它需要保持当前状态它可以将信息发送到电子邮件。
我试过了
header("Location: ".$_SERVER["PHP_SELF"]);
它没有用......有什么想法吗?
答案 0 :(得分:1)
显示表单的页面也是表单提交的位置。那就是如果出现错误,页面可以继续并再次显示表单。即
contact.php(伪代码)
<?
if ([form submitted]) {
if ([fields filled out correctly]) {
[send mail]
header('location: thankyou.php');
} else {
$error = 'error message';
}
}
?>
<span class="error"><?=$error;?></span>
<form method="post" action="contact.php">
[field]
</form>
您也可以使用重定向,但是您需要将消息存储在$_SESSION变量中以将其传输到另一页。
答案 1 :(得分:-2)
如果要重定向回调用者,则必须写下:
header("Location: ".$_SERVER["REQUEST_URI"]);