我有一个简单的 post 表单,将数据从一个页面发送到另一个页面,但是当我按下提交时,process.php 说没有输入用户名和密码。我觉得我错过了一些非常明显的东西。我在这里做错了什么?
登录.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>
登录进程.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.';
}
最佳答案
我想这就是你需要的 -
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.';
}
但是您的代码会有很多安全问题,因为有人可以通过在用户名和密码中插入编程逻辑来尝试破解您的应用程序。
最好的方法是—— 1. 使用 strip_tags($input) - 这将从输入中删除标签,因为用户名或密码不应该有标签; 2. 不要像上面那样在你的数据库中存储用户名密码,使用加密的文本形式。
关于PHP 邮寄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35173956/