FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#1 觀念篇)

會員制,的確是每一個網站都需要的「基本功能」。寫法也很簡單。

有些網頁,必須是會員才能看得到。一般參觀者,看不見內容,必須先通過帳號、密碼的檢查......

 

這個問題,是我在各大討論區最常遇見的問題。

不是我藏私、不想回答。而是相關的步驟不好解釋清楚。請看本書 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專題實務(文魁出版)

 

 

首先,ADO.NET。就是連結資料庫的四大步驟。我已經發表過幾篇文章了,各位可以參考一下:

 

接下來,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控制項來做,也行得通。

 

 2008/12/12 我寫了一個範例給大家參考,請看----  [習題]會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#2 範例篇)==================================================== 

 

我知道這篇文章的下場是什麼?

     初學者會說:「很感謝你的介紹,但我還是不懂」

     或是說:「能直接給我完整的程式碼嗎?我要C#的,不要VB的喔?你能幫我改寫嗎?」

 

我....我.....Orz............

還是從頭學起吧,學問無捷徑!

 

 

最後,廣告一下我的新書.....書本的優點,就是圖文並茂、篇幅夠長,可以講得詳細!

上面我提到的東西,我保證原汁原味講清楚,範例通通有!

題名:   ASP.NET專題實務

★衷心推薦(老王賣瓜),初學者能買最好!★

[廣告] 新書上市-- ASP.NET專題實務(文魁出版)

PCHome 24小時購物也能買到,很便宜喔!

本書使用標準的 Visual Studio 2005/2008 進行開發,而精簡版(Express)

ISBN: 978-986-204-238-0 

著者: MIS2000 Lab. 編著

周棟祥博士, 吳進魯

審稿教授:南台科大 吳盛博士

出版者: 文魁資訊 http://www.kingsinfo.com.tw出版時間: 2008.07 
版次: 初版 裝訂: 平裝附光碟片 
分類號: 312.1695 標題: 網頁設計 , 全球資訊網 

 

上面的範例,還可以修改成----

  • 只有會員才能下載某些檔案。
  • 只有會員才能修改自己資料。
  • 只有會員,才能留言。
  • 會員忘記密碼,如何Mail給他?

...................................只要把基礎學好,要便出幾種花樣,都隨你了~

 

相關文章可以參考:

 

 

 

 

今日值班正妹,林志玲

 


 

 

......  寄信給我    mis2000lab (at) 雅虎.com.台灣 ................................................................................................................
ASP.NET專題實務  (文魁出版,VB版 P8187 / C#版P09027

              下集已經出版囉~~~ASP.NET專題實務II:範例應用與4.0新功能

.............................................................................................................. 寄信給我    mis2000lab (at) 雅虎.com.台灣 ........

DotBlogs Tags: ADO.NET Application ASP ASP.NET JSP PHP Session 入門 初學者 會員 會員登入 會員管理 會員權限 網頁程式 權限
posted on 2008/8/27 14:30 1 人收藏 我要推薦 | 閱讀數 : 11276 | 文章分類 [ ASP.NET 2.0/3.5 With VS 2005/2008 給ASP.NET初學者的建議、簡單學習/快速入門 讀者服務&後續補充 ] | 訂閱

Feedback

# re: FAQ---會員登入、會員專屬網頁、會員管理,怎麼寫?

請問一下
你說的那些範例是在書上的哪幾章啊? 2008/10/14 下午 03:26 | asp.net初學者 回覆

# re: FAQ--會員登入、會員專屬網頁、會員管理,怎麼寫?

to asp.net初學者 :
 

不好意思,當初沒寫清楚。

Session的部份,請參考本書 16.2.6節,範例完全一樣。

ADO.NET撈會員資料,比對帳號、密碼,請看本書14.1節。

我也補充在上面文章裡面。  謝謝您的提醒。

2008/10/14 下午 04:16 | mis2000lab 回覆

# re: FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?

只有會員才能下載某些檔案。
只有會員才能修改自己資料。
只有會員,才能留言。
會員忘記密碼,如何Mail給他?
---
老師,我想了很久還是不知該怎麼做咧~我寫了一個填寫商品的資料,編輯也是同一個ui只是命名及資料庫語法不同,但是發現每個會員都知到ProductID的話,每個人都可以編輯...是我哪裡做錯了? 2008/11/25 下午 11:10 | Nick 回覆

# re: FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?

to Nick :
最傳統的用法,就是以 Session來作區別。

這方法雖然傳統,但ASP、PHP、JSP、ASP.NET都可以用。

與其花時間學習ASP.NET的Login控制項,日後要改也難以插手?

不如學一套好用、大家都在用的「傳統方法」。改天轉行,改寫JSP、PHP都還用得上,那不是很好嗎?

最後來一段廣告:本書的第十六章就有相關範例。請看Session的部份。

 

2008/11/26 上午 09:26 | mis2000lab 回覆

# re: FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#1 觀念篇)

請問很多書上教的ASP.NET 2.0 如用VS製作預設都是用MS SQL當資料庫,但實作後卻都因台灣的虛擬主機商須另購買資料庫空間而受限,請問貴書所教的有用ACCESS的嗎?
謝謝 2008/12/18 上午 01:00 | bibi 回覆

# re: FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#1 觀念篇)

to bibi :
關於本書內容,網站第一篇置頂文章,就講得很清楚囉。

本書採用MS SQL 2005作為範例,VS 2005/2008都有附上SQL Server Express版。

實在沒有必要繼續與Access糾纏下去。
----------------------
而且以VS 2005/2008來說,你使用哪一種資料庫的差別,微乎其微。尤其是微軟自己的SQL Server/Access,根本不成問題的。您放心。

如果您要改成Access資料庫,也不成問題。程式修改的幅度也非常小。

我的結論是:寫程式的人,不應該被資料庫(選擇哪一種產品)給困住。
不都是使用SQL指令嗎?
您可以看看 SqlDataSource與AccessDataSource兩者的差異不大,用法幾乎一樣。如果是自己手寫ADO.NET程式,差別也很小。
2008/12/18 下午 01:10 | mis2000 lab 回覆

# re: FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#1 觀念篇)

補充:
我是指用.net內建的安全性設定精靈所建立的角色或帳戶有辦法改成讓會員資料改為存在access嗎?
謝謝
2008/12/18 下午 01:18 | bibi 回覆

# re: FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#1 觀念篇)

謝謝
我想在本機或自架主機的環境使用MSSQL當然比較好,但是你看台灣有哪一家虛擬主機是有提供免費
MSSQL的,這對中小型網站的預算想轉.net都會考慮,所以很多都無法轉為用.net也是這個主因吧,
其他資料繫結都有AccessDatasource,唯獨內建的登入控制項一定要用MSSQL,謝謝 2008/12/18 下午 02:20 | bibi 回覆

# re: FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#1 觀念篇)

to bibi :
您說的沒錯,所以微軟才會推出SQL Server[Express]版,他功能很強,卻有Access易轉移的特性。容量大、限制小,真的比Access好太多了。您可以研究一下。

ASP.NET的程式也可以連接 MySQL啊。資料庫跟程式,本身就是分開、獨立的。

您的問題可以參考這篇文章--

對了,我個人從來不用ASP.NET的MasterPage與Loign控制項的。能自己寫、自己管的功能,我不會用現成的工具,所以對我來說沒有差別。您也可以考慮一下自己寫會員控管,很簡單,以後就不會受限在別人手上了。

2008/12/18 下午 02:27 | mis2000lab 回覆

# re: FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#1 觀念篇)

謝謝,
這就是我的問題癥結所在了,如果自己設計的控管功能也很好用又不難的話,那當然就太好了,不用被微軟綁住,問題不知道安全性夠不夠,所以書上有教完整的會員註冊與角色等的功能嗎?我想很需要這樣的教學吧!
謝謝 2008/12/18 下午 07:55 | bibi 回覆

# re: FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#1 觀念篇)

to bibi :

請參考這篇文章,剛剛發表不久
http://www.dotblogs.com.tw/mis2000lab/archive/2008/12/02/member_control_login_1202.aspx 2008/12/19 上午 08:39 | mis2000lab 回覆

# re: FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#1 觀念篇)

小弟是大大的讀者~
於書中的16-24~16-25頁中提到的會員驗證中有點問題

程式中有三個控制項
textbox1
textbox2
button1

但於連接sql時會顯示textbox1和textbox2未定義,當定義為char時,又會顯示sql中的(接近關鍵字 'and' 之處的語法不正確。)
Dim cmd As New SqlCommand("select email,pwd from tmember where email=" & textbox1 & "and pwd=" & textbox2, Conn)
不知錯誤在那兒
之前都是用dw來寫的,而不是用vb,在使用連接資料庫的方式有點不同.
目前還搞不清 " 這個符號是要放於何處.
我想應蠻多讀者會有這方面的問題,如何於sql中正確的加入二個textbox 2009/2/7 下午 06:48 | jun 回覆

# re: FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#1 觀念篇)

to jun :
1. 您可以直接MAIL跟我聯絡,書上與BLOG最上方,都有相關資料。

2.您的錯誤在於 Textbox1,應該修改為 Textbox1.text才行。

建議您不要跳著看書,直接翻到您有興趣的功能去看。有時會有些細節漏掉。因為這些細節在前面講過多次以後,後面不會再講了。

千萬不要跳著看書喔。 2009/2/7 下午 07:03 | mis2000lab 回覆

# re: FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#1 觀念篇)

換成text後
接近 'pwd' 之處的語法不正確。
描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

例外詳細資訊: System.Data.SqlClient.SqlException: 接近 'pwd' 之處的語法不正確。

原始程式錯誤:


行 16:
行 17:
行 18: dr = cmd.ExecuteReader()
行 19:
行 20: If Not dr.Read() Then

2009/2/7 下午 09:04 | jun 回覆

# re: FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#1 觀念篇)

to jun :

你該不會真的只改TextBox1,卻沒改TextBox2的部分吧?

@_@

請直接MAIL給我,不要在這裡問囉,拜託

建議您不要跳著看書,直接翻到您有興趣的功能去看。有時會有些細節漏掉。因為這些細節在前面講過多次以後,後面不會再講了。

2009/2/7 下午 09:35 | mis2000lab 回覆

# re: FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#1 觀念篇)

都改了,但問題一樣~我沒那麼新,只是1.1後斷了很長一斷時間^^~有問題我會email給大大的~這裡發問確實是有點亂~^^!
感謝大大的回覆^^ 2009/2/7 下午 11:27 | jun 回覆

# re: FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#1 觀念篇)

[ASP.NET專題實務],不管是初學或是看過其它ASP.NET的相關書籍者都算是一樣好書.
雖然有少許的列印錯誤,但周老師都提供了修正和範例程式,的確是很用心!
不知是否文魁的書籍都是如此的好翻閱,這本書是我買過最好翻閱的一本,是本值得珍藏和細細品味的好書!
之前買的基峯,旗標,博碩和最早期買的松岡,都沒有這本書的好翻閱,當然內容也是很豐富的一本! 2009/2/10 上午 03:09 | jun 回覆

# re: FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#1 觀念篇)

謝謝 jun的提醒,

我後續檢查之後,書本上的範例真的有錯誤,我已經改進了。並且把錯誤列在書本勘誤表上面,也修正範例,讓讀者下載。

再一次感謝網友的提醒。感恩。

 

2009/2/11 上午 10:34 | mis2000lab 回覆

# re: FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#1 觀念篇)

那個...
mis2000lab大大..
看了很久您的網站....


我覺得...
這個blog...
異常的亂@@"
不知道是否可以把版面和相關讀者說明&補充重新整理一下!
跳來跳去的(我要看會員登入系統的說明 卻亂了)..

另外
小弟我前幾天..
才買VB版的書
怎麼文魁那邊..
都沒有更新(出蠻久了說).... 2009/5/11 上午 05:18 | 讀者 回覆

# re: FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#1 觀念篇)

to 讀者 :
所以我希望跟「文章」沒有直接關聯的,不要在版面上回應。畢竟我提供個人Mail與各位討論了。(但積習難改,我改變不了別人)
至於您提的書本更新,我不懂您的意思。更新的部份,我放在「勘誤表」裡面,blog右邊有超連結可以找到。
2009/5/11 上午 08:56 | mis2000lab 回覆

# re: FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#1 觀念篇)

請問一下,如果我用的是asp.net 2.0內建的會員機制,那我要如何寫語法去刪除帳號? 2009/7/3 下午 01:07 | killua 回覆

# re: FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#1 觀念篇)

to killua :
您可以參閱 Member and Role API,可以 "自己寫程式" 來控制 Login控制項這些東西。

聖殿祭司(奚江華老師)的書裡面,有提到這一部份。您可以參考看看。

2009/7/3 下午 02:59 | mis2000lab 回覆

回應
標題:
姓名:
電子郵件: (將不會被顯示)
個人網頁:
回應:
登入後使用進階評論
Please add 5 and 3 and type the answer here: