如何在PHP中将会话从用户名更改为ID?

时间:2018-07-20 12:26:54

标签: php mysql session

        // LOGIN USER
        if (isset($_POST['login_user'])) {
          $username = mysqli_real_escape_string($db, $_POST['username']);
          $password = mysqli_real_escape_string($db, $_POST['password']);

          if (empty($username)) {
            array_push($errors, "Username is required");
          }
          if (empty($password)) {
            array_push($errors, "Password is required");
          }

          if (count($errors) == 0) {
            $password = md5($password);
            $query = "SELECT * FROM register WHERE username='$username' AND password='$password'";
            $results = mysqli_query($db, $query);
        }   

            $qry = "SELECT * from register";
            $result = mysqli_query($qry);

            $row = mysqli_fetch_array($result);
            $id = $row[0];


            if (mysqli_num_rows($results) == 1) {
    //here i want to change session from username to id          
     $_SESSION['username'] = $username;
              $_SESSION['success'] = "You are now logged in";
              header('location: index.php');
            }else {
                array_push($errors, "Wrong username/password combination");
            }
          }
        ?>

此代码也可以工作,但我想将用户名会话替换为ID会话。请帮助我,我如何将其替换为ID。  在这里,我想将会话设置为用户名的ID。所以请帮我如何获得代码的解决方案。

3 个答案:

答案 0 :(得分:1)

只需复制以下代码: 替换代码

$_SESSION['username'] = $username; 

$_SESSION['id'] = $username;

看起来像:

if (mysqli_num_rows($results) == 1) {
    //here i want to change session from username to id          
    $_SESSION['id'] = $username;
    $_SESSION['success'] = "You are now logged in";
    header('location: index.php');
}else {
    array_push($errors, "Wrong username/password combination");
}

答案 1 :(得分:0)

只需设置$_SESSION['id'] = $id

答案 2 :(得分:0)

您可以像这样获取值,因为我们将结果获取到数组中

$ row = mysqli_fetch_array($ result);

$ id = $ row [0];

正确的方法在下面

// LOGIN USER
    if (isset($_POST['login_user'])) {
      $username = mysqli_real_escape_string($db, $_POST['username']);
      $password = mysqli_real_escape_string($db, $_POST['password']);

      if (empty($username)) {
        array_push($errors, "Username is required");
      }
      if (empty($password)) {
        array_push($errors, "Password is required");
      }

      if (count($errors) == 0) {
        $password = md5($password);
        $query = "SELECT * FROM register WHERE username='$username' AND password='$password'";
        $results = mysqli_query($db, $query);
    }   

        $qry = "SELECT * from register";
        $result = mysqli_query($qry);

        $row = mysqli_fetch_array($result);

        // $id =  $row[0];

        $id = $row['id'];  //this is the primary key


        if (mysqli_num_rows($results) == 1) {         
          $_SESSION['id'] = $id;
          $_SESSION['success'] = "You are now logged in";
          header('location: index.php');
        }else {
            array_push($errors, "Wrong username/password combination");
        }
      }
    ?>