A.dbutil.php(只支持MS-SQL) <?
class DataAccessObject {
    var $Host = "localhost"; // Hostname of our MySQL server 
    var $Database = "TEST_DB"; // Logical database name on that server 
    var $User = "sa"; // Database user 
    var $Password = "sa"; // Database user's password     var $Link_ID = 0; // Result of mssql_connect() 
    var $Query_ID = 0; // Result of most recent mssql_query() 
    var $Row = 0; // Current row number 
    var $Errno = 0; // Error state of query 
    var $Error = "";    var $AffNum = 0;    /************************************** 
    *打印错误方法:显示页面处理的错误信息。 
    ****************************************/
    function Halt($msg) {
        printf("</td></tr></table><b>Database error:</b> %s<br> ", $msg);
        printf("<b>mssql Error</b>: %s (%s)<br> ", $this->Errno, $this->Error);
        die("Session halted.");
    }    /************************************** 
    *连接数据库,并且选择默认的数据库 
    **************************************/
    function Connect() {
        if (0 == $this->Link_ID) {
            $this->Link_ID = mssql_connect($this->Host, $this->User, $this->Password) or die("Couldn't connect to SQL Server on 
            
            $servername");
            $db = @ mssql_select_db($this->Database, $this->Link_ID);
            if (!$this->Link_ID) {
                $this->Halt("Link-ID == false, mssql_connect failed");
            }
        }
    }    /**************************************** 
    *关闭数据库,如果数据库连接已经打开则关闭它 
    *请在调用Connect()并处理后使用Close() 
    ****************************************/
    function Close() {
        if (0 != $this->Link_ID) {
            mssql_close();
        }
    }    /************************************************* 
    *输入sql语句,有select,update,insert,delete 
    *包括存储过程也可以通过这个方法来调用。 
    *************************************************/
    function Query($Query_String) {
        $this->Connect();        $this->Query_ID = mssql_query($Query_String);
        $this->Row = 0;
        if (!$this->Query_ID) {
            $msg = mssql_get_last_message();            if ($msg == null || $msg == "") {
                $this->AffNum = 1;
                return 1;
            }            if (strtolower(substr($Query_String, 0, 6)) != "select") {
                $this->AffNum = 1;
                return 1;
            }            $this->Errno = 1;
            $this->Error = "General Error (The mssql interface cannot return detailed error messages)(" . $msg . ").";
            $this->halt("Invalid SQL: " . $Query_String);
        }
        return $this->Query_ID;
    }    /******************************************************* 
    *把查询数据库的指针移到下一条记录 
    *******************************************************/
    function NextRecord() {
        $this->Record = array ();
        mssql_next_result($this->Query_ID);
        $this->Record = mssql_fetch_array($this->Query_ID);        $result = $this->Record;
        if (!is_array($result))
            return $this->Record;
        foreach ($result as $key => $value) {
            $keylower = strtolower($key);
            if ($keylower != $key)
                $this->Record[$keylower] = $value;
        }        return $this->Record;
    }    /******************************************************** 
    *重新定位查询数据库的指针 
    ********************************************************/
    function Seek($pos) {
        if ($pos <= 0)
            return;
        if (eregi("[0-9]", $pos))
            mssql_data_seek($this->Query_ID, $pos);
    }    /******************************************************** 
    *获取查询数据库得到的总行数 
    ********************************************************/
    function NumRows() {
        if ($this->Query_ID)
            $num_rows = mssql_num_rows($this->Query_ID);
        else
            $num_rows = $this->AffNum;        return $num_rows;
    }    /******************************************************* 
    *字段数 
    *******************************************************/
    function NumFields() {
        return count($this->Record) / 2;
    }    /******************************* 
    *该字段的值 
    *******************************/
    function FieldValue($Field_Name) {
        return $this->Record[$Field_Name];
    }    /****************************** 
    *update,insert,delete影响的行数 
    ******************************/
    function AffectedRows() {
        if ($this->Query_ID)
            return mssql_num_rows($this->Query_ID);
        else {
            return $this->AffNum;
        }
    }
}
?>
B.login.php <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>登陆画面</title>
</head>
<body>
<?
    require "dbutil.php";
    @session_start();
    
    $message = "";
    if($_POST){
        if(empty($_POST["username"]) ){
            $message = "用户名不能为空!";
        } else if(empty($_POST["password"]) ){
            $message = "密码不能为空!";
        } else {
            $username = $_POST["username"];
            $password = $_POST["password"];
            $dao = new DataAccessObject();
            $sql = "SELECT * FROM T_USER WHERE USR_NAME = " . $username . " AND USR_PSW = " . $password;
            $dao->Query($sql);
            $count = $dao->NumRows();
            $dao->Close();
            if($count > 0) {
                echo "<script language=javascript>location.href='test.php'</script>";
            } else {
                $message = "用户名或者密码不正确!";
            }
        }
    }
?>
<form action="login.php" method="post">
<table width="100%" height="100%" border="0">
  <tr>
    <td align="center" valign="middle">
    <table>
      <tr>
        <td><?= $message ?></td>
      </tr>
    </table>
    <table width="250" border="1">
      <tr>
        <td width="40%">用户名:</td>
        <td><input type="text" name="username" value="<?=$_POST["username"]?>" style="width:120px" /></td>
      </tr>
      <tr>
        <td>密码:</td>
        <td><input type="password" name="password" value="<?=$_POST["password"]?>"  style="width:120px" /></td>
      </tr>
      <tr>
        <td align="center" colspan="2">
            <input type="submit" value="登陆" />
            <input type="reset" value="清除" />
        </td>
      </tr>
    </table>
    </td>
  </tr>
</table>
</form>
</body>
</html>
C.test.php <?
    print $_POST["username"]
?>
<br>
<?php
    phpinfo();
?>