我有一个简单的帖子表单,将数据从一个页面发送到另一个页面,但是当我按下提交时,process.php表示没有输入用户名和密码。我觉得我错过了一些愚蠢明显的东西。我在这里做错了什么?
的login.php
<form action="login_process.php" method="POST">
<h1>Login page</h1>
<input name="username" type="text"><br>
<input name="password" type="password"><br>
<input type="submit" value="Log in">
</form>
login_process.php
var_dump($_POST['username']);
echo '<br>';
if (!isset($_POST['username']) || !isset($_POST['password'])) {
echo 'U heeft geen gebruikersnaam of wachtwoord ingevoerd!'.'<br>';
echo 'username', $_POST['username'];
echo '<br>password', $_POST['password'];
exit;
} else {
$sql = "SELECT `username`,`password` FROM `users` WHERE `username` = '" . $_POST['username'] . "' AND `password` = '" . $_POST['password'] . "'";
echo 'Gebruikersnaam en wachtwoord goed ingevoerd.';
}
答案 0 :(得分:1)
我认为这就是你所需要的 -
if ($_POST['username']=="" || $_POST['password']==""){
echo 'U heeft geen gebruikersnaam of wachtwoord ingevoerd!'.'<br>';
echo 'username', $_POST['username'];
echo '<br>password', $_POST['password'];
exit;
} else {
$sql = "SELECT `username`,`password` FROM `users` WHERE `username` = '" . $_POST['username'] . "' AND `password` = '" . $_POST['password'] . "'";
echo 'Gebruikersnaam en wachtwoord goed ingevoerd.';
}
但是您的代码会遇到很多安全问题,因为有人可以通过在用户名和密码中插入 Programming 逻辑来破解您的应用程序。
最好的方法是 - 1.使用strip_tags($ input) - 这将从输入中删除标签,因为用户名或密码不应该有标签; 2.不要像上面那样存储用户名密码,而是使用加密形式的文本。
答案 1 :(得分:0)
好的!很多混乱完全来自我的身边。我的root中有一个.htaccess文件,显然阻止了所有的POST数据。我删除了.htaccess文件进行测试,并将POST数据整齐地提供给login_process.php。
有关详情,请参阅此帖子: Seems like POST values are lost when .htaccess RewriteRule used. GET values are OK. How to fix?