【问题标题】:Adding user_id into Session mysql将 user_id 添加到 Session mysql
【发布时间】:2017-06-12 06:45:55
【问题描述】:

我试图弄清楚如何将我的 user_id 从我的数据库添加到像我的用户名一样的会话中。我想要它,所以当我登录时,我可以根据用于登录的用户名调用会话来调用用户 ID 帖子。

我该怎么做?

我的登录 php:

<?php

session_start();

$connect = mysql_connect( "localhost", "user", "pass") or die('Database could not connect');
$select = mysql_select_db( "database", $connect) or die('Database could not select');

if (isset($_POST['submit'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];
    chckusername($username, $password);
}

function chckusername($username, $password){

    $check = "SELECT * FROM users WHERE username='$username'";
    $check_q = mysql_query($check) or die("<div class='loginmsg'>Error on checking Username<div>");

    if (mysql_num_rows($check_q) == 1) {
        chcklogin($username, $password);
    }
    else{
        echo "<div id='loginmsg'>Wrong Username</div>";
    }
}

function chcklogin($username, $password){

    $login = "SELECT * FROM users WHERE username='$username'  and password='$password' ";
    $login_q = mysql_query($login) or die('Error on checking Username and Password');



print_r($lohin_q);

    if (mysql_num_rows($login_q) == 1){



        header('Location: http://ct6014-williams.studentsites.glos.ac.uk/pages-multi-page/home.php');        
        $_SESSION['username'] = $username;
        $_SESSION['user_id'] = $userid; //this is where I want to store the user id

    }
    else {
        echo "<div id='loginmsg'>Wrong Password </div>"; 

    }
}
?>

在 home.php 上:

<?php echo "Your username is " . $_SESSION["username"] . "."; ?>    
     <?php echo "Your id is " . $_SESSION["user_id"] . "."; ?>

数据库名称:

user_idusernameuser_first_nameuser_last_nameuser_emailpassworduser_reg_date

编辑:

啊,我忘了说,我用过 include('login.php');当我以用户身份登录时,它创建了会话。第一个用户名会话回显,但我似乎无法弄清楚如何设置 user_id 会话

【问题讨论】:

  • 您还需要在home.php 中启动会话
  • 啊,我忘了说,我用过include('login.php');当我以用户身份登录时,它创建了会话。第一个用户名会话回显,但我似乎无法弄清楚如何设置 user_id 会话
  • 如果您已经上线或打算上线,请不要使用此代码
  • 我没有 :) 这纯粹是为了作业。

标签: php mysql database session


【解决方案1】:

chcklogin() 函数中,使用mysql_fetch_array() 函数从结果集中获取行并将所需的用户数据分配给$_SESSION。因此,请按以下方式更改您的 if (mysql_num_rows($login_q) == 1){ ... 块,

if (mysql_num_rows($login_q) == 1){
    $row = mysql_fetch_array($login_q);
    $_SESSION['username'] = $row['username'];
    $_SESSION['user_id'] = $row['user_id'];
    header('Location: http://ct6014-williams.studentsites.glos.ac.uk/pages-multi-page/home.php'); 
    exit();
} else {
    echo "<div id='loginmsg'>Wrong Password </div>"; 

}

旁注:不要使用mysql_* 函数,它们在 PHP 5.5 中已被弃用,并在 PHP 7.0 中被完全删除。请改用mysqlipdoAnd this is why you shouldn't use mysql_* functions

【讨论】:

  • 我不太确定如何执行 mysql_fetch_array 但我会试一试 :) 谢谢!
  • 啊,没关系 :) 我对 'In chcklogin()' 部分有点困惑,但我脑子里放了个屁,现在一切正常。
  • 非常感谢 x
  • @NaomiWilliams 不客气!很高兴我能帮助你。 ;-)
猜你喜欢
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 2017-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-27
  • 1970-01-01
相关资源
最近更新 更多