简体   繁体   English

使用会话变量作为PHP中的对象

[英]Use session variable as object in PHP

Need some assistance. 需要帮助。 I am getting the following errors 我收到以下错误

Fatal error: Call to a member function getName() on string in...... 致命错误:在字符串in中调用成员函数getName()……

This refers to the line on by index.php 这是指index.php上的行

$session->getName()

The code. 编码。

index.php 的index.php

include 'classes/user.php';
$session = isset($_SESSION['userObj']) ? $_SESSION['userObj'] : "";
include 'login.php';

$session->getName()

login.php 的login.php

session_start();
$user = new User();
$user->setAll($db_id,$db_fullname,$db_username,$db_rights, $db_last_login,$db);

$_SESSION['userObj'] = $user;

How do you pass objects correctly via session vars? 如何通过会话变量正确传递对象? I've checked on this site and its advised to do it like i have. 我已经检查了这个网站,并建议像我一样去做。

I know i'm not doing the else statement right on the isset part. 我知道我没有在isset部分上执行else语句。 Should i be doing. 我应该在做什么。

else{ $session = new User();}

Use serialize() 使用serialize()

//Set object as session
$user = new User();
$_SESSION['userObj'] = serialize($user);

//Get object 
$user = unserialize($_SESSION['userObj']);

FYI, don't forget to write session_start(); 仅供参考,别忘了写session_start(); on first line of every page to use $_SESSION . 在每个页面的第一行上使用$_SESSION

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM