wp_redirect, WP2.5.1 and pluggable.php
-
Kinda resolved – but needed a hack to pluggable.php
Since upgrading to 2.5.1 from various versions I’ve had problems using wp_redirect and exec-php in pages. (I was evaluating the user ID and level to allow or disallow viewing pages; and redirecting on failure or success)
I was getting the dreaded
PHP Warning: Cannot modify header information – headers already sent by (output started at <foo>
I threw up a clean dev box with 2.5.1 and reproduced it with no other plugins and the default theme.
Eventually I tracked this down to a bug that was logged a while back; the fix isn’t in 2.5.1
Here’s the bug: https://trac.www.ads-software.com/ticket/2860
Here’s my fix to wp-includes/pluggable.php – starting around line 690.
/** remove header injection piece ** ref https://trac.www.ads-software.com/ticket/2860 ** evilzenscientist - 28 May 2008 if ( $is_IIS ) { header("Refresh: 0;url=$location"); } else { if ( php_sapi_name() != 'cgi-fcgi' ) status_header($status); // This causes problems on IIS and some FastCGI setups header("Location: $location"); } } endif; ** */ /** added new header injection and refresh ** https://trac.www.ads-software.com/ticket/2860 ** evilzenscientist - 28 May 2008 */ if( !headers_sent() ) { if ($is_IIS) header("Refresh: 0;url=$location"); else header("Location: $location"); } else echo "<meta http-equiv='refresh' content='0;url=$location' />"; } endif; /** end of change */
Usual disclaimers – may help someone else with similar issues; specifically with embedded php and wp_redirect.
- The topic ‘wp_redirect, WP2.5.1 and pluggable.php’ is closed to new replies.