如何用php寫登入與分權畫面(急!!) 贈20點

我用PHP寫的登入畫面沒有問題,但是我想要在"帳號欄位"判別英文字母。(註:資料庫都已經完成了)

判別英文字母如下:

"n"登入nursing.php畫面;"s"登入Social.php畫面;"e"登入education畫面;(以上"字元"判別)

"admini"登入admini.php畫面;"user"登入user.php畫面;(以上以"字串"判別)

.

P.S 請高手們用if...else if...else或switch撰寫程式

.

登入程式碼Login.php

<html>

<head>

<meta http-equiv="content-type" content="text/html; charset=big5">

<title>會員登入系統範例</title>

</head>

<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">

<h1 align="center">會員登入系統範例</h1>

<form name="form2" action=chk.php method=post>

<p align="center">請輸入帳號:<input type="text" name="user_id"></p>

<p align="center">請輸入密碼:<input type="password" name="user_passwd"></p>

<p align="center"><input type="submit" name="送出"><input type="reset" name="重設"></p>

</form>

</body>

</html>

.

資料庫判別使用者chk.php

<?

$link = mysql_connect("localhost","root","123456");

mysql_query("use movedb");

$sqlstr="select * from user where id ='".$_POST['user_id']."' and passwd = '".$_POST['user_passwd']."'";

$result = mysql_query($sqlstr,$link);

if(mysql_num_rows ($result)==1){

echo "<center>會員登入成功</center>";

}else{

echo "<center>會員登入失敗</center>";

}

mysql_free_result($result);

mysql_close($link);

?>

Update:

以上這些登入的使用者都是要進到資料庫"use movedb"去比對身分帳號密碼。

判別"n"進入nursing.php畫面的使用者。EX:n001、n002、n01

其他的"s"和"e"例如:e001、s001、s002等等的使用者。

Update 2:

我嘗試了cyjang@att.net 你的所提共方法

但是...卻是不能執行,是否可留下聯絡的E-mail呢?

幫我看看我的程式哪裡有問題。

.

我所需要的是登入者可能是n01、n001、n123這樣的登入者,這些都是要進入"nursing.php"的畫面。

5 Answers

Rating
  • CY
    Lv 5
    1 decade ago
    Favorite Answer

    假設 應登入 nursing.php 的帳號格式為 nXXXXX

    即關鍵字元一定在最前面

    $modified_userid = &quot;_&quot;.$POST_[&#039;user_id&#039;]; // 加一字元則要找的字元或字串位置為1  便於邏輯判斷

    if (strpos($modified_userid, &quot;n&quot; == 1)) {

    $url = &quot;nursing.php&quot;;

    }elseif (strpos($modified_userid, &quot;s&quot; == 1)) {

    $url = &quot;Social.php&quot;;

    } elseif (strpos($modified_userid, &quot;e&quot; == 1)) {

    $url = &quot;education.php&quot;;

    }elseif (strpos($modified_userid, &quot;admini&quot; == 1)) {

    $url = &quot;admini.php&quot;;

    }elseif (strpos($modified_userid, &quot;user&quot; == 1)) {

    $url = &quot;user.php&quot;;

    }

    另 $sqlstr 之設定會招致 sql injection 攻擊

    非常危險

    請看 http://unixwiz.net/techtips/sql-injection.html

    2009-07-27 04:14:54 補充:

    以上 &quot; 皆應改為 " (double quote)

    &#039; 為 ' (single quote)

  • 5 years ago

    到下面的網址看看吧

    ▶▶http://qoozoo201409150.pixnet.net/blog

  • 5 years ago

    到下面的網址看看吧

    ▶▶http://*****

  • 1 decade ago

    想法錯誤!!~

    因該是要改資料庫表單!!

    帳號,密碼,權限,分類...等

    ***********************************

    假如說傳過來的資料經比對登入正確

    跑這筆帳號的權限及分類...

    取得這筆帳號內的分類

    得知此筆帳號分類後....

    再運用if() header()個個分類網頁~~~~~~~~~~~~~~~~~~~

    Source(s): 自己
  • How do you think about the answers? You can sign in to vote the answer.
  • 1 decade ago

    由字串先判斷

    ex:

    if ($_POST['user_id']=='admin'){

    print "<meta http-equiv=REFRESH CONTENT=0;url=admin.php>";

    }else if ($_POST['user_id']=='user'){

    print "<meta http-equiv=REFRESH CONTENT=0;url=user.php>";

    }

    以下省略自己補進去

Still have questions? Get your answers by asking now.