会员登入、会员专属网页、会员修改私人资料,怎么写?(#1 观念篇)
http://www.dotblogs.com.tw/mis2000lab/archive/2008/08/27/5209.aspx
会员制,的确是每一个网站都需要的「基本功能」。写法也很简单。
有些网页,必须是会员才能看得到。一般参观者,看不见内容,必须先通过账号、密码的检查......
这个问题,是我在各大讨论区最常遇见的问题。
不是我藏私、不想回答。而是相关的步骤不好解释清楚。请看本书 16.2.6节
初学者(尤其是没接触过ASP/PHP/JSP的人,直接学ASP.NET),可能更头大。
要完成这功能,有些步骤:
第一,要会写简单的ADO.NET程序(以ASP.NET而言)。要有能力自己写程序,存取数据库。
第二,了解 Application / Session。(这就是一个大议题,但这些东西是网页通用的,ASP/PHP/JSP都有!)
这两个部份,要讲清楚。我的天!可以写一本书的两三章。
偏偏在ASP.NET 2.0以后,因为新花样太多了,写新的功能都写不完,所以这两大部分在市面上的书就比较少见。
很多书的作者,都以「介绍新东西」为主。预设的读者是「从ASP升级上来的」、「有经验的人」。
ASP.NET 2.0起,新增加的Login控件,是很好用。但用一阵子以后,想要扩充就会有点棘手。(毕竟不是自己写的,是用现成的)
传统 Session、搭配自己规划的会员资料表,因为是自己打造的,其实很好用。
然而,第一次写网页程序,就是从ASP.NET 2.0或3.5版开始的人,如果市面上的中文书都不讲这些了(Session/Application/Cookie)。那你要怎么办?
有些初学者就以为:写书的作者们藏私,不愿公开。......但,这真的是不得已!
广告一下,因此我的新书「刻意」保留这一部份,因为我相信很多ASP.NET的初学者,没学过这一部份。....
ASP.NET案例精编(清华大学出版社 / 作者MIS2000Lab)
http://www.china-pub.com/46063
2009/5/15上市
市场价 :¥59.80 RMB(人民幣)

首先,ADO.NET。就是连结数据库的四大步骤。我已经发表过几篇文章了,各位可以参考一下:
- 初探ADO.NET #1,程序与数据库互动的四大步骤
- DataReader的标准范例 for ASP.NET 2.0 / 3.5
- 自己动手写的版本 ---- 网站的 Master程序 (DataReader)
- 自己动手写的版本 ---- 网站的 Detail程序 (DataReader)
接下来,Application与Session,很难三言两语讲清楚。请看本书 16.2.6节
一定要图文并茂,初学者才会了解「Global.asax设定档」、「Application是给整个网站共享、Session会锁定单一浏览器」,然后我们再来介绍----会员登入、会员专属网页这些范例,读者才会清楚。
不是我不讲,是三言两语讲不完啊!一定要现场Demo,或是用几个范例玩一下,才会枉然大悟!
====================================================
说穿了,很简单。
当一个使用者登入时,我们检查他的账号、密码。
ADO.NET捞会员数据库,比对账号密码是否正确,请看本书14.1节。
以下是伪码,仅供参考:
Dim Conn As SqlConnection("连结数据库的联机字符串")
Dim dr As SqlDataReader.....
Dim cmd as SqlCommand("Select* from 会员数据库 where 账号 ="& ....,Conn)
dr = cmd.ExecuteReader()
IF dr.HasRow()Then
Session("OK")= "OK" '--注:通过账号与密码的检查,取得一个钥匙(Session)
Else
Response.ReDirect("会员登入的网页.aspx") '--注:没通过,滚回去
End IF
而每一个「会员专属的网页」,在程序的第一行,只要写上:
IF Session("OK")<> "OK" Then
Response.End '--批注,程序中断!
End IF
很简单,对吧!Session的部份 与 本文的完整范例,请看本书 16.2.6节。
但其中的观念,要从头来啊!不然的话,我程序代码给你,你也执行不起来、改不动。
透过 Session来作,这是一个老方法。ASP/ASP.NET/PHP/JSP的作法都一样,共通性很强。
因为Application / Session是网页程序设计的一个标准作法。
谁说老东西不好用呢? 老鞋子好穿,好朋友值得信赖,不是吗?
当然,您要采用ASP.NET提供的 全新的Login控件来做,也行得通。
======================================================
[习题]会员登入、会员专属网页、会员修改私人资料,怎么写?(#2 范例篇)
http://www.dotblogs.com.tw/mis2000lab/archive/2008/12/02/member_control_login_1202.aspx
因为文章太长,又有很多图片。请您到上面网址浏览本文。谢谢。
======================================================
我知道这篇文章的下场是什么?
初学者会说:「很感谢你的介绍,但我还是不懂」
或是说:「能直接给我完整的程序代码吗?我要C#的,不要VB的喔?你能帮我改写吗?」
我....我.....Orz............
还是从头学起吧,学问无快捷方式!
最后,广告一下我的新书.....书本的优点,就是图文并茂、篇幅够长,可以讲得详细!
上面我提到的东西,我保证原汁原味讲清楚,范例通通有!
ASP.NET案例精编(清华大学出版社 / 作者MIS2000Lab)
http://www.china-pub.com/46063
2009/5/15上市
市场价 :¥59.80 RMB(人民幣)

上面的范例,还可以修改成----
- 只有会员才能下载某些档案。
- 只有会员才能修改自己资料。
- 只有会员,才能留言。
- 会员忘记密码,如何Mail给他?
...................................只要把基础学好,要便出几种花样,都随你了~
相关文章可以参考:
======================================================
[习题]会员登入、会员专属网页、会员修改私人资料,怎么写?(#2 范例篇)
http://www.dotblogs.com.tw/mis2000lab/archive/2008/12/02/member_control_login_1202.aspx
因为文章太长,又有很多图片。请您到上面网址浏览本文。谢谢。
======================================================
....................................................................................................寄信给我 mis2000lab (at)雅虎.com.台湾 ........
ASP.NET案例精编(清华大学出版社 / 作者MIS2000Lab)
http://www.china-pub.com/46063
2009/5/15上市
市场价 :¥59.80 RMB(人民幣)
浙公网安备 33010602011771号