【问题标题】:CodeIgniter set_flashdata method echo content to browserCodeIgniter set_flashdata 方法将内容回显到浏览器
【发布时间】:2014-01-13 20:33:04
【问题描述】:

这是一个很奇怪的问题。
我有一个正在运行的网站,对我或我认识的任何人都没有问题。
但是我的一个客户告诉我他有一个奇怪的代码,所以我问他要一个屏幕截图,这里是

发生这种情况的代码

$this->session->set_flashdata(array('success_msg' =>'Some message'));
redirect(base_url());

重定向没有发生,用户将其本地 cookie 的内容像图像中的内容一样输入浏览器,他使用 Firefox 和 windows 作为操作系统。

我无法重现此问题,他告诉我每次访问此页面时都会发生这种情况!

有什么想法吗?

【问题讨论】:

  • 您的客户是否使用与您不同的语言?语言环境? ETC;对于他们的浏览器等;什么浏览器,以及更改了set_flashdata(),他们仍然遇到问题。最后一个,您的会话中有多少数据? Cookies can only hold 4KB 的数据(如果您使用加密,这会减小您的大小!)
  • @Jakub 不,他使用与我相同的语言,并且 cookie 保存的数据少于 1kb,这同样适用于其他所有人,我将检查是否删除 set_flashdata() 选项。跨度>
  • 看起来像是试图将其解析为图像?标题正确吗?
  • @tomexsans 它显示了这条消息并且没有重定向到任何地方,即使我在重定向和设置闪存数据之间有一个代码,将记录插入数据库,这段代码再次完美运行,这让我疯了,尽管我在许多计算机上测试过相同的页面,但我从未见过这个问题!

标签: php codeigniter


【解决方案1】:

如上设置Session Flash数据

$this->session->set_flashdata('updateprofile','Your Profile has been Updated');

在视图中打印此数据使用

<?php if($this->session->flashdata('updateprofile')): echo $this->session->flashdata('updateprofile'); endif;?>

【讨论】:

  • 不是这种情况,我已经这样做了
  • 不能说第一次听说这个
【解决方案2】:

你有一个语法错误:错过)
在这种情况下不需要使用数组
尝试改变这一点:

$this->session->set_flashdata(array('success_msg' =>'Some message');

到这里

$this->session->set_flashdata('success_msg','Some message');

确保启用错误报告,或尝试将以下内容放在 index.php 的顶部。

error_reporting(E_ALL | E_WARNING | E_NOTICE);
ini_set('display_errors', TRUE);

【讨论】:

  • 抱歉不是这样,我忘了复制这个),正如我所说,它适用于我和我的朋友,但不适用于这个客户
  • 双箭头运算符只在数组声明中有效,去掉数组位会导致另一个语法错误
  • 没有错误,它只是显示 cookie 内容,就好像我做了 echo $this->session->all_userdata ();
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-07
  • 1970-01-01
  • 2015-09-15
  • 2020-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多