php會員登入註冊問題

假設:還沒有資料庫,而要做出六個網頁,而關鍵字是:form、seeion、headr
1、login.php登入及連結註冊新會員網頁memberAdd.php。
2、memberAdd.php:新會員註冊填寫基本資料。
3、membrAddSuccess.php:顯示新會員註冊成功及會員所填寫資料。
4、loginError.php:登入時使用者名稱或(及)密碼輸入錯誤的提示網頁,並導向login.php。
5、memeber.php:登入時輸入正確做用者名稱及密碼,進入的會員主頁。並有登出功能。
6、處理登出程式。

我找了好多網上資料都找不到相關的,網上的都是有資料庫所做的相關資訊,卻沒有上面沒資料庫的相關。

有人可以告訴我哪裡有相關的資料呢?
還是要怎做呢?
很煩呢!

回答 (5)

2013-03-25 1:05 am
✔ 最佳答案

文本存檔。

PHP可以檢查檔案存在或不存在。藉此檢查帳號。
PHP可以讀取檔案內容。藉此檢查密碼正確性質。
PHP可以利用建立檔案的方式,來檢查是否登入。

檔案名稱為IP,檢查 登入資料夾是否存在IP可以判斷登入與否。
不存在,尚未登入。

登出,清除文本資料。

如果說 "文件.txt" 存檔不安全?
那麼... 每個服務器都有 .htaccess ,
封鎖 由HTTP連線的存取全,這樣就不會被竊取資料了。

2013-03-24 17:08:46 補充:
文本資料基本上已經可以當成資料庫使用,

資料表 是 "資料夾"
列名 是 "檔案名稱"
內容 是 "檔案內容"

以此類推,要怎麼使用 資料夾/名稱/內容,自己決定。
至於使用方法的 "函式" 自己查!

建立檔案 就是 fopen ,屬性 選擇會創立檔案的即可。
刪除檔案是 unlink 。
讀取檔案可以用 fread 。
檢查存在之類的 file_exists 。

2013-03-24 17:09:48 補充:
如果覺得麻煩!

那麼,請改用 XML文件 方式存檔。
XML可能更好! (我沒用過,但我知道。)



2013-03-25 17:02:46 補充:
樓上 "倒數第三行" ,

沒安全性可言,是指 ? 密碼未加密 ?

順帶一提,這種檔案存檔方式可以說是蠻安全。
比較不會 "資料庫隱碼" 的問題。

.htaccess檔案 ,打入:

Order allow,deny
Deny from all

這樣就會阻止 所有HTTP連線,但是PHP 依舊可以用相對路徑的方式開啟。
資料100%不會外洩。除非被注入木馬,否則很難得到 會員帳密,
可不是說 "資料庫注入程式" 駭進去就夠. 文件存檔方式比較不會被 破解。

2013-03-25 17:11:48 補充:
如果真要駭?!

那麼:

請發問者 不要寫出 "洞" 來,如 Eval 函式裡包刮 POST或GET來的值。

或是可以給使用者隨意變動資料的"洞",甚至是 "檔案上傳" 的功能,

全面封殺,檔案副檔名,且 上傳檔案 更改檔名,去除 原檔名方式,

避免被駭客留下 木馬。


若要竊個資,如果是我,我9成 直接掃後台檔案,查到 TXT文件,
除非有 ".htaccess" 功能的服務器,否則這種方式很容易資料外洩。


這種文件存檔/讀取/更改 "很慢" 。三思。
2013-03-26 10:08 am
我都說了是內部測試,沒有洞的問題;
無需向他抱歉,該抱歉的也是我!

2013-03-27 18:46:34 補充:
丫志說的對,SQL前天才教;而這個上上禮拜就要我們搞了;
其實如:邪神說的,或許我們老師考慮的就是「洞』的問題,所以才讓我們做本地測試而已。
2013-03-25 8:04 pm
smile邪神 大回答得很清楚!如果沒有資料庫,那就是用檔案來處理了。
給你一些參考資料
http://www.php.net/manual/en/function.file.php
這個是PHP官網的資料,英文的,如果像我一樣,對英文沒轍,可以直接捲到下面看例子,通常下面的例子都蠻完整的!

http://spcedu.tkblind.tku.edu.tw/~peterpan/php4/group.php-17.htm
這個是中文的函數庫,只可惜他只有到PHP4,PHP5新的函數就要看官網了。

2013-03-25 12:05:35 補充:
http://blog.johnsonlu.org/php%E9%96%8B%E5%95%9F%E5%8F%8A%E5%AF%AB%E5%85%A5%E6%AA%94%E6%A1%88/
這是我臨時找的檔案讀取範例,可以試試看

2013-03-25 12:34:29 補充:
簡單來說,你的六個網頁都離不開那三個關鍵字
1.登入,就是查找檔案內容某一列有沒有使用者輸入的帳密,如果有就註冊一個session,為了要進到下一頁,判斷有否登入成功用的,而連結註冊網頁,就用header。
2. 新會員註冊,只是給個FORM(表單)就是排幾個輸入框幾個標籤,讓使用者可以輸入他的基本資料,帳號的部分,就要再找一下有沒有重複,輸入完成後,就直接寫入檔案。
3.就只是把它輸入的東西,秀出來,有兩種方法,第一個就是用表單的POST,第二個就是再從檔案把當筆資料取出來秀給他看。

2013-03-25 12:34:43 補充:
4.這個網頁就是判斷登入成功時註冊的SESSION有沒有存在,如果沒存在就是沒登入成功,有存在就是成功,沒存在的話,就ECHO一個訊息告訴他錯誤,並用header導回去登入的頁面。
5.這為主頁面,也就是登入成功,跳進來的頁面,設計一個標籤寫登出
6.使用者按了登出後,就直接註銷掉你註冊的session,就是刪掉那個SESSION,然後告訴她登出成功,跳回去login.php的頁面

2013-03-25 12:35:00 補充:
其實整體來說就是取出資料,存入資料,查找資料
你可能要有一個txt檔案,
檔案就是存入使用者帳密,和使用者的基本資料
你可以用個特殊的符號來區隔開來
比如說你的txt檔案裡面的資料是:
admin;1234;小魚;女;0912345678;台灣省
等等之類的,我用";"區隔開資料,順序就是帳號,密碼,姓名,性別,手機,地址
然後你可以用explode這個函數,切割開這個字串。
當然,這樣子寫是完全沒安全性可言的!不過可以一樣可以完成。
如果要安全性問題,可以研究一下MD5()這個函數,我是沒在檔案上用過,不過你可以試試看

2013-03-25 19:16:02 補充:
恩恩,謝謝smile邪神大大的指教!
我學得還不夠清楚,所以可能會有說錯的地方,或是我誤解的地方!
確實,我原先是認為文件比較有安全性的問題,看了你的回應,實在感到非常抱歉!用了錯誤的觀念回應!
謝謝你!我會改進!
2013-03-25 6:40 pm
form --> 表單

session --> 伺服器端接收到的資料暫存

header --> 資料處理後,正確與否轉向各自顯示(提示)頁面

2013-03-27 08:01:28 補充:
他們老師只是要他們有一個概念而已,還沒做到資料庫部分,只是針對程式流程運作的先前部分,先把表單畫面弄出來,再來就是檢查表單,資料無誤就存取然後引導致登入頁,登入無誤後,用 session 紀錄會員 ID值,登出時就釋放 session 會員 ID值

2013-03-27 10:46:18 補充:
也許眼下教的章節, 資料庫還沒教,或者是有教過,但不是這章節的重點,只是要加深學生們的思考邏輯,因為樓主提出的那些,對有會員制度的網站運作流程,基本是足夠了!!
2013-03-24 10:22 pm
我覺得你好像有點誤解了什麼??
不知道你知道甚麼事動態網頁的定義甚麼??
還有頁面Client端 跟 Sever端 還有資料庫DB
的關聯是怎樣?
我覺得你先搞清楚這點再來討論你的問題比較好

2013-03-26 20:51:42 補充:
我只是搞不懂?有資料庫不用要用檔案作存取???
是因為不懂資料庫語法??
然後用檔案存取的是每次要取用又得載入檔案,然後一筆一筆的找???
如果幾十萬筆資料,然不成要要慢慢找???
既然你要寫php 我認為最先就是學SQL看你學哪種都可
請不要本末倒置

2013-03-27 09:45:41 補充:
這樣說害我都說不知道要說啥了,或許我以前老師教法不正統吧
,他要教PHP之前也是先教我們怎麼先建立MYSQL 還教SQL語法
才教PHP的


收錄日期: 2021-04-11 19:42:21
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20130324000010KK02088

檢視 Wayback Machine 備份