2014-02-22 19 views
1

訪問會話變量時,我得到錯誤:錯誤在PHP

Notice: Undefined variable: _SESSION in C:\xampp\htdocs\vts\include\functions.php on line 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()函數中訪問這個變量?

+2

您是否添加了'session_start()'? – Bram

+1

注意:'mysql'擴展名自PHP 5.5.0起棄用,並且將來會被刪除。相反,應該使用MySQLi或PDO_MySQL擴展。 – GolezTrol

回答

3

你得到這個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擴展名。