我无法通过提供正确的用户名和密码登录页面

时间:2017-09-21 11:08:22

标签: php

我想将用户重定向到登录页面,如果他或她没有登录。在我给定的代码中,如果他或她没有登录,它会重定向到登录页面  如果我提供写入用户名和密码,重定向到登录页面。我想要  如果他或她提供写入凭证,则重定向到abc.php

这是我的login.php

   <? php include "db.php";

   $msg = "";

  if ($_SERVER['REQUEST_METHOD'] == 'POST') 
    {
     $username = $_POST["username"];
     $password = $_POST["password"];


   if ($username == '' || $password == '') 
   {
    $msg = "You must enter all fields";
   }
   else 
   {
      $sql = "SELECT * FROM users WHERE username = '$username' AND password 
     = '$password'";
    $query = mysql_query($sql);

     if ($query == false) 
     {
        echo "Could not successfully run query ($sql) from DB: " . 
     mysql_error();
        exit;
    }

      $check_user = mysql_num_rows($query);
      if($check_user>0)
      {
     // here you need $run_user data
   // use fetch_ methods, for example `fetch_assoc()`
    $user_data = mysql_fetch_assoc($query);

   // print_r($user_data) to check keys
   if ($user_data["user_role"] == 'admin') 
   {

    header("abc.php");
        exit;
    } 
    else
   {
    if ($user_data["user_role"] == 'user') {
    header("xyz.php");
        exit;//redirect somehwere else
  }
  else
  {
    if($user_data["username"] != '$username' && $user_data["password"] != 
   '$password') 
  {
  echo "invalid username or password";
 exit;
}`

  here is my abc.php
  <?php 

  session_start();
 include "db.php";



  if ((empty($_SESSION['user'])) ){
 header('Location: login.php');
exit;
 }
 ?>

1 个答案:

答案 0 :(得分:0)

成功登录后,您必须在$_SESSION['user']中保存用户详细信息。

$user_data = mysql_fetch_assoc($query); ---此行之后添加以下代码。

$_SESSION['user']=$user_data;session_start();应位于 login.php 文件中,而不是 abc.php

然后在 abc.php 文件中,$_SESSION['user']检查将在成功登录时返回true。在会话中分配值之前,应放置session_start()

相关问题