我干脆把代码贴出来do.php:
<?php
require_once './util/MySql_Util.php';
require_once './util/Constants_Sql.php';
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>PHP 测试-处理用户注册和登录</title>
</head>
<body>
<?php
$sql = null;
$actionType = $_POST['actionType'];
if ($actionType == 'register')
{
$sql = sprintf(Constants_Sql::USER_REGISTER,$_POST['userName'],$_POST['password']);
}
elseif ($actionType == 'login')
{
$sql = sprintf(Constants_Sql::USER_LOGIN ,$_POST['userName'],$_POST['password']);
}
$connection = MySql_Util::connect();
$resultSet = mysql_query($sql,$connection) or die('查询数据库失败:'.mysql_error());
if ($actionType == 'register')
{
if (mysql_affected_rows($connection) == 1)
{
echo '注册成功 ^_^';
}
else
{
echo '<font color=\'red\'>注册失败!!!!</font>';
}
MySql_Util::close($connection,$resultSet);
}
elseif ($actionType == 'login')
{
if (mysql_num_rows($resultSet) == 1)
{
MySql_Util::close($connection,$resultSet);
if (!isset($_SESSION['userName']))
{
$record = mysql_fetch_array($resultSet,MYSQL_ASSOC);
$_SESSION['userName'] = $record['userName'];
header("Location: welcome.php");
exit;
}
}
else
{
MySql_Util::close($connection,$resultSet);
echo '<font color=\'red\'>用户名或密码错误!</font>';
}
}
?>
</body>
</html>MySql_Util.php:
<?
require_once './Constants_DataBase.php';/**
* 连接MySQL数据库的辅助类。
* @author 徐进
* @version 0.1
*/
class MySql_Util
{
/**
* 连接数据库服务器并选择要使用的数据库。
*
* @return resource 数据库连接对象。
*/
public static function connect()
{
$connection = mysql_connect(Constants_DataBase::DATABASE_SERVER_IP.':'.Constants_DataBase::DATABASE_SERVER_PORT ,Constants_DataBase::DATABASE_USER_NAME ,Constants_DataBase::DATABASE_PASSWORD) or die('连接数据库失败:'.mysql_error());
mysql_select_db(Constants_DataBase::DATABASE_NAME) or die('选择数据库失败:'.mysql_error()); return $connection;
} /**
* 释放查询所得的结果集资源并关闭数据库连接。
*
* @param resource $connection 要关闭的数据库连接对象。
* @param resource $resultSet 要释放的查询结果集对象。
*/
public static function close(resource &$connection, &$resultSet = null)
{
if ($resultSet != null)
{
mysql_free_result($resultSet);
$resultSet = null;
}
mysql_close($connection);
$connection = null;
}
}
?>
<?php
require_once './util/MySql_Util.php';
require_once './util/Constants_Sql.php';
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>PHP 测试-处理用户注册和登录</title>
</head>
<body>
<?php
$sql = null;
$actionType = $_POST['actionType'];
if ($actionType == 'register')
{
$sql = sprintf(Constants_Sql::USER_REGISTER,$_POST['userName'],$_POST['password']);
}
elseif ($actionType == 'login')
{
$sql = sprintf(Constants_Sql::USER_LOGIN ,$_POST['userName'],$_POST['password']);
}
$connection = MySql_Util::connect();
$resultSet = mysql_query($sql,$connection) or die('查询数据库失败:'.mysql_error());
if ($actionType == 'register')
{
if (mysql_affected_rows($connection) == 1)
{
echo '注册成功 ^_^';
}
else
{
echo '<font color=\'red\'>注册失败!!!!</font>';
}
MySql_Util::close($connection,$resultSet);
}
elseif ($actionType == 'login')
{
if (mysql_num_rows($resultSet) == 1)
{
MySql_Util::close($connection,$resultSet);
if (!isset($_SESSION['userName']))
{
$record = mysql_fetch_array($resultSet,MYSQL_ASSOC);
$_SESSION['userName'] = $record['userName'];
header("Location: welcome.php");
exit;
}
}
else
{
MySql_Util::close($connection,$resultSet);
echo '<font color=\'red\'>用户名或密码错误!</font>';
}
}
?>
</body>
</html>MySql_Util.php:
<?
require_once './Constants_DataBase.php';/**
* 连接MySQL数据库的辅助类。
* @author 徐进
* @version 0.1
*/
class MySql_Util
{
/**
* 连接数据库服务器并选择要使用的数据库。
*
* @return resource 数据库连接对象。
*/
public static function connect()
{
$connection = mysql_connect(Constants_DataBase::DATABASE_SERVER_IP.':'.Constants_DataBase::DATABASE_SERVER_PORT ,Constants_DataBase::DATABASE_USER_NAME ,Constants_DataBase::DATABASE_PASSWORD) or die('连接数据库失败:'.mysql_error());
mysql_select_db(Constants_DataBase::DATABASE_NAME) or die('选择数据库失败:'.mysql_error()); return $connection;
} /**
* 释放查询所得的结果集资源并关闭数据库连接。
*
* @param resource $connection 要关闭的数据库连接对象。
* @param resource $resultSet 要释放的查询结果集对象。
*/
public static function close(resource &$connection, &$resultSet = null)
{
if ($resultSet != null)
{
mysql_free_result($resultSet);
$resultSet = null;
}
mysql_close($connection);
$connection = null;
}
}
?>
require_once './util/MySql_Util.php';
require_once './util/Constants_Sql.php';
之后,用
class_exists -- 检查类是否已定义
get_declared_classes -- 返回由已定义类的名字所组成的数组
就不用news了,为什么会这样呢?以前没这样调用过类,如果这样效率会高一点,会考虑用这种方法做的
继续用print_r(get_included_files());检查文件是否被加载