- common.php
- <?php
- /**
- * ******************************************
- * 系统公共函数和变量类
- *
- * @author mark.wang
- * @date 2008-12-06 11:10:48
- * @copyright www.iwoindex.com
- * @version 1.0
- * ******************************************
- */
- //header信息首先发送到客户端
- @header("content-Type:text/html;charset=GBK");
- //microtime返回格式为"msec sec"的字符串,其中sec为当前unix的时间戳,msec是微妙部分
- $mtime=explode(' ',microtime());
- //返回自格林威治时间1970年1月1日 00:00:00到当前时间的秒数,精确到微妙
- $starttime=$mtime[0]+$mtime[1];
- //返回自身的文件名,打印结果为:'/ilexa/include/common.php'
- $php_self=$_SERVER['PHP_SELF']?$_SERVER['PHP_SELF']:$_SERVER['SCRIPT_NAME'];
- //当前时间,1228533665 单位为秒
- $timestamp=time();
- //定义根目录 D:/htdocs/ilexa/
- define('ROOT',substr(dirname(__FILE__),0,-7));
- //包含配置文件,里面包含连接数据库的参数
- require_once (ROOT.'include/config.php');
- //包含数据库操作类,里面封装了一些操作数据库的函数
- require_once (ROOT.'include/mysql.php');
- $DB=new DB_MySQL();
- $DB->connect($servername,$dbusername,$dbpassword,$dbname,$usepconnect);
- unset($servername,$dbusername,$dbpassword,$dbname,$usepconnect);
- $onoff=function_exists('ini_get')?ini_get('register_globals'):get_cfg_var('register_globals');
- if($onoff!=1){
- @extract($_POST,EXTR_SKIP);
- @extract($_GET,EXTR_SKIP);
- @extract($_COOKIE,EXTR_SKIP);
- }
- //取出转义字符,此函数使用频繁
- function stripslashes_array(&$array){
- if(is_array($array)){
- foreach ($array as $k=>$v){
- $array[$k]=stripslashes_array($v);
- }
- }else if(is_string($array)){
- $array=stripslashes($array);
- }
- return $array;
- }
- @set_magic_quotes_runtime(0);//关闭魔法设置,参数为0时magic_quotes_runtime为off
- //判断get_magic_quotes_gpc的状态,为on的情况下用stripslashes_array函数处理
- if(get_magic_quotes_gpc()){
- $_GET=stripslashes_array($_GET);
- $_POST=stripslashes_array($_POSt);
- $_COOKIE=stripslashes_array($_COOKIE);
- }
- //防止PHP5.1.X使用时间函数出错
- if(function_exists('date_default_timezone_set')){
- @date_default_timezone_set('UTC');
- }
- //获取IP地址getenv函数用于获取环境变量
- if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
- $onlineip = getenv('HTTP_CLIENT_IP');
- } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
- $onlineip = getenv('HTTP_X_FORWARDED_FOR');
- } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
- $onlineip = getenv('REMOTE_ADDR');
- } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
- $onlineip = $_SERVER['REMOTE_ADDR'];
- }
- $onlineip = addslashes($onlineip);
- @preg_match("/[/d/.]{7,15}/", $onlineip, $onlineipmatches);
- $onlineip = $onlineipmatches[0] ? $onlineipmatches[0] : 'unknown';
- unset($onlineipmatches);//释放变量,节省系统资源
- //base64位编码函数,即base64加密和解密,默认参数为加密
- function authcode($string,$operation='ENCODE'){
- if($operation=='ENCODE'){
- $string=base64_encode($string);
- }else{
- $string=base64_decode($string);
- }
- return $string;
- }
- function getnews(){
- }
- ?>
- config.php
- <?php
- /**
- * ******************************************
- * 数据库连接配置类
- *
- * @author mark.wang
- * @date 2008-12-06 11:10:48
- * @copyright www.iwoindex.com
- * @version 1.0
- * ******************************************
- */
- $servername = '192.168.1.102';
- $dbusername = 'root';
- $dbpassword = '123456';
- $usepconnect = '1';
- $dbname = 'index';
- $db_prefix = 'iwo_';
- $dbcharset = 'gbk';
- $charset = 'utf-8';
- $iwo_VERSION = '1.0';
- $iwo_RELEASE = '20081101';
- ?>
- mysql.php
- <?php
/**
* ******************************************
* 数据库操作类(mysql)版本
*
* @author mark.wang
* @date 2008-12-06 11:40:45
* @ QQ:103531948 Email:wangjiangfeng77qq@163.com
* @copyright www.iwoindex.com
* @version 1.0
* ******************************************
*/
//防止直接访问改程序,此文件只能在被定义了ROOT的地方才能使用,增加了系统的安全性
if(!defined('ROOT')){
exit('Access Denied');
}
class DB_MySQL{
var $querycount=0;
//返回mysql错误
function geterrdesc(){
return mysql_error();
}
//返回mysql错误行号
function geterrno(){
return mysql_errno();
}
//返回插入新行的id
function insert_id(){
$id=mysql_insert_id();
return $id;
}
//
function connect($servername,$dbusername,$dbpassword,$dbname,$usepconnect=0){
/*---------------获得数据库连接-----------------------*/
if($usepconnect){
if(!@mysql_pconnect($servername,$dbusername,$dbpassword)){
$this->halt("数据库连接失败!");
}
}else{
if(!@mysql_connect($servername,$dbusername,$dbpassword)){
$this->halt("数据库连接失败!");
}
}
/*---------------对数据库一些参数进行设置----------------------*/
//判断mysql版本定义全局变量
if($this->version()>'4.1'){
global $charset,$dbcharset;
if(!dbcharset&&in_array(strtolower($charset),array('gbk','big5','utf-8'))){
$dbcharset=str_replace('-','',$charset);
}
if($dbcharset){
mysql_query("SET character_set_connection=$dbcharset,character_set_results=$dbcharset,character_set_client=binary;");
}
}
//如果当前MYSQL版本在5.0以上
if($this->version()>'5.0.1'){
mysql_query("SET sql_mode=''");
}
//如果数据库名不为空,则调用内部方法select_db,使该数据库为当前库
if($dbname){
$this->select_db($dbname);
}
}
//从结果集中取得数据,生成数组返回
function fetch_array($query,$result_type=MYSQL_ASSOC){
return mysql_fetch_array($query,$result_type);
}
//执行一个SQL语句
function query($sql,$type=''){
$func=$type='UNBUFFERED'&&@function_exists('mysql_unbuffered_query')?'mysql_unbuffered_query':'mysql_query';
if(!($query=$func($sql))&&type!='SILENT'){
$this->halt('MySQL QUERY error',$sql);
}
$this->querycount++;
return $query;
}
//此方法和上面方法的不同点是,这个方法设置了清楚缓存
function unbuffered_query($sql){
$query=$this->query($sql,'UNBUFFERED');
return $query;
}
//使用库为当前库
function select_db($dbname){
return mysql_select_db($dbname);
}
//从结果集中取得一行数据返回
function fetch_row($query){
$query=mysql_fetch_row($query);
return $query;
}
//返回结果集中的第一租数据
function fetch_one_array($query){
//内部调用query方法
$result=$this->query($query);
//内部调用fetch_array方法
$record=$this->fetch_array($result);
return $record;
}
//返回结果集中行的数目
function num_rows($query){
$query=mysql_num_rows($query);
return $query;
}
//返回执行update,delete,insert语句时,影响的行数
function affect_nums($query){
return mysql_affected_rows($query);
}
//返回结果集中字段的数目
function num_fields($query){
return mysql_num_fields($query);
}
//函数返回用于MySQL结果集中一个单元的内容,$row是偏移量
function result($query,$row){
$query=@mysql_result($query,$row);
return $query;
}
//释放所有于结果集标识符中的结果集
function free_result($query){
$query=mysql_free_result($query);
return $query;
}
//返回MySQL版本号
function version(){
return mysql_get_server_info();
}
//函数用于关闭指定的连接标识所关联的到MySQL服务器的连接,如果没有指定,则关闭上一个打开的连接
function close(){
return mysql_close();
}
//数据库操作输出信息
function halt($msg, $sql=''){
global $php_self,$timestamp,$onlineip; - if ($sql) {
@$fp = fopen(ROOT.'cache/log/dberrorlog.php', 'a');
@fwrite($fp, "<?PHP exit('Access Denied'); ?>/t$timestamp/t$onlineip/t".basename($php_self)."/t".htmlspecialchars($this->geterrdesc())."/t".str_replace(array("/r", "/n", "/t"), array(' ', ' ', ' '), trim(htmlspecialchars($sql)))."/n");
@fclose($fp);
} - $message = "<html>/n<head>/n";
$message .= "<meta content=/"text/html; charset=utf-8/" http-equiv=/"Content-Type/">/n";
$message .= "<style type=/"text/css/">/n";
$message .= "body,p,pre {/n";
$message .= "font:12px Verdana;/n";
$message .= "}/n";
$message .= "</style>/n";
$message .= "</head>/n";
$message .= "<body bgcolor=/"#FFFFFF/" text=/"#000000/" link=/"#006699/" vlink=/"#5493B4/">/n"; - $message .= "<p>数据库出错:</p><pre><b>".htmlspecialchars($msg)."</b></pre>/n";
$message .= "<b>Mysql error description</b>: ".htmlspecialchars($this->geterrdesc())."/n<br />";
$message .= "<b>Mysql error number</b>: ".$this->geterrno()."/n<br />";
$message .= "<b>Date</b>: ".date("Y-m-d @ H:i")."/n<br />";
$message .= "<b>Script</b>: http://".$_SERVER['HTTP_HOST'].getenv("REQUEST_URI")."/n<br />"; - $message .= "</body>/n</html>";
echo $message;
exit;
}
}
?>
封装PHP常用的操作类
最新推荐文章于 2021-03-18 13:33:06 发布