如果未键入用户名/密码,则无法访问页面..PHP



嗯,我知道像这样的线程很多。但是我已经尝试了他们在评论中所说的一切,但没有任何结果。所以我想我必须在这里尝试一下...

基本上,我在"登录.html"有一个登录表单,您可以在其中键入"用户名(名称=userId("和"密码",这会将您重定向到"登录.php"以确保用户名和密码已写入,如果是,它应该再次重定向您,但要"隐藏.php"。如果我删除,那工作正常

<?php
session_start();
if(!isset($_SESSION['User']))
{
header('location: login.php');
exit();
}
?>

这行从"隐藏.php"的顶部。

但另一方面,如果人们只是输入"/hidden.php"而不输入密码,它应该将您重定向到"登录.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";
}
?>

您可以在上面看到的代码来自"登录.php">

您没有在登录页面中设置 SESSION 变量,因此请在检查正常后进行设置。

if(mysqli_num_rows($result) == 1){
$_SESSION['User'] = $User;
header('location: hidden.php');
exit();
}

您还应该更改密码处理并阅读有关password_hash()

还要查看准备好的陈述。

最新更新