我一直默默地跟随着这里,现在我加入了自己。
我正在制作一个登录系统,纯粹是为了学习它,因为我是PHP的半新手(约2个月的最佳猜测)。
现在我收到以下错误(使用WAMP和mysql):
“注意:未定义的属性:stdClass :: $ id in 第44行“C:\ wamp64 \ www \ login \ classes \ user.php”
这是WAMP所说的一句话:
#!/bin/bash
echo "This is a shell script"
git status
git pull origin development
这是使用的put(& get)函数:
session::put($this->_sessionName, $this->data()->id);
我的登录系统正在运行,直到此登录点,甚至哈希和所有内容。
我正在尝试存储用户的ID,以便在我想检查它是否正常运行时使用以下内容:
public static function put($name, $value){
return $_SESSION[$name] = $value;
}
public static function get($name){
return $_SESSION[$name];}
在我的用户类中执行此操作后:
echo session::get(config::get('session/session_name'));
它应该只给我一个用户ID(例如2,如果用户ID是2(ID是自动递增的))。 (该配置包含DB连接,会话和令牌等的基本数组。)
但事实并非如此。
我真的希望这不是一个重复的问题,因为我找不到要求这种用法的问题。
有没有人可以帮助我朝正确的方向发展?
答案 0 :(得分:1)
好错误是自我解释
$this->data()
中的 user.php
会返回没有id
这是简单调试的问题,看看$this->data()
返回的内容......
答案 1 :(得分:0)
我建议你使用一个带有静态成员函数的会话类,这样你就可以从任何具有类名的地方调用该方法
最重要的是 当你开始会话时使用Error Control Operator。如果会话正在进行,系统不会再次启动,错误将被忽略,所以你可以确保会话变量
例如: -
<?php
class Session
{
public static function init()
{
@session_start(); //#
}
public static function set($key, $value)
{
$_SESSION[$key] = $value;
}
public static function get($key)
{
if (isset($_SESSION[$key]))
return $_SESSION[$key];
else
return false;
}
}
现在使用它如下: -
<?php
require 'Session.php';
class TestController{
function setData()
{
Session::init();
Session::set('user_id',1);//set userid to session
}
function getData()
{
Session::init(); //this also won't give you error;
echo Session::get('user_id'); //get or retrieve userid from session
}
}
?>
但在构造函数中使用Session :: init进行良好的编程实践..