<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>danforys.com &#187; browsers</title>
	<atom:link href="http://www.danforys.com/category/browsers/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.danforys.com</link>
	<description>Dan is a web developer in London. He is interested in all things Internet, Linux and Mac.</description>
	<pubDate>Wed, 06 Aug 2008 15:28:03 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Unsetting http headers in PHP</title>
		<link>http://www.danforys.com/2008/08/06/unsetting-http-headers-in-php/</link>
		<comments>http://www.danforys.com/2008/08/06/unsetting-http-headers-in-php/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 15:28:03 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
		
		<category><![CDATA[browsers]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[header]]></category>

		<category><![CDATA[ie7]]></category>

		<guid isPermaLink="false">http://www.danforys.com/?p=40</guid>
		<description><![CDATA[I just came across a subtle issue affecting Internet Explorer users (well, fancy that!) and HTTPS connections.
One of my clients has a site that downloads a series of results as a CSV file, which they open in Excel. Unfortunately, Internet Explorer was refusing to download the file, and was presenting an error message reading &#8220;Internet [...]]]></description>
			<content:encoded><![CDATA[<p>I just came across a subtle issue affecting Internet Explorer users (well, fancy that!) and HTTPS connections.</p>
<p>One of my clients has a site that downloads a series of results as a CSV file, which they open in Excel. Unfortunately, Internet Explorer was refusing to download the file, and was presenting an error message reading &#8220;Internet Explorer was not able to open this Internet site. The requested site is either unavailable or cannot be found.&#8221;</p>
<p>To add to my confusion, this was happening on the live server (PHP4), but not on my dev server (PHP5) <em>which both use the same code</em>.</p>
<p>In the end, I happened upon a Microsoft Knowledge Base article that <a href="http://support.microsoft.com/kb/316431" onclick="javascript:pageTracker._trackPageview ('/outbound/support.microsoft.com');">explained the problem</a>. Basically, IE obeys any &#8220;no-cache&#8221; headers you send to the browser. Without caching the file, Office applications cannot open the file when served over HTTPS.</p>
<p>How to solve the issue? Remove the cache header(s) - but how?</p>
<p>The <a href="http://uk2.php.net/manual/en/function.header.php" onclick="javascript:pageTracker._trackPageview ('/outbound/uk2.php.net');">PHP manual</a> doesn&#8217;t make it entirely clear, and I found the solution by accident. To remove a header, use the same syntax as for setting a header, but only include a space after the colon.</p>
<p>For example, for the &#8220;Pragma&#8221; header:</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="">'pragma: '</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p><strong>Note:</strong> You must include the space after the &#8220;:&#8221; or the header will not be unset.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danforys.com/2008/08/06/unsetting-http-headers-in-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Intermittent 1px gap in Firefox 3</title>
		<link>http://www.danforys.com/2008/07/30/intermittent-1px-gap-in-firefox-3/</link>
		<comments>http://www.danforys.com/2008/07/30/intermittent-1px-gap-in-firefox-3/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 12:36:56 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[browsers]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://www.danforys.com/?p=33</guid>
		<description><![CDATA[My work has just pushed out an update, upgrading our users to Firefox 3. Naturally, we&#8217;ve been busy looking through our internally produced sites to check all is fine in the new version.
In 99% of cases, all our sites look the same in Firefox 3, apart from one notable exception. In this one case, there [...]]]></description>
			<content:encoded><![CDATA[<p>My work has just pushed out an update, upgrading our users to Firefox 3. Naturally, we&#8217;ve been busy looking through our internally produced sites to check all is fine in the new version.</p>
<p>In 99% of cases, all our sites look the same in Firefox 3, apart from one notable exception. In this one case, there is a 1px gap between the left-hand margin (which is centred using &#8220;margin-left: auto&#8221;) and the header image. Being the perfectionists we are, we don&#8217;t want a 1px white gap in our nice header.</p>
<p>Oddly, this 1px gap would come and go as the browser window is horizontally resized. This behaviour set alarm bells ringing that it&#8217;s some kind of rounding error in the &#8220;auto&#8221; positioning vs the exact pixel dimensions of our centred container.</p>
<p>After a bit of searching, we found an entry in <a href="http://ejohn.org/blog/sub-pixel-problems-in-css/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/ejohn.org');">John Resig&#8217;s blog</a> (of <a href="http://jquery.com/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/jquery.com');">JQuery</a> fame), where he has stumbled upon the issue and developed a test case for the main browsers. Turns out that fixing it is a challenge, as all the browsers round the numbers differently. Problem is, there&#8217;s no standard for how the browsers should round the pixels, so fixing it in one browser will almost certainly break it in another.</p>
<p>Ho hum, here&#8217;s hoping for a future standard.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danforys.com/2008/07/30/intermittent-1px-gap-in-firefox-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>HTTP Authentication in PHP</title>
		<link>http://www.danforys.com/2007/06/12/http-authentication-in-php/</link>
		<comments>http://www.danforys.com/2007/06/12/http-authentication-in-php/#comments</comments>
		<pubDate>Tue, 12 Jun 2007 14:08:45 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
		
		<category><![CDATA[browsers]]></category>

		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.danforys.com/2007/06/12/http-authentication-in-php/</guid>
		<description><![CDATA[I&#8217;ve just discovered, totally by accident, how to get HTTP Authentication (when the browser pops up a dialog asking for the username and password - usually set with a .htaccess file) values within PHP. Previously, I&#8217;d just assumed that the authentication was a &#8220;black box&#8221; and I was unable to use it within my scripts. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just discovered, totally by accident, how to get <a href="http://en.wikipedia.org/wiki/Basic_authentication_scheme" onclick="javascript:pageTracker._trackPageview ('/outbound/en.wikipedia.org');">HTTP Authentication</a> (when the browser pops up a dialog asking for the username and password - usually set with a .htaccess file) values within PHP. Previously, I&#8217;d just assumed that the authentication was a &#8220;black box&#8221; and I was unable to use it within my scripts. I had done some experimentation to see if any of the information was present in the _POST or _COOKIE arrays to no avail.</p>
<p><span id="more-5"></span>At work, we were using some software which, somewhat curiously, seemed to automatically log users in without them supplying the correct credentials. After much digging, inserting debug messages and experimentation, I found that PHP had the authentication values in the superglobal $_REQUEST array. The values you can use are as follows:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Superglobal showing the username supplied</span>
<span style="color: #990000;">print</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="">'PHP_AUTH_USER'</span><span style="color: #009900;">&#93;</span>;
&nbsp;
<span style="color: #666666; font-style: italic;">// Superglobal showing the password</span>
<span style="color: #990000;">print</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="">'PHP_AUTH_PW'</span><span style="color: #009900;">&#93;</span>;
&nbsp;
<span style="color: #666666; font-style: italic;">// Authentication type (Basic or digest in PHP5)</span>
<span style="color: #990000;">print</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="">'AUTH_TYPE'</span><span style="color: #009900;">&#93;</span>;</pre></td></tr></table></div>

<p>This is immensely useful for me, because it opens all sorts of possibilities for single sign-on style systems. It also means I can work with non PHP files, without having to authenticate twice or rely on PHP sessions alone.</p>
<p>Of course, perhaps I should have looked at the <a href="http://uk.php.net/manual/en/features.http-auth.php" onclick="javascript:pageTracker._trackPageview ('/outbound/uk.php.net');">PHP manual on HTTP authentication</a> first! <img src='http://www.danforys.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.danforys.com/2007/06/12/http-authentication-in-php/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
