以下是我的代码的精简版。
我在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']);
}
}
答案 0 :(得分:0)
session_start()
应放在脚本的顶部,而不是放在每个方法中。
将其放在<?php
标记之后。
答案 1 :(得分:0)
试试这个。 session_start();
应位于页面顶部
<?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();
答案 2 :(得分:0)
尝试放置
在包含课程之前start_session
,或者只是将其作为代码将要做的第一件事。
如果此类是您使用会话的唯一地方,也可以使用构造函数。构造函数是类在创建实例时自动执行的第一件事。
function __construct(){
session_start();
}
答案 3 :(得分:0)
我没有做太多OOP但你可以尝试一下,看看它是否有效。在function search()
而不是print_r($_SESSION['members_search'])
,而不是return $_SESSION['members_search']
,然后在function search_results()
中,将print_r
替换为此print_r(search());
答案 4 :(得分:0)
$n = new Cdwd_members;
$n->search_results();
调用搜索方法时存储的会话,也许你应该在'search_results'之前调用'search'?
答案 5 :(得分:0)