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();
?>
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();
?>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货