好吧,我可能错过了一些非常明显的东西,但我不能为我的生活弄明白它是什么..
我遇到的问题是当我使用$ _POST ['']
时,用户在输入字段'username'和'password'中输入的信息不会被传递这是我正在使用的表格,非常基本:
<form method="post">
<div class="container">
<label><b>Username</b></label>
<input type="text" placeholder="Enter Username" name="username" required>
<label><b>Password</b></label>
<input type="password" placeholder="Enter Password" name="password" required>
<button type="submit">Login</button>
<input type="checkbox" checked="checked"> Remember me
</div>
<div class="container" style="background-color:#f1f1f1">
<button type="button" class="cancelbtn">Cancel</button>
<span class="psw">Forgot <a href="#">password?</a></span>
</div>
</form>
这是我编写的PHP,它在同一个文档中用于测试目的,问题不是缺少标题。我也在单独的文件中对它进行了测试,但没有区别。
<?php
$username = 'username';
$password = '123';
if ($username == 'username') {
echo 'username retrieved <br />';
}
if ($password == '123') {
echo 'password retrieved <br />';
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
echo ' method retrieved <br />';
if (isset($_POST['username']) && isset($_POST['password'])) {
$u_username = $_POST['username'];
echo $u_username . $username . '<br />';
$u_password = $_POST['password'];
echo $u_password . $password . '<br />';
if ($u_username === $username && $u_password === $password) {
echo 'username and password retrieved <br />';
} else {
echo 'username and/or password not retrieved <br />';
}
}
}
提前谢谢你,我觉得这很愚蠢,但我真的很感激任何反馈!
答案 0 :(得分:1)
您错过了action="login.php"
,因为您的文件名是<form>
中的login.php,如下所示:
<form method="post" action="login.php">
<div class="container">
<label><b>Username</b></label>
<input type="text" placeholder="Enter Username" name="username" required>
<label><b>Password</b></label>
<input type="password" placeholder="Enter Password" name="password" required>
<button type="submit">Login</button>
<input type="checkbox" checked="checked"> Remember me
</div>
<div class="container" style="background-color:#f1f1f1">
<button type="button" class="cancelbtn">Cancel</button>
<span class="psw">Forgot <a href="#">password?</a></span>
</div>
</form>
和php代码是这样的
$username = 'username';
$password = '123';
if ($username == 'username') {
echo 'username retrieved <br />';
}
if ($password == '123') {
echo 'password retrieved <br />';
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
echo ' method retrieved <br />';
if (isset($_POST['username']) && isset($_POST['password'])) {
$u_username = $_POST['username'];
echo $u_username . $username . '<br />';
$u_password = $_POST['password'];
echo $u_password . $password . '<br />';
if ($u_username == $username && $u_password == $password) {
echo 'username and password retrieved <br />';
} else {
echo 'username and/or password not retrieved <br />';
}
}
}
即使我认为前两个测试是无用的
答案 1 :(得分:0)
我使用的PHPStorm版本有一个与POST使用相关的错误,这就是GET确实有效的原因。