我想知道最简单的方法是什么,让我们说一个带有 user/pass 的表单并使用 php 提交按钮,但在您提交后它会返回到同一页面,而不是转到另一个 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";
}
}
?>
最佳答案
其他答案都对;您只需要在“action
”属性中将用户发送回您的当前页面。您可以使用“isset
”进行测试,看看他们是否这样做了。
令我感到惊讶的是,您的输入未经过过滤,您正在为灾难做好准备,但尚未提及,这让我感到惊讶。您的操作属性中存在巨大注入(inject)漏洞:
$_SERVER['PHP_SELF']
如果您不对此进行清理,那么其他人就可以修改他们看到的 URL,而您可怜的 PHP 脚本除了将其作为您的 SELF
常量进行处理之外别无他法。
换句话说,您绝对必须使用htmlspecialchars()
函数对该参数进行html 编码。这样,您的 action
应该看起来更像 htmlspecialchars($_SERVER['PHP_SELF'])
。
关于php,提交后使用同一页面的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15130493/