<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>&#34;刘华栋&#34;的个人网站 &#187; email登陆</title>
	<atom:link href="http://www.liuhuadong.com/archives/tag/email%e7%99%bb%e9%99%86/feed" rel="self" type="application/rss+xml" />
	<link>http://www.liuhuadong.com</link>
	<description>我的日子依旧很简单，梦想一直没改变</description>
	<lastBuildDate>Thu, 29 Jul 2010 22:36:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>discuz! 6.0 用email地址或用户名和密码登陆论坛</title>
		<link>http://www.liuhuadong.com/archives/104/index.html</link>
		<comments>http://www.liuhuadong.com/archives/104/index.html#comments</comments>
		<pubDate>Fri, 28 Sep 2007 07:20:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP/Mysql]]></category>
		<category><![CDATA[discuz]]></category>
		<category><![CDATA[email登陆]]></category>
		<category><![CDATA[密码验证]]></category>
		<category><![CDATA[论坛]]></category>

		<guid isPermaLink="false">http://www.liuhuadong.com/archives/104/index.html</guid>
		<description><![CDATA[在我心目中，没有什么论坛能与vbb媲美了，但这不能决定我们论坛就必须要用vbb。与vbb相比，discuz论坛还是很有本地特色的，它们的关系就如google与baidu，各有出色之处。我一直关注vbb，因为它的强大，代码结构紧促，但并不高效。discuz解决了这个问题，代码依然强大，利用缓存大大提升了论坛性能。加之discuz开发团队在国内的专注与论坛本身的流行，国内的应用几乎可以完全用discuz取代vbb了。 这几天调试discuz，遇到一个问题。用email和密码登陆，而不是uid或用户名。在discuz官方搜了半天，也没发现解决方案，只好自己动手。仔细研究发现uid其实是一个多余的东西，完全没必要存在于表现层，只不过后台验证密码全部统一到uid上而已。我敢断定，discuz在不久的将来肯定会取消uid的登陆方式，要么不用，要么换成email登陆。废话少说，开始说标题提出问题的解决办法。 discuz!6现有的是用户名登陆，查看discuz的代码后发现，全部登陆都归结于uid的登陆。这样的话我们同样可以用email来检测数据库，以此作为用户名的补充。这时候可能出现email与用户名重复的可能，仔细查看源代码分析就能清楚，其实这无关紧要。例如用户名如果是email地址：a@b.com，email地址也是用户名所用的email：a@b.com，这样登陆的时候无论是用哪一个（用户名还是email）都是一个地址，登陆正常。如果用户名是email地址：aa@bb.com，而注册填的email为另外一个email如：aaa@bbb.com，这样登陆的时候无论用哪个地址登陆都返回正常。其实说白了，这只是一个视觉感受问题，与后台验证没什么关系；我们可能不愿意带有@或点的用户名，如果实在不爽，干脆去修改过滤代码去掉这两个东西就ok了。 言归正传，修改方法：打开根目录下logging.php，约在107行代码为： 把代码：WHERE m.$field=&#8217;$username&#8217; &#34;); 修改为：WHERE m.$field=&#8217;$username&#8217; or m.email=&#8217;$username&#8217;&#34;); 修改完即可，不用其他多余操作。当然，登陆界面可以在用户名旁边加个用email也可以登陆的提示。 ok，但愿这个小动作能为你的论坛的用户增加一些新体验。]]></description>
			<content:encoded><![CDATA[<p>在我心目中，没有什么论坛能与vbb媲美了，但这不能决定我们论坛就必须要用vbb。与vbb相比，discuz论坛还是很有本地特色的，它们的关系就如google与baidu，各有出色之处。我一直关注vbb，因为它的强大，代码结构紧促，但并不高效。discuz解决了这个问题，代码依然强大，利用缓存大大提升了论坛性能。加之discuz开发团队在国内的专注与论坛本身的流行，国内的应用几乎可以完全用discuz取代vbb了。</p>
<p>这几天调试discuz，遇到一个问题。用email和密码登陆，而不是uid或用户名。在discuz官方搜了半天，也没发现解决方案，只好自己动手。仔细研究发现uid其实是一个多余的东西，完全没必要存在于表现层，只不过后台验证密码全部统一到uid上而已。我敢断定，discuz在不久的将来肯定会取消uid的登陆方式，要么不用，要么换成email登陆。废话少说，开始说标题提出问题的解决办法。</p>
<p>discuz!6现有的是用户名登陆，查看discuz的代码后发现，全部登陆都归结于uid的登陆。这样的话我们同样可以用email来检测数据库，以此作为用户名的补充。这时候可能出现email与用户名重复的可能，仔细查看源代码分析就能清楚，其实这无关紧要。例如用户名如果是email地址：a@b.com，email地址也是用户名所用的email：a@b.com，这样登陆的时候无论是用哪一个（用户名还是email）都是一个地址，登陆正常。如果用户名是email地址：aa@bb.com，而注册填的email为另外一个email如：aaa@bbb.com，这样登陆的时候无论用哪个地址登陆都返回正常。其实说白了，这只是一个视觉感受问题，与后台验证没什么关系；我们可能不愿意带有@或点的用户名，如果实在不爽，干脆去修改过滤代码去掉这两个东西就ok了。</p>
<p>言归正传，修改方法：打开根目录下logging.php，约在107行代码为：<br />
把代码：<font color="#339966">WHERE m.$field=&#8217;$username&#8217; &quot;);</font><br />
修改为：<font color="#ff6600">WHERE m.$field=&#8217;$username&#8217; or m.email=&#8217;$username&#8217;&quot;);</font></p>
<p>修改完即可，不用其他多余操作。当然，登陆界面可以在用户名旁边加个用email也可以登陆的提示。</p>
<p>ok，但愿这个小动作能为你的论坛的用户增加一些新体验。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.liuhuadong.com/archives/104/index.html/feed</wfw:commentRss>
		<slash:comments>47</slash:comments>
		</item>
	</channel>
</rss>
