如果未输入用户名/密码,则使页面无法访问。 PHP

时间:2018-10-22 10:17:24

标签: php html

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

基本上,我在“ 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”

1 个答案:

答案 0 :(得分:2)

您没有在登录页面中设置SESSION变量,因此一旦检查确定就进行设置。...

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

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

的信息。

还要查看准备好的语句。