Session 在不使用$\u GET或URI段的情况下传递变量-CodeIgniter

Session 在不使用$\u GET或URI段的情况下传递变量-CodeIgniter,session,codeigniter,variables,parameters,get,Session,Codeigniter,Variables,Parameters,Get,我有一个博客,我想让用户点击一个链接,以能够反转颜色方案(从暗对亮到亮对暗)。这个链接将出现在博客的每个页面上 如果我没有使用CodeIgniter,我会创建一个带有参数的链接(例如“index.php?inversed=true”),并在我的控制器中检测是否设置了$\u GET['inversed'],设置一个$\u会话变量。设置$\u会话时,将更改链接并添加额外的CSS文件。链接的新href类似于“index.php?inversed=false”,并且$\u会话变量将被取消设置。它将在站点

我有一个博客,我想让用户点击一个链接,以能够反转颜色方案(从暗对亮到亮对暗)。这个链接将出现在博客的每个页面上

如果我没有使用CodeIgniter,我会创建一个带有参数的链接(例如“index.php?inversed=true”),并在我的控制器中检测是否设置了$\u GET['inversed'],设置一个$\u会话变量。设置$\u会话时,将更改链接并添加额外的CSS文件。链接的新href类似于“index.php?inversed=false”,并且$\u会话变量将被取消设置。它将在站点范围内工作,而不考虑URI的其余部分

我曾尝试在CodeIgniter中使用uri_segment函数,但因为这需要在整个站点中使用,所以我的uri会发生变化(有时只是“index.php/controller/function”,有时是“index.php/controller/function/para1/para2/para3”)。因此,我不能只创建我的链接:[href=“$\u SESSION['REQUEST\u URI'].”“/inversed”],然后检测该URI段是否存在,因为我不知道该段“inversed”将是哪个数字。此外,如果用户在同一页面上并单击链接两次,则URI会不断地一次又一次地添加“/inversed”

我制作了一个模拟表单,这样就可以使用$\u POST数组,但我知道这不是一个好的做法


有什么建议吗?

让链接按照您的描述通过POST提交表单,然后设置会话变量,然后重定向到引用页面(HTTP\u REFERER)。您可以执行类似于关闭此选项的操作。

HTTP\u REFERER不是好的解决方案,因为引用是由浏览器发送的,可以禁用。