[eluser]glassyflower[/eluser]
[quote author="aaronadams" date="1334956411"][quote author="skunkbad" date="1334891961"]I know. I should have never recommended using real PHP. That could have totally self destructed your application. Maybe could have crashed Apache or fried your server.[/quote]
No need for snark, we're just a couple of developers solving a problem here.
There are plenty of reasons a direct call to header() is a bad idea; for instance, header() takes effect immediately, therefore it would affect error output, which is probably undesirable. And since header() is immediate while Output:

et_header() is deferred, calls to the latter will always supercede calls to the former, regardless of the order in which they're called.
[quote author="skunkbad" date="1334891961"]Try this:
Code:
$this->output->set_header('P3P: CP="This Facebook app does not have a P3P policy."');
$this->output->set_header('Location: ' . current_url());
It worked for me, meaning I saw the headers in Firebug.[/quote]
Indeed, that's another way to deal with it – of course you'd also then need to output the headers and exit. I'm not sure if the Output class has a public methods to output the headers; I'd have to take a look.
[quote author="skunkbad" date="1334891961"]I don't know why using redirect() doesn't work, but it didn't work for me either. It should be noted that using PHP's header function worked just the same, but I know it may be risky.[/quote]
redirect() doesn't work because it's a standalone helper, unrelated to the Output class; and only the Output class is able to output its own headers (not technically true, granted, but directly accessing the $headers property of the Output class from the redirect() helper would be poor practice, and would be prone to break in the future).
The remedy would be for CI to add a redirect() method to the Output class, with the helper remaining a shortcut version; the method would work identically, plus it would output any already-set headers.
To maintain backwards compatibility, Output::redirect() could accept an additional $include_headers parameter, defaulting to TRUE; and the redirect() helper could add the parameter as well, defaulting to FALSE instead. This way we don't break existing apps which rely on this quirk.
Thanks for confirming for me. Much appreciated. Always good to know I'm not going crazy.[/quote]
i think so.thank for share