嗯,我知道有很多这样的线程。但是我尝试了他们在评论中说的所有内容,但没有任何结果。所以我想我必须在这里尝试一下...
基本上,我在“ Login.html”有一个登录表单,在其中输入“ Username(Name = userId)”和“ Password”,这会将您重定向到“ Login.php”,以确保用户名和密码为如果是的话,它应该再次将您重定向,但应重定向到“ hidden.php”。如果删除
,效果很好<?php
session_start();
if(!isset($_SESSION['User']))
{
header('location: login.php');
exit();
}
?>
此行从“ hidden.php”的顶部开始。
但是另一方面,如果人们只输入“ /hidden.php”而不输入密码,它应该将您重定向到“ Login.php”,这由于任何原因均无法正常工作。而且我已经搜索了很多找到了关于它的线程,但是在我的情况下,实际上没有一个起作用。
<?php
session_start();
$serverName = "den1.mysql2.gear.host";
$username = "lexidatabaseweb";
$password = "*";
$db = "lexidatabaseweb";
//Create connection
$conn = mysqli_connect($serverName, $username, $password, $db);
if(isset($_POST['userId']))
{
$User=$_POST['userId'];
$Pass=$_POST['passId'];
$sql = "SELECT * from tbl_register WHERE Username= '".$User."' AND Password = '".$Pass."' limit 1";
$result = mysqli_query($conn, $sql);
if(mysqli_num_rows($result) == 1){
header('location: hidden.php');
exit();
}
else{
echo" <label style='color:red;'> Wrong username / password.</label>";
exit();
}
}
else
{
echo "Invalid request";
}
?>
您上面看到的代码来自“ Login.php”
答案 0 :(得分:2)
您没有在登录页面中设置SESSION变量,因此一旦检查确定就进行设置。...
if(mysqli_num_rows($result) == 1){
$_SESSION['User'] = $User;
header('location: hidden.php');
exit();
}
您还应该更改密码处理方式并阅读有关password_hash()
还要查看准备好的语句。