我的php代码有问题。
我不希望显示else echo "Check it again!";,除非他们在表单(输入框)中输入了一些数据,而表单是无效的。但是当我加载页面时,它会在框的上方显示错误。
<?PHP
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
mysql_query("INSERT INTO newsletter (email) VALUES('$email')") or die(mysql_error());
echo 'You have registered your E-Mail address to our database! You will now receive regular updates on the progess!';
}else{
echo "Check it again!";
}
?>
<form name="newsletter" method="post" action="<?PHP $_SERVER['PHP_SELF']?>">
<input type="text" name="newsletter" id="newsletter">
<input type="submit" value="SUBMIT!">
</form>发布于 2013-07-09 07:06:03
试试这个:)
<?PHP
if($_SERVER["REQUEST_METHOD"]=="POST"){
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
mysql_query("INSERT INTO newsletter (email) VALUES('$email')") or die(mysql_error());
echo 'You have registered your E-Mail address to our database! You will now receive regular updates on the progess!';
}else{
echo "Check it again!";
}
}
?>而不是
<?PHP
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
mysql_query("INSERT INTO newsletter (email) VALUES('$email')") or die(mysql_error());
echo 'You have registered your E-Mail address to our database! You will now receive regular updates on the progess!';
}else{
echo "Check it again!";
}
}
?>编辑背后的逻辑:我们将检查电子邮件或打印“再检查一次!”只有在提交表单的情况下。现在,如果我们不检查表单是否已提交,或者这是第一次加载(或简单刷新)页面,则将发生插入或错误显示。我们不希望出现这种情况:)
发布于 2013-07-09 07:25:10
这只是@MuhammedHedayet答案的另一种选择,我更喜欢这种风格,只在需要的时候检查它。两者都应该能完美地工作:
<?PHP
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
mysql_query("INSERT INTO newsletter (email) VALUES('$email')") or die(mysql_error());
echo 'You have registered your E-Mail address to our database! You will now receive regular updates on the progess!';
} else if ($_SERVER["REQUEST_METHOD"]=="POST"){
echo "Check it again!";
}
?>
<form name="newsletter" method="post" action="<?PHP $_SERVER['PHP_SELF']?>">
<input type="text" name="newsletter" id="newsletter">
<input type="submit" value="SUBMIT!">
</form>https://stackoverflow.com/questions/17537391
复制相似问题