php header functie en IE

Deze week kwam ik een raar probleem tegen. Voor een klant waar ik al een paar jaar geleden een oplossing voor had geschreven moest ik dat overzetten op een nieuwe server. Nieuwe versie van Debian erop, laatste versie van PHP via apt-get, werkt allemaal prima. Echter…. in bepaalde gevallen blijkt de header functie niet goed te werken, ook niet zoals verwacht in de omschrijvingen zoals je die op php.net en bugs.php.net kunt terug vinden.

Wat is het geval. Tegenwoordig lijkt het nodig te zijn dat je bij een location header ook een replace en http_response_code moet meegeven. Officieel is het nog steeds een optie maar het wordt wel aangeraden.

void header ( string $string [, bool $replace = true [, int $http_response_code ]] )

Bij alle moderne browsers werkt een location header prima in mijn specifieke geval (met een aantal parameters). Het is getest in Firefox, Opera, Safari en nog wat exoten. IE 8 wil er echter niet mee werken. Op de remote server komen er dubbele aanvragen binnen waardoor de werking die we in gedachten hadden blijkbaar gewoon niet kan (dat laatste is wellicht niet helemaal de schuld van de http specs).

De oplossing was eigenlijk heel simpel. Een refresh header printen in html formaat. Nu maar hopen dat ze het bij php oplossen want een mix van php en html is erg vies.

Tagged: ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: