我想知道什么是最简单的方法,使假设与用户的形式组织/通过,并用PHP提交按钮,但提交后回到同一页面,而不是转到另一个PHP页面。
我想if / else语句,但有点糊涂如何设置大量的尝试后,但仍然没有得到想要的结果
奇怪我做了所有那些你们说我才posted..but ...>。<”让我们说只是一些简单的像这样...
但我也想,如果没有输入则透过点击就会有错误设置....应该是容易的,但我不知道为什么我似乎无法弄清楚
<?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";
}
}
?>
其他的答案是正确的; 你只需要回送周围用户的当前页面中的“ action
”属性。 您可以测试,看看他们是否也这样使用“ isset
”。
的东西,我很惊讶,尚未提及的是,你的输入不被消毒,而且你在和自己的灾难。 在你的action属性巨大注入漏洞:
$_SERVER['PHP_SELF']
如果你不清理这一点,那么有人可以只修改他们看到的网址你可怜的PHP脚本将不知道比任何处理,作为您更好的SELF
恒定。
换句话说,你绝对必须使用htmlspecialchars()
函数进行HTML编码参数。 就这样,你的action
应该看起来更像是htmlspecialchars($_SERVER['PHP_SELF'])
如果当前页面的index.php,在形式上标签作为行动的价值使用的index.php。
像这样:
<form action="index.php" method="post">
</form>
ü可以通过将检查提交的表单:
if(isset($_POST)){
...
}
在页面顶部
只要使用以下语法
<form method="post" 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";
}
}
?>
你的这部分代码是错误的,应键入:如果(空($ _ POST [“用户”])!)
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
这正是你如何与您的形式重新加载页面,点击工作这种形式里面的提交按钮时。
附加:添加required
到你想要求或检查它是否是空的所有输入。
这是我创建来控制学习所需的输入字段满足要求的码。 如果是这样,数据将被发送到数据库。 如果不符合要求,将有一条消息可以在页面的顶部显示
<?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');
} ?>
我希望这是对你有用的信息
您可以在表单提交定义:
<form method=get action=index.php >
您也可以留下动作干脆出去,它会自动交/得到了同一个文件。
这个代码将会帮助你
<form action="<?= $_SERVER['REQUEST_URI'] ?>" method="post">
或者你可能只是这样做:
<form action="" method="post">
谢谢 ....
我认为所有已经错过了实际问题,即是否有留在同一个页面提交表单后一种方式。 答案是NO。 一旦你提交表单-您是否使用POST或GET方法,当然,假设你正在使用$ _ SERVER [“PHP_SELF”]或空的动作,等等- 一个新的页面会自动打开 。 这个拥有至少PHP。 (我已经尝试了很多使用XAMPP不同的方式)。但我现在对其他脚本语言。