phpSecurePages

 

 

 

 

 

 

 

 

 

林朝敏
89/8/10

phpSecurePages認証系統(php+mysql)

本軟體原有訊息請查看README.TXT 檔案說明(0.16版)。(預設 a、b、c、d四個帳號(密碼同)) 檔案下載區

簡介:

這是一套適用於php3、php4下的密碼使用判斷程式,支援多國語言。可以提供網頁間身份傳遞,並可以適用不同等級身份的判斷。身分判斷可以一直維持,直到登出為止。

原提供密碼判斷、使用者編組方式的群組供能。由於以編組方式一個帳號只能歸屬於一個組別,不夠彈性,因此我再增加了群組的功能及指定帳號的方式兩種。

安裝:

  1. 把程式碼複製到/home/httpd/htm/php/phpSecurePages 下(含images) 。
    (Redhat網頁根目錄預設:/home/httpd/htm)

  2. 在php3使用兩個資料表做 session 判斷使用(php4不需要,內定功能)。
    # Database : phpSecurePages
    # Table structure for tables 'phpSP_sessions' and 'phpSP_sessionVars'
    CREATE TABLE phpSP_sessions (
    id CHAR(20) NOT NULL,
    LastAction DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL,
    ip CHAR(15) NOT NULL,
    userID MEDIUMINT(9),
    PRIMARY KEY (id), KEY id (id),
    UNIQUE id_2 (id)
    );

    CREATE TABLE phpSP_sessionVars (
    id MEDIUMINT(8) UNSIGNED DEFAULT '0' NOT NULL AUTO_INCREMENT,
    session VARCHAR(20) NOT NULL,
    name VARCHAR(30) NOT NULL,
    intval INT(10) UNSIGNED,
    strval VARCHAR(100),
    PRIMARY KEY (id),
    KEY sessionID (session),
    UNIQUE id (id)
    );

  3. 使用者帳號的建立,可以文字方式或資料表方式來建立。 文字檔(少數使用者情形):
    在secure.php 的後半段
    /****** Data 使用者資料 ******/
    $useData = true; $cfgLogin[1] = 'a'; //帳號
    $cfgPassword[1] = 'a'; //密碼
    $cfgFullName[1] = '-aaa-'; //全名
    $cfgUserLevel[1] = '1'; //使用者編組(可以省略)
    $cfgUserID[1] = ''; //個人代號(無作用)

    //群組設定,一群組中可以多人
    $cfgGroup[1] = 'demo'; //組名(供判斷用)
    $cfgGroupUser[1] = array('a','d'); //本組人員帳號,以陣列方式輸入
    $cfgGroupID[1] = ''; //未使用 或以資料庫方式建立:

    /****** Database 使用資料庫 ******
    / $useDatabase = true; //要設定為 true值
    # Database : phpSecurePages
    # Table structure for table 'phpSP_users' 'phpSP_Group'

    CREATE TABLE phpSP_users (
    primary_key MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT, //個人代碼
    user VARCHAR(50) NOT NULL, //帳號
    password VARCHAR(30) NOT NULL, //密碼
    FullName VARCHAR(50) NOT NULL, //全名
    userlevel TINYINT(3), //使用者編組
    PRIMARY KEY (primary_key),
    KEY (user)
    );

    CREATE TABLE phpSP_Group (
    primary_key MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT, //組別代碼
    groupName VARCHAR(50) NOT NULL, //組別名稱
    userList BLOB, //使用者列表,以逗號(,)分隔
    PRIMARY KEY (primary_key),
    KEY (groupName)
    );

  4. 設定和MySQL連線的帳號、密碼,配合 secure.php 中的修改。
    mysql > grant all privileges on phpSecurePages.* to 帳號@localhost IDENTIFIED BY '密碼' ;

    $cfgServerUser = 'root'; // MySQL user
    $cfgServerPassword = ''; // MySQL password

  5. 把範例放在 /home/httpd/htm/php/phpSPDemo

  6. 在 /etc/httpd/php.ini 修改 includepath (包含檔搜尋路徑)加入"/home/httpd/htm/php",如下:
    include_path = ".;/home/httpd/htm/php"

  7. 在範例中已預設 a、b、c、d四個帳號(密碼同),demo 群組中有a、d兩人。(查看secure.php 的後半段 /** Data 使用者資料 ***/

使用:(安裝後、帳號等均以建立後)

  1. 只要帳號通過就可以瀏灠此頁,在第一行加入以下:
    <?php include("phpSecurePages/secure.php"); ?>

  2. 需要有指定組別代號,以下表第一、四組別可以進入,可以多組。(查看 $cfgUserLevel 設定)
    <?php $requiredUserLevel = array(1,4); include("phpSecurePages/secure.php"); ?>

  3. 需要指定群組,以下表demo群組中的帳號才可以進入。
    <?php $requiredGroup = "demo"; include("phpSecurePages/secure.php"); ?>

  4. 也可以指定特定帳號,以下表示只有 "c" 帳號才可以進入。
    <?php $requiredUser = "c"; include("phpSecurePages/secure.php"); ?>

  5. 簽出的畫面,須再加上 $logout = true ;
    <?php $logout = true; include("phpSecurePages/secure.php"); ?>

  6. 登入的身份會一直維持,直到登出為止。