用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5150|回复: 3
收起左侧

[已解决] 感觉helper的redirect有问题

[复制链接]
发表于 2009-2-16 15:49:49 | 显示全部楼层 |阅读模式
上次那个要登陆两次的问题,我后来直接用 Header( "Location: /admin", TRUE, 302);就不出现了可我发现另一个问题,我有地方有个删除功能,点击后重定向到 redirect('/admin/photos'); 问题就在这,第一次点击删除 会退出系统要求重新登陆(和开始的两次登陆类似,登陆完后再次做任何其他操作都可以,包括再删除都不需要在登陆,而我做第一次删除之前可以做更新等其他操作,说明session确实存在,)第一次点击删除session丢失了!!

后来我发现删除和更新操作不同的地方在于删除用的是helper的redirect,就改为 Header( "Location: /admin/photos", TRUE, 302); 问题解决了。。。
而那个要登陆两次的问题开始也是用的redirect 。。。

按理来说redirect函数就是转化为 Header( "Location: /admin/photos", TRUE, 302); 既然没有改动其他代码 问题就好了, 说明还是 redirect这出的问题,相同代码不同效果,有可能是装载helper的时候有问题,用hook监视controller 间接导致了session丢失
发表于 2009-2-17 14:21:01 | 显示全部楼层
不太清楚什么原因。看了下redirect的代码,应该没问题的。等自己使用时要留意下。
|  if ( ! function_exists('redirect'))
|  {
|      function redirect($uri = '', $method = 'location', $http_response_code = 302)
|      {
|          if ( ! preg_match('#^https?://#i', $uri))
|          {
|              $uri = site_url($uri);
|          }
|         
|          switch($method)        
|          {
|              case 'refresh'  : header("Refresh:0;url=".$uri);
|                  break;
|              default         : header("Location: ".$uri, TRUE, $http_response_code);
|                  break;
|          }           
|          exit;
|      }
|  }
发表于 2010-4-5 22:17:59 | 显示全部楼层
A PHP Error was encountered
Severity: Warning

Message: Cannot modify header information - headers already sent by (output started at F:\xacms-read-only\xacms-read-only\system\helpers\url_helper.php:536)

Filename: helpers/url_helper.php

Line Number: 541
当执行到redirect();时出现错,不知道是那不对?
发表于 2010-4-5 22:42:07 | 显示全部楼层
回复 3# wgxdx


   文件编码的问题吧,PHP的文件不要存带有bom的utf-8,OK?

本版积分规则