PHP教學 登入系統超簡易版

先預備一個HTML FORM:

<html>
<head>
<title>Johnny's ComputerNotes</title>
</head>
<body>
<form action="test.php" method="POST">
<p align="center">
Username:<input type="text" name="username">
<br/>
Password:<input type="password" name="password">
<br/>
<input type="submit" name="login"  value="Login">
</p>
</form>
</body>
</html>

Johnny's ComputerNotes
Username:
Password:



另外 預備一個php檔(存儲時存作test.php就可以了)
程式碼如下:

<?php
$username = "peter";
$password = "12345";

if ($_POST['username'] == $username && $_POST['password'] == $password ) {
echo "Login Sucessfully.";
} else {
echo "Login Failed.";
}
?>

以上是一個超超超超級簡單的登入系統腳本...請勿當這個程式碼作閣下網頁的登入系統..
因為有很多漏洞的...

我將作簡要的解釋:
HTML FORM:
在HTML FORM內,FORM的屬性ACTION被設為test.php,就是HTML FORM內的資料要存到的地方,當HTML FORM被送出時,便會呼叫test2.php,並把表單內容一併傳到test2.php進行處理。而FORM的屬性METHOD則被設為POST,METHOD主要有2個屬性選擇,一是GET,另一是POST。GET方法傳送表單內容,會在網址看見表單內客,例如http://XXX.com/get?username=%peter%~!@#$%^&*(只是例子而已,不要太認真),如果是傳送較為隱密資料則不建議使用,而應改為POST方法,但GET方法的好處是使用者可以把那個網頁SAVE下來作書籤用途。(你往後太多數都會用到POST方法為主)POST方法就是在網站後端傳送的,使用者看不見資訊傳送情況(不計HACKER故意用方法偷取),大多數情況下都較為安全。

PHP程式:
這個程式先設定2個變數,一是username,另一個是password用來儲存用戶名稱和密碼。
然後使用 if 判斷式判斷如果表單傳送過來的username(就是使用填入的用戶名稱),亦即是$_POST['username'],這個稍後再說,你只要暫時知道它是代表表單傳送過來的username就可以了。就是說使用 if 判斷式判斷如果表單傳送過來的username 是等同於 早前預先設定的username變數的值(即是peter)就 echo() (就是輸出的意思),輸出Login Sucessfully.的字句,否則,輸出Login Failed.的字句。

剛才說了我會再介紹$_POST['username']的,現在就說:
$_POST['']是一個全域變數superglobal (不要被這個字嚇暈了..慢慢來..)
說穿了就是說,它是一個任何地方都可以存取的變數罷了,無論在「咸」數以內呼叫他或是在「咸」數以外呼叫它也可以。
與其要說它是一個變數,倒不如說它是一個陣列罷了,實情他也是一個陣例=.=
再簡言言之,就是$_POST是儲存了表單以POST傳送的內客罷了,就是那些HTML FORM入面的username和password欄位的值,還有那個submit按鈕的值吧~~~
所以$_POST['']是一個陣列,分別載著這些資料,而$_POST['username']就是指定$_POST陣列中名叫username的key(鍵)的值罷了。

echo() 這個也簡單介紹一下吧..
在例子中,大家都應該知道是事出的意思了..但值得一提就是echo()不是一個「咸」數而是PHP語言結構的一部分,這個不要搞錯...它的功能其實跟print()沒兩樣的(也是php語言結構的一部分),雖然有人說echo()會比較快,但如果你不是作大型開發,也不用太介意吧...我想= =..

好了..這個簡單的登入系統就完成了。
再進一步,要看看一個較像樣,用到database 存儲用戶密碼的 PHP登入系統MySQL版

留言

這個網誌中的熱門文章

HTML教學 - 文字位置(置左﹑置中﹑置右)

HTML教學 - 建立超連結