我是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,直到我再次单击该按钮? 代码有什么问题。 谢谢。

===============>>#1 票数:2

意识到我的评论确实是一个答案...

“刷新”时,刷新页面,包括POST数据(因为这是最后一次“请求”)。 您必须重新输入页面地址才能将其清除。 有时您会看到“您真的要再次发送此表格吗?” 刷新时提示-这就是为什么...

===============>>#2 票数:1

Isset()用于检查变量示例:$ variable实际上是否是“ set”并且不为null。 同样,在进行刷新时,您还将刷新已提交的操作和已传递的表单数据。 您可以这样认为:

如果您去购物网站,他们告诉您在处理订单时不要刷新,这意味着如果刷新,则再次提交帖子数据,这意味着您要购买2微波炉,而不是1 :)

因此,在编码中它将如下所示:

if (isset('$_POST['username']')) {
    $username = $_POST['username'];

    if($username == 'letmein') {
         echo ("welcome back, friend!");
    }
}

希望这会有所帮助。 祝好运! 另外,如果您曾经读过“ John”并且需要阅读材料,请查看php手册页!

===============>>#3 票数:0

刷新页面将再次发布已经发布的表单变量,因此,每次刷新页面时,您将重新提交表单,这样,您始终会将isset条件设为true :)

如果您需要更多说明,请告诉我:)

  ask by mac007 translate from so

未解决问题?本站智能推荐:

关注微信公众号