php,提交后使用相同页面的表单

Dor*_*ora 9 html php forms submit

我想知道最简单的方法是什么让我们说一个带有用户/传递和提交按钮的表格,但是在你提交之后回到同一页面而不是去另一个php页面.

我正在考虑if/else语句但是有点困惑如何在经过多次尝试后设置它但仍然没有得到想要的结果

奇怪的是,在我发布之前,我做过你们所说过的所有人.但是......>."" 让我们说这样的简单......

但是我也想设置如果没有输入则点击sumbit会出现错误....应该是容易的但我不知道为什么我似乎无法弄明白

<?php
function userPass()
{
    echo "<form method='post' action=" . $_SERVER['PHP_SELF'] . ">";
    echo "<input type='text' name='user' /><br/>";
    echo "<input type='text' name='pass' /><br/>";
    echo "<input type='submit' value='Login' />";
}
    if(empty($_POST["user"]))
    {
        userPass();
    }
    if(!(empty($_POST["user"])))
    {
        if($_POST["user"] == "comp")
        {
            echo "Welcome comp";
        }
        else
        {
            echo "Wrong user";
        }
    }
    ?>
Run Code Online (Sandbox Code Playgroud)

for*_*nsa 6

其他答案是正确的; 您只需要将用户重新发送到" action"属性中的当前页面.您可以使用" isset" 来测试他们是否这样做.

我没有被提及的一件事是,你的输入没有被消毒,你正在为自己做好准备.您的操作属性中存在巨大的注入漏洞:

$_SERVER['PHP_SELF']
Run Code Online (Sandbox Code Playgroud)

如果您没有对此进行消毒,那么有人可以修改他们看到的URL,而您糟糕的PHP脚本将不会比将其作为SELF常量处理更好.

换句话说,您绝对必须使用htmlspecialchars()函数对该参数进行html编码.有了它,你action应该看起来更像htmlspecialchars($_SERVER['PHP_SELF']).


cod*_*eak 4

如果当前页面是index.php,则使用form标签中的index.php作为action的值。

像这样:

<form action="index.php" method="post">
</form>
Run Code Online (Sandbox Code Playgroud)

您可以通过输入以下内容来检查提交的表格:

if(isset($_POST)){
...
}
Run Code Online (Sandbox Code Playgroud)

在页面顶部