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

php,表单提交后使用相同的页面,php,html,forms,submit,Php,Html,Forms,Submit,我想知道用php制作带有user/pass和submit按钮的表单的最简单方法是什么,但是在提交后,它会返回到同一页面,而不是转到另一个php页面 我正在考虑if/else语句,但在多次尝试后仍不知道如何设置它,但仍然没有得到想要的结果 奇怪的是,在我发布之前,我做了你们说的所有事情。但是…>。如果当前页面是index.php,请在表单标记中使用index.php作为操作值 像这样: <form action="index.php" method="post"> </form&

我想知道用php制作带有user/pass和submit按钮的表单的最简单方法是什么,但是在提交后,它会返回到同一页面,而不是转到另一个php页面

我正在考虑if/else语句,但在多次尝试后仍不知道如何设置它,但仍然没有得到想要的结果


奇怪的是,在我发布之前,我做了你们说的所有事情。但是…>。如果当前页面是index.php,请在表单标记中使用index.php作为操作值

像这样:

<form action="index.php" method="post">
</form>

在页面顶部,您可以在表单提交中定义:

<form method=get action=index.php >

您也可以完全忽略操作,它将自动发布/获取同一文件。

只需使用下面的语法即可

<form method="post" action="">


您可以检查是否使用isset()方法设置post。

这是我创建的代码,用于控制学习所需的输入字段是否满足要求。在这种情况下,数据将被发送到数据库。如果不符合要求,页面顶部可能会显示一条消息

<?php
if (!isset($_POST['submitform'])) {   
}
else
{
$_SESSION['firstname'] = $_POST['firstname'];
$_SESSION['lastname'] = $_POST['lastname'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['mobile'] = $_POST['mobile'];
$_SESSION['telephone'] = $_POST['telephone'];
$_SESSION['place'] = $_POST['place'];
$_SESSION['street'] = $_POST['street'];
$_SESSION['housenumber'] = $_POST['housenumber'];
$_SESSION['gender'] = $_POST['gender'];

if (empty($_POST['firstname']) or empty($_POST['lastname']) or empty($_POST['email']) or empty($_POST['mobile'])or empty($_POST['telephone']) or empty($_POST['place'])
or empty($_POST['street']) or empty($_POST['housenumber']) or !isset($_POST['gender']))
{
    echo "Sending denied";
}
else
{       
    require 'database.php';

    header('Location: succes.php');
}  ?>


我希望这是对您有用的信息

其他答案都是正确的;您只需在“
action
”属性中将用户发送回当前页面即可。您可以使用“
isset
”测试他们是否这样做

<?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";
        }
    }
    ?>
我感到惊讶的是,我还没有提到的是,你的输入没有被净化,你正在为自己设置灾难动作属性中存在巨大的注入漏洞:

$_SERVER['PHP_SELF']
如果您不对此进行清理,那么有人就可以修改他们看到的URL,而您糟糕的PHP脚本只知道将其作为您的
SELF
常量进行处理


换句话说,您必须使用
htmlspecialchars()
函数对该参数进行html编码。这样,您的
操作
看起来应该更像
htmlspecialchars($\u SERVER['PHP\u SELF'])

此代码将帮助您

<form action="<?= $_SERVER['REQUEST_URI'] ?>" method="post">

我认为所有人都忽略了实际问题,即是否有办法在提交表单后保持在同一页面上。答案是否定的。提交表单后(无论您使用POST还是GET方法,当然假设您使用的是$\u SERVER['PHP\u SELF']或空操作等)将自动打开一个新页面。这至少适用于PHP。(我使用XAMPP尝试了很多不同的方法。)我现在不知道其他脚本语言。

什么是“需要的结果”?发布一些代码尝试。我们将尝试修复此问题…将表单操作设置为
您能否提供一些详细信息,说明为什么这是一个有效的答案?这正是您制作表单的方式。不符合w3c!元素“form”上的属性“action”的值“”不正确:必须是非空的。这与问题无关,不是吗?@Apostolos它与他的用例非常相关,不是吗?将action设置为PHP_文件名(例如index.PHP)当然是w/o,所以它不会改变任何东西。
$_SERVER['PHP_SELF']
 <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<form action="<?= $_SERVER['REQUEST_URI'] ?>" method="post">
<form action="" method="post">