Ну, это может быть потому, что redirect()
fn выходит из после выполнения перенаправления (что вам следует делать, когда вы делаете перенаправление, чтобы остановить дальнейшее выполнение кода во время ожидания перенаправления браузера).
/ система / хелперы / url_helper.php:
/**
* Header Redirect
*
* Header redirect in two flavors
* For very fine grained control over headers, you could use the Output
* Library's set_header() function.
*
* @access public
* @param string the URL
* @param string the method: location or redirect
* @return string
*/
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; <===<<< here is the exit
}
}
Единственный способ обойти это - устранить exit;
после вызова перенаправления.
Ссылка: http://codeigniter.com/user_guide/helpers/url_helper.html