【问题标题】:Error when accessing session variable in php在php中访问会话变量时出错
【发布时间】:2014-02-22 12:03:05
【问题描述】:

我收到错误:

注意:未定义变量:_SESSION in C:\xampp\htdocs\vts\include\functions.php 第 53 行

在访问会话变量时。以下是我的代码:

<?php
include_once('include/config.php');
class User
{
//Database connect 
public function __construct(){
    $db = new DB_Class();
}

//Registration process 
public function register_user($fname, $lname, $username, $email, $password){
    $password = md5($password);
    $sql = mysql_query("SELECT u_id from vt_user WHERE u_username = '$username' or u_email = '$email'");
    $no_rows = mysql_num_rows($sql);
    if ($no_rows == 0){
        $result = mysql_query("INSERT INTO vt_user(u_fname, u_lname, u_username, u_email, u_password) values ('$fname', '$lname', '$username', '$email','$password')") or die(mysql_error());
        return $result;
    }else{
        return FALSE;
    }
}

// Login process
public function check_login($emailusername, $password) 
{
    $password = md5($password);
    $result = mysql_query("SELECT u_id from vt_user WHERE u_email = '$emailusername' and u_password = '$password'");
    $user_data = mysql_fetch_array($result);
    $no_rows = mysql_num_rows($result);
    if ($no_rows == 1){
        $_SESSION['login']=TRUE;
        $_SESSION['uid'] = $user_data['uid'];
        return TRUE;
    }else{
        return FALSE;
    }
}

// Getting name
public function get_session_details() 
{
    if(isset($_SESSION['login'])){
        $id = $_SESSION['uid'];
        $result = mysql_query("SELECT u_id, u_fname, u_lname, u_username, u_email from vt_user where u_id = $id");
        $user_data = mysql_fetch_array($result);
        echo "Hello ".$user_data['name'];
    }
}

// Getting session 
public function get_session() 
{
    return $_SESSION['uid'];
}

// Logout 
public function user_logout() 
{
    $_SESSION['login'] = FALSE;
    session_destroy();
}

}
?>

还有其他方法可以做到这一点吗?如何在get_session() 函数中访问此变量?

【问题讨论】:

  • 你添加session_start()了吗?
  • 注意:mysql 扩展自 PHP 5.5.0 起已弃用,将来将被删除。相反,应该使用 MySQLi 或 PDO_MySQL 扩展。

标签: php session session-variables


【解决方案1】:

您收到此 Notice: Undefined variable: _SESSION 错误是因为您没有在 PHP 代码顶部添加 session_start();

像这样添加..

<?php
session_start();//<----------- Add here
include_once('include/config.php');
class User
{
//... your rest of the code

次要旁注:此 (mysql_*) 扩展自 PHP 5.5.0 起已弃用,将来将被删除。相反,应该使用 MySQLiPDO_MySQL 扩展名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多