專業滅鼠技術,快速除臭消毒,不留後患
保固期免費服務追蹤,居家守護不間斷
窗簾搬家好選擇,提供免費紙箱、完善估價不加收
可到府免費估價,歡迎來電預約

首頁  •  j2h 論壇 • 程式設計討論     • 

[php] 使用session的會員登入機制

房東:小路
發表時間:2012-06-25
[檢舉]


      因為全棋同學的系統需求,雖然會員機制並不難,他一定也很快就學會了,而我還是寫此教學來引導他,幫助他系統擴展的更快,相信他的系統在未來也一定會很有用的! 而這個教學主要是說明session應用在會員機制上,而教學的程式碼還是有些地方有沒有考慮的很周詳,安全上還是會有瑕疵,希望大家見諒。


以下為資料表的欄位資料:

\"member_table\"


以下為會員系統示意圖:

\"login示意圖\"


(1) 首頁 - 登入頁面 (index.php)

<!-- 設定網頁編碼為UTF-8 -->

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<form name="form" method="post" action="connect.php">

帳號:<input type="text" name="id" /> <br>

密碼:<input type="password" name="pw" /> <br>

<input type="submit" name="button" value="登入" />&nbsp;&nbsp;

<a href="register.php">申請帳號</a>

</form>


(2) php連結MySQL資料庫語法(mysql_connect.inc.php)

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<?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)

<?php session_start(); ?>

<!--上方語法為啟用session,此語法要放在網頁最前方-->

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<?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 \'<meta http-equiv=REFRESH CONTENT=1;url=member.php>\';

}

else

{

        echo \'登入失敗!\';

        echo \'<meta http-equiv=REFRESH CONTENT=1;url=index.php>\';

}

?>


(4) 會員登入成功\後 頁面 - 此頁面有「新增」、「修改」、「刪除」與「登出」的連結

      並且會顯示出所有會員資料(member.php)


<?php session_start(); ?>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<?php

include("mysql_connect.inc.php");

echo \'<a href="logout.php">登出</a>  <br><br>\';


//此判斷為判定觀看此頁有沒有權限

//說不定是路人或不相關的使用者

//因此要給予排除


if($_SESSION[\'username\'] != null)

{

        echo \'<a href="register.php">新增</a>    \';

        echo \'<a href="update.php">修改</a>    \';

        echo \'<a href="delete.php">刪除</a>  <br><br>\';

    

        //將資料庫裡的所有會員資料顯示在畫面上

        $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]<br>";

        }

}

else

{

        echo \'您無權限觀看此頁面!\';

        echo \'<meta http-equiv=REFRESH CONTENT=2;url=index.php>\';

}

?>


(5)  登出 - 洗掉登入使用者之session(logout.php)

<?php session_start(); ?>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<?php

//將session清空

unset($_SESSION[\'username\']);

echo \'登出中......\';

echo \'<meta http-equiv=REFRESH CONTENT=1;url=index.php>\';

?>


(6) 加入(註冊)會員 - 「填寫」會員資料 (register.php)

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<form name="form" method="post" action="register_finish.php">

帳號:<input type="text" name="id" /> <br>

密碼:<input type="password" name="pw" /> <br>

再一次輸入密碼:<input type="password" name="pw2" /> <br>

電話:<input type="text" name="telephone" /> <br>

地址:<input type="text" name="address" /> <br>

備註:<textarea name="other" cols="45" rows="5"></textarea> <br>

<input type="submit" name="button" value="確定" />

</form>


(7) 加入(註冊)會員 - 「新增」會員資料進MySQL資料庫 (register_finish.php)

<?php session_start(); ?>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<?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 \'<meta http-equiv=REFRESH CONTENT=2;url=index.php>\';

        }

        else

        {

                echo \'新增失敗!\';

                echo \'<meta http-equiv=REFRESH CONTENT=2;url=index.php>\';

        }

}

else

{

        echo \'您無權限觀看此頁面!\';

        echo \'<meta http-equiv=REFRESH CONTENT=2;url=index.php>\';

}

?>


(8) 修改會員資料 - 「填寫」要修改之會員資料(update.php)

<?php session_start(); ?>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<?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 "<form name=\\"form\\" method=\\"post\\" action=\\"update_finish.php\\">";

        echo "帳號:<input type=\\"text\\" name=\\"id\\" value=\\"$row[1]\\" />(此項目無法修改) <br>";

        echo "密碼:<input type=\\"password\\" name=\\"pw\\" value=\\"$row[2]\\" /> <br>";

        echo "再一次輸入密碼:<input type=\\"password\\" name=\\"pw2\\" value=\\"$row[2]\\" /> <br>";

        echo "電話:<input type=\\"text\\" name=\\"telephone\\" value=\\"$row[3]\\" /> <br>";

        echo "地址:<input type=\\"text\\" name=\\"address\\" value=\\"$row[4]\\" /> <br>";

        echo "備註:<textarea name=\\"other\\" cols=\\"45\\" rows=\\"5\\">$row[5]</textarea> <br>";

        echo "<input type=\\"submit\\" name=\\"button\\" value=\\"確定\\" />";

        echo "</form>";

}

else

{

        echo \'您無權限觀看此頁面!\';

        echo \'<meta http-equiv=REFRESH CONTENT=2;url=index.php>\';

}

?>


(9) 修改會員資料 - 「更新」要修改之會員資料進MySQL資料庫(update_finish.php)

<?php session_start(); ?>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<?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 \'<meta http-equiv=REFRESH CONTENT=2;url=member.php>\';

        }

        else

        {

                echo \'修改失敗!\';

                echo \'<meta http-equiv=REFRESH CONTENT=2;url=member.php>\';

        }

}

else

{

        echo \'您無權限觀看此頁面!\';

        echo \'<meta http-equiv=REFRESH CONTENT=2;url=index.php>\';

}

?>


(10) 刪除會員資料 - 「填寫」要刪除之會員帳號(delete.php)

<?php session_start(); ?>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<?php

if($_SESSION[\'username\'] != null)

{

        echo "<form name=\\"form\\" method=\\"post\\" action=\\"delete_finish.php\\">";

        echo "要刪除的帳號:<input type=\\"text\\" name=\\"id\\" /> <br>";

        echo "<input type=\\"submit\\" name=\\"button\\" value=\\"刪除\\" />";

        echo "</form>";

}

else

{

        echo \'您無權限觀看此頁面!\';

        echo \'<meta http-equiv=REFRESH CONTENT=2;url=index.php>\';

}

?>


(11) 刪除會員資料 - 對MySQL資料庫進行「刪除」會員資料(delete_finish.php)

<?php session_start(); ?>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<?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 \'<meta http-equiv=REFRESH CONTENT=2;url=member.php>\';

        }

        else

        {

                echo \'刪除失敗!\';

                echo \'<meta http-equiv=REFRESH CONTENT=2;url=member.php>\';

        }

}

else

{

        echo \'您無權限觀看此頁面!\';

        echo \'<meta http-equiv=REFRESH CONTENT=2;url=index.php>\';

}

?>





  • 贊助網站       

    廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲
    完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心!
    廣利不動產-新板特區指名度最高、值得您信賴的好房仲
    您的托付,廣利用心為您服務



  •  共 0 人回應

    姓名:
    佈告內容: