关于PHP的一个简单实例(登录模块)

来源:互联网 发布:mysql数据库开发实例 编辑:程序博客网 时间:2024/05/29 18:13
初学PHP,见笑了。
共有三个页面:

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();
?>
原创粉丝点击