我是PHP的初学者。在我的代码中,我希望只有在单击(设置)提交按钮时才能执行php脚本。因此,当刷新页面时,isset()函数应返回false。这是test.php的代码
<html>
<head>
<title>A BASIC HTML FORM</title>
<?PHP
if (isset($_POST['Submit1'])) {
$username = $_POST['username'];
if ($username == "letmein") {
print ("Welcome back, friend!");
}
else {
print ("You're not a member of this site");
}
}
else{
$username = "";
}
?>
</head>
<body>
<Form name ="form1" Method ="POST" Action ="test.php">
<Input Type = "text" Value ="<?php print $username?>" Name ="username">
<Input Type = "Submit" Name = "Submit1" Value = "Login">
</form>
</body>
</html>
单击登录按钮后,脚本将被执行,输出为“您不是会员”,但是当我刷新页面时,脚本中的消息仍然保留在屏幕上。我相信isset()应该返回false,直到我再次单击该按钮?代码有什么问题。 感谢。
答案 0 :(得分:2)
意识到我的评论确实是一个答案......
当您“刷新”时,刷新包含POST数据的页面(因为那是最后一次“请求”)。您必须重新输入页面的地址才能清除它。有时你会看到“你真的想再发这份表吗?”刷新时提示 - 这就是为什么......
答案 1 :(得分:1)
Isset()用于检查变量示例:$ variable是否实际为“set”且不为null。此外,在进行刷新时,您还会刷新已提交的操作以及已传递的表单数据。你可以这样想:
如果你去购物网站并告诉你在订单处理时不刷新,这意味着如果刷新你的帖子数据再次提交意味着你买了2个微波而不是1:)
所以在编码中它看起来像这样:
if (isset('$_POST['username']')) {
$username = $_POST['username'];
if($username == 'letmein') {
echo ("welcome back, friend!");
}
}
希望这会有所帮助。祝好运!另外,如果您曾经阅读过“John”并需要阅读材料,请查看php manual page!
答案 2 :(得分:0)
刷新页面会再次发布已发布的表单变量,因此每次刷新页面时,您都要重新提交表单,这样您将始终将isset
条件设置为true:)
我需要更多解释告诉我:)