Php can';不要在codeIgniter上使用会话
我的表单控制器中有一个会话,用户保存时创建该会话 会话会影响表单页面,因此我的问题是: 如果我在加载页面时没有单击“保存”,则会出现未定义索引[session index]错误 所以我在主页上创建了会话 但问题是,如果我在没有访问主页的情况下加载表单页面,则会出现未定义索引错误 我试图调用方法Php can';不要在codeIgniter上使用会话,php,codeigniter,session,Php,Codeigniter,Session,我的表单控制器中有一个会话,用户保存时创建该会话 会话会影响表单页面,因此我的问题是: 如果我在加载页面时没有单击“保存”,则会出现未定义索引[session index]错误 所以我在主页上创建了会话 但问题是,如果我在没有访问主页的情况下加载表单页面,则会出现未定义索引错误 我试图调用方法session\u start(),但出现了此错误 遇到一个PHP错误 严重性:注意消息:会话已启动- 忽略会话_start()文件名:views/Form.php行号:5 我不知道您为什么要在CI中实现自
session\u start()
,但出现了此错误
遇到一个PHP错误
严重性:注意消息:会话已启动-
忽略会话_start()文件名:views/Form.php行号:5
我不知道您为什么要在CI中实现自己的会话管理,因为CI提供的强大工具之一是一个灵活、简单但功能强大的会话管理系统
即便如此,解决这个难题的一个简单方法当然是简单地检查会话变量是否在您的表单中设置,如果未设置,则将其设置为0。在控制器中,您可以处理该问题,即检查值是否为0,如果是,则启动会话并分配会话变量,或将用户抛出,或在找不到会话时执行应用程序需要执行的任何操作,或设置为0,表示会话尚未激活。我强烈建议使用默认CI会话库。您可以在
autoload.php
中自动加载会话。您的会话将自动启动,无需调用session\u start()
然后将$\u会话['save']=“true”
替换为$this->SESSION->set\u userdata('save','true')代码>
我认为您需要检查session['save']
是否为真,因此您必须事先声明session['save']
在routes.php中指定的默认控制器中为“false
”,并确保session['save']
索引已在表单页面控制器中定义,检查如下:
if ($this->session->userdata('save')) {
// do something when exist
} else {
$this->session->set_userdata('save', 'false');
}
您的会话将自动启动,无需在每个控制器中调用会话_start()。codeigniter会话库负责处理它
首先,您必须加载会话库。application/config/autoload.php
$this->load->library("session");
如果已经加载,则无需再次加载
在会话中设置数据的步骤
$this->session->set_userdata("KEY","VALUE");
从会话获取数据的步骤
$this->session->userdata("KEY");
您似乎在用户单击“保存”按钮后使用了会话变量。因此,您可以在用户单击“保存”按钮之前将此变量设置为null。在此处发布代码…以便我可以帮助您。$\u会话['save']=“true”;重定向(FormController);保存后的上述表单控制器这是主控制器$\u会话['save']=“false”;这是表格