因為全棋 同學的系統需求,雖然會員機制並不難,他一定也很快就學會了,而我還是寫此教學來引導他,幫助他系統擴展的更快,相信他的系統在未來也一定會很有用的! 而這個教學主要是說明session應用在會員機制上 ,而教學的程式碼還是有些地方有沒有考慮的很周詳,安全上還是會有瑕疵,希望大家見諒。
以下為資料表的欄位資料:
以下為會員系統示意圖:
(1) 首頁 - 登入頁面 (index.php)
">
帳號: id" />
密碼: pw" />
register.php ">
申請帳號
(2) php連結MySQL資料庫語法(mysql_connect.inc.php) //資料庫設定 //資料庫位置 $db_server = "localhost ";//資料庫名稱 $db_name = "mydb ";//資料庫管理者帳號 $db_user = "root ";//資料庫管理者密碼 $db_passwd = "1234 ";
//對資料庫連線 if(!@mysql_connect($db_server, $db_user, $db_passwd)) die("無法對資料庫連線");//資料庫連線採UTF8 mysql_query("SET NAMES utf8 ");//選擇資料庫 if(!@mysql_select_db($db_name)) die("無法使用資料庫");?>
(3) 會員ID、PW與MySQL資料庫作認證(connect.php) //連接資料庫 //只要此頁面上有用到連接MySQL就要include它 include("mysql_connect.inc.php"); $id = $_POST['id']; $pw = $_POST['pw'];
//搜尋資料庫資料 $sql = "SELECT * FROM member_table where username = '$id' "; $result = mysql_query($sql); $row = @mysql_fetch_row($result);
//判斷帳號與密碼是否為空白 //以及MySQL資料庫裡是否有這個會員 if($id != null && $pw != null && $row[1] == $id && $row[2] == $pw ) { //將帳號寫入session,方便驗證使用者身份 $_SESSION['username'] = $id; echo '登入成功!'; echo ''; } else { echo '登入失敗!'; echo ''; }?>
(4) 會員登入成功後 頁面 - 此頁面有「新增」、「修改」、「刪除」與「登出」的連結 並且會顯示出所有會員資料(member.php) include("mysql_connect.inc.php");
echo '
登出 ';
//此判斷為判定觀看此頁有沒有權限 //說不定是路人或不相關的使用者 //因此要給予排除 if(
$_SESSION['username'] != null )
{
echo '
新增 ';
echo '
修改 ';
echo '
刪除 ';
//將資料庫裡的所有會員資料顯示在畫面上 $sql = "SELECT * FROM member_table"; $result = mysql_query($sql); while($row = mysql_fetch_row($result)) { echo "$row[0] - 名字(帳號):$row[1], " . "電話:$row[3], 地址:$row[4], 備註:$row[5] "; } }
else
{
echo '您無權限觀看此頁面!';
echo '';
}
?>
(5) 登出 - 洗掉登入使用者之session(logout.php) //將session清空 unset($_SESSION['username']); echo '登出中......'; echo '';?>
(6) 加入(註冊)會員 - 「填寫」會員資料 (register.php)
">
帳號:
id" />
密碼:
pw" />
再一次輸入密碼:
pw2" />
電話:
telephone" />
地址:
address" />
備註:
(7) 加入(註冊)會員 - 「新增」會員資料進MySQL資料庫 (register_finish.php) include("mysql_connect.inc.php"); $id = $_POST['id']; $pw = $_POST['pw']; $pw2 = $_POST['pw2']; $telephone = $_POST['telephone']; $address = $_POST['address']; $other = $_POST['other'];
//判斷帳號密碼是否為空值 //確認密碼輸入的正確性 if($id != null && $pw != null && $pw2 != null && $pw == $pw2 ) { //新增資料進資料庫語法 $sql = "insert into member_table (username, password, telephone, address, other) values ('$id', '$pw', '$telephone', '$address', '$other')"; if(mysql_query($sql) ) { echo '新增成功!'; echo ''; } else { echo '新增失敗!'; echo ''; } } else { echo '您無權限觀看此頁面!'; echo ''; }?>
(8) 修改會員資料 - 「填寫」要修改之會員資料(update.php) include("mysql_connect.inc.php"); if($_SESSION['username'] != null) { //將$_SESSION['username']丟給$id //這樣在下SQL語法時才可以給搜尋的值 $id = $_SESSION['username']; //若以下$id直接用$_SESSION['username']將無法使用 $sql = "SELECT * FROM member_table where username='$id '"; $result = mysql_query($sql); $row = mysql_fetch_row($result); echo "
\">"; echo "帳號: id
\" value=\"
$row[1] \" />(此項目無法修改)
";
echo "密碼:
pw\" value=\"
$row[2] \" />
";
echo "再一次輸入密碼:
pw2\" value=\"
$row[2] \" />
";
echo "電話:
telephone\" value=\"
$row[3] \" />
";
echo "地址:
address\" value=\"
$row[4] \" />
";
echo "備註:
";
echo "
";
echo "";
}
else
{
echo '您無權限觀看此頁面!';
echo '';
}
?>
(9) 修改會員資料 - 「更新」要修改之會員資料進MySQL資料庫(update_finish.php) include("mysql_connect.inc.php"); $id = $_POST['id']; $pw = $_POST['pw']; $pw2 = $_POST['pw2']; $telephone = $_POST['telephone']; $address = $_POST['address']; $other = $_POST['other'];
//紅色字體為判斷密碼是否填寫正確 if($_SESSION['username'] != null && $pw != null && $pw2 != null && $pw == $pw2 ) { $id = $_SESSION['username']; //更新資料庫資料語法 $sql = "update member_table set password=$pw , telephone=$telephone , address=$address , other=$other where username='$id '"; if(mysql_query($sql) ) { echo '修改成功!'; echo ''; } else { echo '修改失敗!'; echo ''; } } else { echo '您無權限觀看此頁面!'; echo ''; }?>
(10) 刪除會員資料 - 「填寫」要刪除之會員帳號(delete.php) if($_SESSION['username'] != null) { echo "
\">"; echo "要刪除的帳號: id
\" />
";
echo "
";
echo "";
}
else
{
echo '您無權限觀看此頁面!';
echo '';
}
?>
(11) 刪除會員資料 - 對MySQL資料庫進行「刪除」會員資料(delete_finish.php) include("mysql_connect.inc.php"); $id = $_POST['id'];
if($_SESSION['username'] != null) { //刪除資料庫資料語法 $sql = "delete from member_table where username='$id '"; if(mysql_query($sql) ) { echo '刪除成功!'; echo ''; } else { echo '刪除失敗!'; echo ''; } } else { echo '您無權限觀看此頁面!'; echo ''; }?>
以上若有錯誤,也請各位告知或糾正,謝謝~~~!本來程式碼要加上實際顯示出來的圖片作介紹的,但因為真的花太多時間了,只好作罷!!!