感觉helper的redirect有问题
上次那个要登陆两次的问题,我后来直接用 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丢失 不太清楚什么原因。看了下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;
| }
|} 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();时出现错,不知道是那不对? 回复 3# wgxdx
文件编码的问题吧,PHP的文件不要存带有bom的utf-8,OK?
页:
[1]