php,表单提交后使用相同的页面
我想知道用php制作带有user/pass和submit按钮的表单的最简单方法是什么,但是在提交后,它会返回到同一页面,而不是转到另一个php页面 我正在考虑if/else语句,但在多次尝试后仍不知道如何设置它,但仍然没有得到想要的结果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&
奇怪的是,在我发布之前,我做了你们说的所有事情。但是…>。如果当前页面是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">