无法读取会话数据


Unable to read session data

下面是我的代码的精简版本。

我在search函数中设置会话,并将其打印出来以检查其设置。印刷我们的作品。

然后,我尝试在search_results中读取会话,并显示以下错误:

未定义的索引:members_search

一辈子都无法弄清楚我做错了什么。

任何帮助将不胜感激。

<?php 
session_start();
class Cdwd_members {
    public function search() 
    {
        $results = '.........'
        $_SESSION['members_search'] = $results;
        print_r($_SESSION['members_search']);
    }   
    public function search_results() 
    {   
        print_r($_SESSION['members_search']);
    }
}

session_start()应该放在脚本的顶部,而不是在每个方法中。

把它放在<?php标签之后。

尝试放置

start_session

在包含类之前,或者只是将其作为代码将要执行的第一件事。

如果此类是您使用会话的唯一位置,您也可以使用构造函数。构造函数是类在创建实例时自动执行的第一件事。

function __construct(){
  session_start();
}

构造函数和析构函数 PHP Docs

我没有做太多的 OOP,但你可以试试这个,看看它是否有效。在function search()中,而不是print_r($_SESSION['members_search']),尝试代替return $_SESSION['members_search'],然后在function search_results()中,将print_r替换为此print_r(search());

试试这个。 session_start(); shlould 位于页面顶部

 <?php 
    session_start();
    class Cdwd_members {
        public function search() 
        {
            $results = 'my';        
            $_SESSION['members_search'] = $results;
            print_r($_SESSION['members_search']);
        }   
        public function search_results() 
        {  
            print_r($_SESSION['members_search']);
        }
    }
    $n = new Cdwd_members;
    $n->search();
   $n->search_results();
$n = new Cdwd_members;
$n->search_results();
调用搜索

方法时存储会话,也许您应该在"search_results"之前调用"搜索"?

  1. 如果代码第 9 行缺少 ;,则添加它。
  2. 确保在调用 search_results() 之前调用函数 search()。或者你可以在 search() 中调用 search_results() 来设置会话。