佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 981|回复: 14

如何PHP做Multiple level user authentication?

[复制链接]
发表于 2-1-2007 12:14 AM | 显示全部楼层 |阅读模式
我要做有关学校设备修缮系统(Final Year Project)的用户如下:
Admin
Teacher
Contractor--sign in and view only

我需要如何写program去做page protected security呢?
有哪位高人可以提供sample source code吗?
回复

使用道具 举报


ADVERTISEMENT

发表于 4-1-2007 10:33 AM | 显示全部楼层
原帖由 mkchuui 于 2-1-2007 12:14 AM 发表
我要做有关学校设备修缮系统(Final Year Project)的用户如下:
Admin
Teacher
Contractor--sign in and view only

我需要如何写program去做page protected security呢?
有哪位高人可以提供sample sour ...

page protected security 是指SSL ?
回复

使用道具 举报

abc321 该用户已被删除
发表于 4-1-2007 12:27 PM | 显示全部楼层
原帖由 mkchuui 于 2-1-2007 12:14 AM 发表
我要做有关学校设备修缮系统(Final Year Project)的用户如下:
Admin
Teacher
Contractor--sign in and view only

我需要如何写program去做page protected security呢?
有哪位高人可以提供sample sour ...


是需要login的,对吗?
如果是需要login的,在核对username和password的时候,必定已经知道login的user是admin或teacher或contractor,那么最基本的就是加入一个session。

也可以加入一些requirement control,if else 之类的冬冬。


少少愚见,希望能够帮到你。
回复

使用道具 举报

发表于 4-1-2007 04:49 PM | 显示全部楼层
define('USER', 0);
define('ADMIN', 1);
define('TEACHER', 2);
define('CONTRACTOR', 3);

switch($user_level)
{
case ADMIN:
//do something
break;

case TEACHER:
//do something
break;

case CONTRACTOR:
//do something
break;

case USER: default:
//do something
break;
}

[ 本帖最后由 megablue 于 4-1-2007 04:51 PM 编辑 ]
回复

使用道具 举报

发表于 5-1-2007 01:15 PM | 显示全部楼层
回复

使用道具 举报

发表于 5-1-2007 07:18 PM | 显示全部楼层
在 database 做。。。 member_rank field

这是最 standard 而且最值得用已经讨论也是以这类方法
回复

使用道具 举报

Follow Us
 楼主| 发表于 6-1-2007 11:24 PM | 显示全部楼层
谢谢,各位高人指点,我先努力试看。
回复

使用道具 举报

 楼主| 发表于 28-1-2007 08:29 PM | 显示全部楼层
如何做logout?
回复

使用道具 举报


ADVERTISEMENT

lykillerl 该用户已被删除
发表于 29-1-2007 08:19 PM | 显示全部楼层
你是怎樣寫login?
回复

使用道具 举报

发表于 29-1-2007 09:26 PM | 显示全部楼层
原帖由 mkchuui 于 28-1-2007 08:29 PM 发表
如何做logout?




可以,也就可以
回复

使用道具 举报

 楼主| 发表于 31-1-2007 03:16 PM | 显示全部楼层
login script

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" c>
<title>Login Sistem Aduan Kerosakan</title>
<style type="text/css">
<!--
.style61 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-weight: bold;
}
.style64 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; }
.style81 {color: #000000}
-->
</style>
</head>

<body>
<table width="850" border="1" align="center" cellpadding="0" cellspacing="0">
  <!--DWLayoutTable-->
  <tr>
    <td height="19" valign="top" class="style37 style29"><div align="center" class="style61"><strong>SISTEM ADUAN KEROSAKAN KEMUDAHAN SEKOLAH </strong></div></td>
  </tr>
  <tr>
    <td height="399" valign="top" class="style37 style29"><p align="center"> </p>
      <table width="848" border="0" align="center">
        <tr>
          <th width="665" scope="col"><div align="left" class="style81"></div></th>
          <th width="173" scope="col"><SCRIPT LANGUAGE="JavaScript">
        var now = new Date();

        var days = new Array('Ahad','Isnin','Selasa','Rabu','Khamis','Jumaat','Sabtu');

        var months = new Array('Januari','Februari','Mac','April','Mei','Jun','Julai','Agos','September','Oktober','November','Disember');

        var date = ((now.getDate()<10) ? "0" : "")+ now.getDate();

        function fourdigits(number)    {
        return (number < 1000) ? number + 1900 : number;
                                }

        today =  days[now.getDay()] + ", " +
         date + " " +
         months[now.getMonth()] + "  " +
         
         (fourdigits(now.getYear())) ;

        document.write(today);


        </script> </th>
        </tr>
      </table>
      <table width="848" height="240" border="0" align="center" bordercolor="#98C7FD">
        <tr>
          <td width="606" height="21" colspan="2" bgcolor="#66CCCC"><div align="center"></div></td>
        </tr>
        <tr>
          <td height="219" colspan="2"><form ACTION="check.php" method="POST" name="form1" id="form1">
              <table width="350" border="0" align="center">
                <tr>
                  <td> </td>
                </tr>
              </table>
              <table width="350" border="0" align="center">
                <tr>
                  <td height="16" bgcolor="#66CCCC"><div align="center" class="style61">Masukkan Kata Laluan Anda</div></td>
                </tr>
              </table>
              <table width="350" border="0" align="center">
                <tr>
                  <td><table width="349" border="1" align="center" bordercolor="#98C7FD">
                      <tr>
                        <td width="135" height="23" bgcolor="#66CCCC" class="style61"> ID Pengguna </td>
                        <td width="199"><input name="username" type="text" id="username" size="15"></td>
                      </tr>
                      <tr>
                        <td bgcolor="#66CCCC" class="style61">Kata Laluan </td>
                        <td><input name="password" type="password" id="password" size="15"></td>
                      </tr>
                  </table></td>
                </tr>
                <tr>
                  <td height="26"><div align="center">
                      <input name="btnSemak" type="submit" id="btnSemak" value="Login">
                  </div></td>
                </tr>
              </table>
              <p align="center">
                <input type="hidden" name="hiddenField">
              </p>
          </form></td>
        </tr>
    </table></td>
  </tr>
</table>
<p align="center"><span class="style61"> </span></p>
<p align="center"><br>
</p>
<p align="center">  </p>
<p> </p>
<p align="center"><span class="style64">  </span></p>
</body>
</html>
----------------------------------------------------------------------------------------------
check login

<?php
session_start();
{
    mysql_connect('localhost','root','');// connect to db hostname, user name, pass
    mysql_select_db(sakks); // pilih db
    $result=mysql_query("SELECT COUNT(*) AS kira FROM login WHERE idpengguna='{$HTTP_POST_VARS['username']}' AND password='{$HTTP_POST_VARS['password']}'");
    $result_ar=mysql_fetch_array($result) or die(mysql_error());
    //$status=mysql_query("SELECT status FROM login WHERE id='{$HTTP_POST_VARS['login_username']}' AND password='{$HTTP_POST_VARS['secretkey']}'");
    //$status_ar=mysql_fetch_array($status);
   

//1
   
   
    $nama=mysql_query("SELECT nama FROM login WHERE idpengguna='{$HTTP_POST_VARS['username']}' AND password='{$HTTP_POST_VARS['password']}'");
    $nama_ar=mysql_fetch_array($nama);
   
    $status=mysql_query("SELECT status FROM login WHERE idpengguna='{$HTTP_POST_VARS['username']}' AND password='{$HTTP_POST_VARS['password']}'");
    $status_ar=mysql_fetch_array($status);
   
   
   
   
    if($result_ar['kira'] < 1)
        header('Location: loginSalah.php');
    else
        header('Location: admin/index.php');
   
    if($status_ar['status'] == guru){
    header('Location:guru/index.php');
    }
   
    if($status_ar['status'] == kontraktor){
    header('Location: kontraktor/index.php');
    }
   
   
   
    $user=$HTTP_POST_VARS['idpengguna'];
   
    $nama=$nama_ar['nama'];
   
     session_register('user');
     session_register('nama');
   
}   
?>
回复

使用道具 举报

发表于 1-2-2007 03:16 PM | 显示全部楼层

回复 #11 mkchuui 的帖子

function logout() {
$_SESSION['user'] = '';
$_SESSION['nama'] = '';
}
你的 session 没有记录 password 吗?那么用户每一次refresh 就要再login 一次了
回复

使用道具 举报

 楼主| 发表于 2-2-2007 09:07 PM | 显示全部楼层

回复 #12 hui_yang 的帖子

如何用session纪录用户password?

[ 本帖最后由 mkchuui 于 2-2-2007 09:09 PM 编辑 ]
回复

使用道具 举报

发表于 3-2-2007 10:33 AM | 显示全部楼层

回复 #13 mkchuui 的帖子

和记录用户有没有登录的session一样
回复

使用道具 举报

 楼主| 发表于 12-3-2007 02:03 AM | 显示全部楼层
cookies暂时不会做,能否提供example code?
如何做page protected?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT


本周最热论坛帖子本周最热论坛帖子

ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 27-8-2025 10:03 AM , Processed in 0.152367 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表