无法使用密码保护页面/区域

时间:2019-01-18 11:38:56

标签: php mysql session login

我正在尝试创建网站的密码保护区域。 我想通过检查MySql表中的用户名和密码来允许访问,然后启动会话并允许在会话处于活动状态时访问多个页面。如果有人试图直接直接访问这些页面之一,我想将它们重定向到登录页面。

我登录页面的代码是:

     if (isset($_POST['submit']))
        {     
    include("config.php");
    session_start();
    $username=$_POST['username'];
    $password=$_POST['password'];
    $passwordc=md5($password);        

    $query = "SELECT username FROM admin WHERE username='$username' AND password='$passwordc'";
     $result2 = $conn->query($query);

    if ($result2->num_rows != 0) {          

    $_SESSION["username"] = $user;
      echo "<script language='javascript' type='text/javascript'> location.href='admin_view.php' </script>";   
    }else{
      echo "<script type='text/javascript'>alert('User Name Or Password Invalid!')</script>";
    }

    }

它似乎起作用(如果用户名和密码匹配,则正确重定向,否则显示警告)。 我无法做的是,如果会话未处于活动状态,实际上是在保护我的页面不显示。

   session_start();
if (!$_SESSION["username"]) {
    header("Location: login.php");
}

我不是程序员或受过良好教育的Web开发人员。我知道HTML和CSS,并且在自述文件之后几乎无法使用现成的php和js脚本。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

将您的登录代码修改为

 if (isset($_POST['submit']))
    {     
   include("config.php");
  $username= $crud->escape_string($_POST['username']);
  $password= $crud->escape_string($_POST['password']);
   $passwordc=md5($password); 
   $query = "SELECT username FROM admin WHERE username='$username' AND 
   password='$passwordc'";
   $result2 = $conn->query($query);
  if ($result2->num_rows != 0) { 
   session_start();         
  $_SESSION["username"] = $user;
  header("Location:admin_view.php");   
}else{
  $Message = urlencode("user name password invalid!");
                      header("Location:login.php?Message=".$Message);
}
   }

如果您的值成功存储在会话中,则可以使用

session_start();
if(!isset($_SESSION['username'])) 
  {
  header("Location: login.php");  
  }

在每页顶部 您必须将查询中的名称存储到会话中