当按下提交按钮时,即使使用带有isset()的条件,也不会指向标题。 注意:这只是一个测试页面,所以我知道存储密码并不是我已经完成的安全方式
我的index.php
<?php
include 'connect.php';
if($_SERVER["REQUEST_METHOD"]==$_POST){
$username = $_POST['username'];
$password = $_POST['password'];
$query = "SELECT id FROM login WHERE username = '$username' AND password='$password'";
$result= mysqli_query($connection, $query);
$count = mysqli_num_rows($result);
if($count==1){
header("location:welcome.php");
}
else{
echo "invalid credentials";
}
}
?>
<html>
<head></head>
<body>
<form method="post" action="">
<input type="text" name="username" id="username" placeholder = "Username"/>
<input type="password" name="password" id="password" placeholder = "**********"/>
<input type="submit" value="submit" />
</form>
</body>
</html>
connect.php
<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_DATABASE', 'users');
$connection = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
的welcome.php
<?php
echo"Hello world";
?>
我没有使用任何会话而忽略了我应该改变的事实吗?
答案 0 :(得分:0)
服务器的REQUEST_METHOD是一个字符串,您将它与_POST数组进行比较。
替换此
if($_SERVER["REQUEST_METHOD"]==$_POST){
与
if($_SERVER["REQUEST_METHOD"] == "POST"){
正确检查服务器的请求方法。 然后,其余代码应该运行。