<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[PHP利用Header函数和PHP_AUTH_USER做用户验证]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Mon, 21 Feb 2011 08:07:31 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	在php中，可以使用Header函数做一些有趣的事情，用户验证就是其中一个很有意思的功能。具体用法： <br/><div class="code">&lt;?php<br/>//判断用户名和密码是否相同<br/>if(!$PHP_AUTH_USER &#124;&#124; !$PHP_AUTH_PW)&#123;<br/>&nbsp;&nbsp;header(&quot;WWW-Authenticate: Basic Realm=&quot;.mb_convert_encoding(&quot;你好&quot;, &quot;GBK&quot;, &quot;UTF-8&quot;));<br/>&nbsp;&nbsp;header(&quot;HTTP/1.0 401 Unauthorized&quot;);<br/>&nbsp;&nbsp;$title = &quot;请与管理员联系！&quot;;<br/>&nbsp;&nbsp;//include(&quot;header.php&quot;);<br/>&nbsp;&nbsp;//输入提示消息<br/>&nbsp;&nbsp;echo &quot; &lt;br&gt; &lt;font color=red&gt;请与管理员联系，获取登录的用户名和密码！ &lt;/font&gt; &lt;br&gt;&quot;;<br/>&nbsp;&nbsp;//include(&quot;footer.php&quot;);<br/>&nbsp;&nbsp;exit;<br/>&#125;<br/>else&#123;<br/>&nbsp;&nbsp;//设置用户登录的用户名和密码！<br/>&nbsp;&nbsp;if($PHP_AUTH_USER != &quot;admin&quot; &amp;&amp; $PHP_AUTH_PW != &quot;123&quot;)&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$title = &quot;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;//include(&quot;header.php&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;Incorrect Login.&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;//include(&quot;footer.php&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;exit;<br/>&nbsp;&nbsp;&#125;<br/>&#125;<br/>echo &quot;登陆成功!&quot;;<br/>?&gt;</div><br/>以上代码是我测试的代码Ok。<br/>来源：http://www.ljf.cn/2008/3/Item23839.html<br/><br/><br/><br/><br/><br/><br/>www-authenticate是一种简单的用户身份认证技术。<br/>很多验证都采用这种验证方式,尤其在嵌入式领域中。<br/>优点:方便<br/>缺点：这种认证方式在传输过程中采用的用户名密码加密方式为BASE-64,其解码过程非常简单,如果被嗅探密码几乎是透明的.<br/><br/>服务器收到请求后，首先会解析发送来的数据中是否包含有：<br/>Authorization: Basic XXXX=这种格式的数据<br/>如果没有这样的header数据<br/>那么服务器会发送HTTP信息头WWW-Authenticate: Basic realm=&quot;&quot;到浏览器<br/>要求浏览器发送合法的用户名和密码到服务端,为了进一步告知浏览器,这个页面需要认证 我们最还还是接着发送一个401错误<br/>Header(&quot;HTTP/1.0 401 Unauthorized&quot;);<br/><br/>用户输入用户名：admin 密码：admin后，浏览器将以下面这种格式将数据发送给服务器端：Authorization: Basic YWRtaW46YWRtaW4=<br/>Authorization: Basic为www-authenticate认证的标准HTTP信息头<br/>YWRtaW46YWRtaW4=是经BASE-64加密后的用户名和密码<br/>经解密后的格式为 admin:admin<br/><br/>这时我们就可以用过PHP的全局变量来使用它们了<br/>$_SERVER[&#039;PHP_AUTH_USER&#039;];<br/>$_SERVER[&#039;PHP_AUTH_PW&#039;];<br/><br/>路由器都是这么做的<br/><textarea name="code" class="php" rows="15" cols="100">
if(!isset($_SERVER[&#039;PHP_AUTH_USER&#039;]) &amp;&amp; !isset($_SERVER[&#039;PHP_AUTH_PW&#039;]))&#123;
&nbsp;&nbsp;&nbsp;&nbsp;Header(&quot;WWW-Authenticate: Basic realm=&#92;&quot;USER LOGIN&#92;&quot;&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;Header(&quot;HTTP/1.0 401 Unauthorized&quot;);
&#125; else &#123;
&nbsp;&nbsp;&nbsp;&nbsp;echo $_SERVER[&#039;PHP_AUTH_USER&#039;];
&nbsp;&nbsp;&nbsp;&nbsp;echo $_SERVER[&#039;PHP_AUTH_PW&#039;];
&#125;
</textarea><br/><br/><br/>来自：http://blog.163.com/hongshaoguoguo@126/blog/static/18046981201322384241640/
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] PHP利用Header函数和PHP_AUTH_USER做用户验证]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>