| 项目搜索 |
| |
|
代码片段库:
查看代码片段
浏览
| 提交新的代码片段
| 创建代码包
lib.php
|
类型:
Full Script |
类别:
BBS Systems
|
许可证:
GNU General Public License |
语言:
PHP
|
描述:
可换SKIN的BOARD中的主LIB文件
|
该代码片段的版本系列:
片段ID |
下载版本 |
提交时间 |
提交人 |
删除 |
17 | v1.0 | 2002-02-25 15:57 | firefox | |
点击"下载版本"来下载该代码片段.
最新版本的代码片段: v1.0
<?
//////////////////////////////////////////////////////////////////
// 所有的过滤及函数定义.
//////////////////////////////////////////////////////////////////
// config.php 数据库连接信息文件;;
$temp_filename=realpath(__FILE__);
if($temp_filename) $config_dir=eregi_replace("lib.php","",$temp_filename);
else $config_dir="";
// 访问者浏览器
if(eregi("msie",$HTTP_USER_AGENT)) $browser="1"; else $browser="0";
//对 数据库连接文件( config.php ) 是否存在的判断,如果没有返回到安装
if(!file_exists($config_dir."config.php")&&!eregi("install",$PHP_SELF))
{
echo"<meta http-equiv=\"refresh\" content=\"0; Url=setup.php\">";
exit;
}
// 定义
function getmicrotime() {
$microtimestmp = split(" ",microtime());
return $microtimestmp[0]+$microtimestmp[1];
}
// 起始时间
$start_time=getmicrotime();
// 数据库表名称的定义
$member_table = "QQ_member_table"; // 普通用户信息表
$group_table = "QQ_group_table"; // 用户组管理表
$admin_table="QQ_admin_table"; // 管理人员信息表
$now_table ="QQ_now_connect";
$send_memo_table ="QQ_send_memo";
$get_memo_table ="QQ_get_memo";
$t_division="QQ_division"; // Division
$t_board = "QQ_board"; //
$t_comment ="QQ_board_comment"; //
$t_category ="QQ_board_category"; // 类表
//////////////////////////////////////////////////////////////////////////
// Division
///////////////////////////////////////////////////////////////////////////
// 已阅读
function total_division()
{
global $connect, $t_division, $id;
$temp=mysql_fetch_array(mysql_query("select max(division) from $t_division"."_$id"));
return $temp[0];
}
//
function plus_division($division)
{
global $connect, $t_division, $id;
mysql_query("update $t_division"."_$id set num=num+1 where division='$division'") or error(mysql_error);
}
function minus_division($division)
{
global $connect, $t_division, $id;
mysql_query("update $t_division"."_$id set num=num-1 where division='$division'") or error(mysql_error);
}
//
function add_division($board_name="")
{
global $connect, $t_division, $id, $t_board;
if($board_name) $board_id=$board_name;
else $board_id=$id;
$temp=mysql_fetch_array(mysql_query("select num from $t_division"."_$board_id order by division desc limit 1"));
// division num division +1 ;
if($temp[0]>=5000)
{
$temp=mysql_fetch_array(mysql_query("select max(division) from $t_division"."_$board_id"));
$max_division=$temp[0]+1;
$temp=mysql_fetch_array(mysql_query("select max(division) from $t_division"."_$board_id where num>0 and division!='$max_division'"));
if(!$temp[0]) $second_division=0; else $second_division=$temp[0];
$temp=mysql_fetch_array(mysql_query("select count(*) from $t_board"."_$board_id where (division='$max_division' or division='$second_division') and headnum<=-2000000000"));
if($temp[0]>0)
{
mysql_query("update $t_board"."_$board_id set division='$max_division' where (division='$max_division' or division='$second_division') and headnum<='-2000000000'") or error(mysql_error());
mysql_query("update $t_division"."_$board_id set num=num-$temp[0] where division=$max_division-1") or error(mysql_error());
}
$num=$temp[0]+1;
mysql_query("insert into $t_division"."_$board_id (division,num) values ('$max_division','$num')");
return $max_division;
}
// division~
else
{
$temp=mysql_fetch_array(mysql_query("select max(division) from $t_division"."_$board_id"));
$division=$temp[0];
mysql_query("update $t_division"."_$board_id set num=num+1 where division='$division'");
return $division;
}
}
///////////////////////////////////////////////////////////////////////////
// 用户信息的认证与储存
///////////////////////////////////////////////////////////////////////////
function member_info()
{
global $HTTP_COOKIE_VARS, $member_table, $now_table;
$cookie_userid=$HTTP_COOKIE_VARS[QQboard_userid];
$cookie_password=$HTTP_COOKIE_VARS[QQboard_password];
//用户名和密码存放
if($cookie_userid&&$cookie_password)
{
$check=mysql_fetch_array(mysql_query("select count(*) from $now_table where user_id='$cookie_userid'"));
if($check[0])
{
setcookie("QQboard_userid",$cookie_userid,0,"/");
setcookie("QQboard_password",$cookie_password,0,"/");
mysql_query("update $now_table set logtime='".time()."' where user_id='$cookie_userid'");
$member=mysql_fetch_array(mysql_query("select * from $member_table where user_id='$cookie_userid' and password='$cookie_password'"));
}
else
{
setcookie("QQboard_userid","",0,"/");
setcookie("QQboard_password","",0,"/");
$member[level]=10;
}
}
else $member[level]=10;
return $member;
}
function group_info($no)
{
global $group_table;
$temp=mysql_fetch_array(mysql_query("select * from $group_table where no='$no'"));
return $temp;
}
/////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////
function check_login($user_id,$password,$init=0)
{
global $connect, $member_table, $now_table, $id;
$check=mysql_fetch_array(mysql_query("select * from $member_table where user_id='$user_id' and password=password('$password')"));
if($check[no])
{
$password=mysql_fetch_array(mysql_query("select password('$password')"));
@setcookie("QQboard_userid",$user_id,0,"/");
@setcookie("QQboard_password",$password[0],0,"/");
$temp=mysql_fetch_array(mysql_query("select count(*) from $now_table where user_id='$user_id'"));
if($temp[0]) mysql_query("update $now_table set logtime='".time()."' where user_id='$user_id'");
else mysql_query("insert into $now_table (user_id,group_no,logtime) values ('$user_id','$check[group_no]','".time()."')");
return 1;
}
else
{
setcookie("autologin[id]",0,"","/");
setcookie("autologin[password]",0,"","/");
setcookie("autologin[ok]",0,"","/");
setcookie("QQBoard_userid",0,"","/");
setcookie("QQBoard_password",0,"","/");
if($init==0)Error("登陆失败,无此用户或密码错误.");
}
}
///////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////
function head($body="",$script="")
{
global $group, $setup,$dir,$member, $PHP_SELF, $id;
echo"<!--\n\n";include "license.txt";echo"-->\n\n\n"; // 版权-_-+
if(!eregi("member_",$PHP_SELF)) $directory="skin/$setup[skinname]/style.css"; else $directory="style.css";
// html
if($setup[skinname])
{
echo"
<html>
<head>
<title>$setup[title]</title>
<meta http-equiv=Content-Type content=text/html; charset=gb2312>
<link rel=StyleSheet HREF=$directory type=text/css title=style>";
if($script) include "script/$script";
echo"
</head>
<body topmargin='0' leftmargin='0' marginwidth='0' marginheight='0' $body";
if($setup[bg_color]) echo "bgcolor=$setup[bg_color] ";
if($setup[bg_image]) echo "background=$setup[bg_image]";
echo">";
if($group[header_url]) include $group[header_url];
if($group[header]) echo stripslashes($group[header]);
if($setup[header_url]) include $setup[header_url];
if($setup[header]) echo stripslashes($setup[header]);
}
else
{
echo"
<html>
<head>
<title>AnyDeSn</title>
<meta http-equiv=Content-Type content=text/html; charset=gb2312>
<link rel=StyleSheet HREF=style.css type=text/css title=style>";
if($script) include "script/$script";
echo"
</head>
<body topmargin='0' leftmargin='0' marginwidth='0' marginheight='0' $body>";
if($group[header_url]) include $group[header_url];
if($group[header]) echo stripslashes($group[header]);
}
}
///////////////////////////////////////////////////////////////////////
// 下版权
///////////////////////////////////////////////////////////////////////
function foot()
{
global $width, $group, $setup, $start_time, $query_time;
$maker=@file("skin/$setup[skinname]/maker.txt");
if($maker[0]) $maker="/ skin by $maker[0]";
if($setup[skinname])
{
echo "<table border=0 cellpadding=0 cellspacing=0 height=20 width=$width>
<tr>
<td align=right style=font-family:verdana,宋体;font-size:8pt;line-height:100%;letter-spacing:-1px;>
<a href=http://www.anydesign.org target=_blank><font tyle=font-family:verdana,宋体;font-size:8pt;>Create by AnyDeSiGn.ORG</a>
$maker
</td>
</tr>
</table>";
if($group[footer_url]) include $group[footer_url];
if($group[footer]) echo stripslashes($group[footer]);
if($setup[footer_url]) include $setup[footer_url];
if($setup[footer]) echo stripslashes($setup[footer]);
echo"</body>
</html>";
}
else
{
if($group[footer_url]) include $group[footer_url];
if($group[footer]) echo stripslashes($group[footer]);
echo "</body></html>";
}
// 运行时间
$end_time=getmicrotime();
$db_time=number_format($query_time-$start_time,3,100,6);
$php_time=number_format($end_time-($start_time+$db_time),3,100,6);
$total_time=number_format($end_time-$start_time,3,100,6);
Echo"
<!--
-------------------------------------------------------------------
FireFox Board Executed Time
-------------------------------------------------------------------
All StartTime : $start_time
End DB Excute Time : $query_time
EndTime : $end_time
-------------------------------------------------------------------
DB Excute Time : $db_time
PHP Excute Time : $php_time
Total Excuted Time : $total_time
-------------------------------------------------------------------
-->";
/*
echo"-------------------------------------------------------------------<br>
FireFox Board Executed Time <br>
------------------------------------------------------------------- <br>
DB Excute Time : $db_time<br>
PHP Excute Time : $php_time<br>
Total Excuted Time : $total_time<br>
------------------------------------------------------------------- "; */
}
/////////////////////////////////////////////////////////////////////////
// 错误组定义
/////////////////////////////////////////////////////////////////////////
function error($message, $url=0)
{
global $setup, $connect, $dir, $config_dir;
$dir="skin/".$setup[skinname];
head();
if($setup[skinname])
{
include "skin/$setup[skinname]/error.php";
}
else
{
include $config_dir."error.php";
}
if($connect) @mysql_close($connect);
foot();
exit;
}
//////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////
function get_table_attrib($id)
{
global $connect, $admin_table;
$data=mysql_fetch_array(mysql_query("select * from $admin_table where name='$id'",$connect));
if($data[table_width]<=100) $data[table_width]=$data[table_width]."%";
return $data;
}
//////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////
function isblank($str) {
$temp=str_replace(" ","",$str);
$temp=str_replace("\n","",$temp);
$temp=strip_tags($temp);
$temp=str_replace(" ","",$temp);
$temp=str_replace(" ","",$temp);
if(eregi("[^[:space:]]",$temp)) return 0;
return 1;
}
////////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
function isnum($str) {
if(eregi("[^0-9]",$str)) return 0;
return 1;
}
//////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////
function isalNum($str) {
if(eregi("[^0-9a-zA-Z\_]",$str)) return 0;
return 1;
}
//////////////////////////////////////////////////////////////////////////
// HTML Tag
//////////////////////////////////////////////////////////////////////////
function del_html( $str )
{
$str = str_replace( ">", ">",$str );
$str = str_replace( "<", "<",$str );
$str = str_replace( "\"", """,$str );
return $str;
}
//////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////
function istable($str, $dbname='')
{
global $config_dir;
if(!$dbname)
{
$f=@file($config_dir."config.php") or Error("config.php 文件不存在.<br>DB连接无法进行.","setup.php");
for($i=1;$i<=4;$i++) $f[$i]=str_replace("\n","",$f[$i]);
$dbname=$f[4];
}
$result = mysql_list_tables($dbname) or error(mysql_error(),"");
$i=0;
while ($i < mysql_num_rows($result))
{
if($str==mysql_tablename ($result, $i)) return 1;
$i++;
}
return 0;
}
//////////////////////////////////////////////////////////////////////////
//身份证验证
//////////////////////////////////////////////////////////////////////////
function check_jumin($jumin)
{
if(strlen($jumin)==18){
$area=substr($jumin,0,2);
$fp=fopen($config_dir."provinces.php","r");
$fs=filesize($config_dir."provinces.php");
$content=fread($fp,$fs);
$privence=strtok($content,";");
$i=0;
while($privence){
$pid[$i]=substr($privence,0,2);
$privence=strtok(";");
$i=$i+1; }
for ($j=0;$j<$i;$j++){
if($area==$pid[$j]){
return true;
exit;
}
}
}
}
//////////////////////////////////////////////////////////////////////////
// E-mail
//////////////////////////////////////////////////////////////////////////
function ismail( $str )
{
if( eregi("([a-z0-9\_\-\.]+)@([a-z0-9\_\-\.]+)", $str) )return $str;
else return '';
}
/////////////////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////////////////
function isHomepage( $str )
{
if(eregi("^http://([a-z0-9\_\-\./~@?=&-\#{5,}]+)", $str)) return $str;
else return '';
}
////////////////////////////////////////////////////////////////////////
// URL, Mail
////////////////////////////////////////////////////////////////////////
function autolink($str)
{
// URL 连接
$homepage_pattern = "/([^\"\=\>])(http|HTTP|ftp|FTP|telnet|TELNET)\:\/\/(.[^ \n\<\"]+)/";
$str = preg_replace($homepage_pattern,"\\1<a href=\\2://\\3 target=_blank>\\2://\\3</a>", " ".$str);
// 电子邮件
$email_pattern = "/([ \n]+)([a-z0-9\_\-\.]+)@([a-z0-9\_\-\.]+)/";
$str = preg_replace($email_pattern,"\\1<a href=mailto:\\2@\\3>\\2@\\3</a>", " ".$str);
return $str;
}
/////////////////////////////////////////////////////////////////////////
//上传文件大小定义
///////////////////////////////////////////////////////////////////////
function GetFileSize($size)
{
if(!$size) return;
if($size<1024) return ($size." B");
else if($size >1024 && $size< 1024 *1024) {
return sprintf("%0.1f KB",$size / 1024);
}
else return sprintf("%0.2f MB",$size / (1024*1024));
}
///////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////
function cut_str($msg,$cut_size)
{
if($cut_size<=0) return $msg;
if(ereg("\[re\]",$msg)) $cut_size=$cut_size+4;
for($i=0;$i<$cut_size;$i++) if(ord($msg[$i])>127) $han++; else $eng++;
$cut_size=$cut_size+(int)$han*0.6;
$point=1;
for ($i=0;$i<strlen($msg);$i++)
{
if ($point>$cut_size) { return $pointtmp."...";}
if (ord($msg[$i])<=127)
{
$pointtmp.= $msg[$i];
if ($point%$cut_size==0) { return $pointtmp."..."; }
}
else
{
if ($point%$cut_size==0) { return $pointtmp."..."; }
$pointtmp.=$msg[$i].$msg[++$i];
$point++;
}
$point++;
}
return $pointtmp;
}
//////////////////////////////////////////////////////////////////////////
// MySQL
/////////////////////////////////////////////////////////////////////////
function dbConn()
{
global $now_table, $connect, $config_dir, $autologin, $HTTP_COOKIE_VARS;
$f=@file($config_dir."config.php") or Error("config.php文件错误.<br>数据库连接信息未定义","setup.php");
for($i=1;$i<=4;$i++) $f[$i]=trim(str_replace("\n","",$f[$i]));
if(!$connect) $connect = @mysql_connect($f[1],$f[2],$f[3]) or Error("DB 加载失败或未启动.");
@mysql_select_db($f[4], $connect) or Error("DB Select 数据表不存在","");
// 自动登陆
if($autologin[ok]=="ok"&&$autologin[id]&&$autologin[password]&&!$HTTP_COOKIE_VARS[QQboard_userid])
{
$user_id=$autologin[id];
$password=base64_decode($autologin[password]);
$check=check_login($user_id,$password,1);
if($check)
{
@setcookie("autologin[id]",$user_id,60*60*24*365,"/");
@setcookie("autologin[password]",base64_encode($password),60*60*24*365,"/");
@setcookie("autologin[ok]","ok",60*60*24*365,"/");
} else
{
setcookie("autologin[id]",0,"","/");
setcookie("autologin[password]",0,"","/");
setcookie("autologin[ok]",0,"","/");
setcookie("QQBoard_userid",0,"","/");
setcookie("QQBoard_password",0,"","/");
}
}
// DB
$nowtime=time();
@mysql_query("delete from $now_table where $nowtime - logtime > 1200");
return $connect;
}
/////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////
function movepage($uRl)
{
global $connect;
echo"<meta http-equiv=\"refresh\" content=\"0; Url=$uRl\">";
if($connect) @mysql_close($connect);
exit;
}
//////////////////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////////////////
function get_icon($data)
{
global $dir;
//
$check_time=(time()-$data[reg_date])/60/60;
//
if($data[depth])
{
if($check_time<=12) $icon="<img src=$dir/reply_new_head.gif border=0 align=absmiddle> "; //
else $icon="<img src=$dir/reply_head.gif border=0 align=absmiddle> "; //
}
else
{
if($check_time<=12) $icon="<img src=$dir/new_head.gif border=0 align=absmiddle> "; //
else $icon="<img src=$dir/old_head.gif border=0 align=absmiddle> "; //
}
if($data[headnum]<=-2000000000) $icon="<img src=$dir/notice_head.gif border=0 align=absmiddle> "; //
else if($data[is_secret]==1) $icon="<img src=$dir/secret_head.gif border=0 align=absmiddle alt='私人'> ";
return $icon;
}
///////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////
function get_face($data)
{
global $group;
if($group[use_icon]==0)
{
//
if($data[ismember])
{
if($data[islevel]==2) $face_image="<img src=images/admin2_face.gif border=0 align=absmiddle>";
elseif($data[islevel]==1) $face_image="<img src=images/admin1_face.gif border=0 align=absmiddle>";
else
{
if($group[icon]) $face_image="<img src=icon/$group[icon] border=0 align=absmiddle>";
else $face_image="<img src=images/member_face.gif border=0 align=absmiddle>";
}
}
else $face_image="<img src=images/blank_face.gif border=0 align=absmiddle>";
$face_image="<div align=left> ".$face_image;
}
elseif($group[use_icon]==1&&$data[ismember]) $face_image="<b>";
if($data[ismember]&&$data[parent]) $face_image="<b>";
elseif($data[parent]) $face_image="";
return $face_image;
}
//////////////////////////////////////////////////////////////////////////
function size($size)
{
global $browser;
if(!$browser) return " size=".($size*0.6)." ";
else return " size=$size ";
}
///////////////////////////////////////////////////////////////////////////
function size2($size)
{
global $browser;
if(!$browser) return " cols=".($size*0.6)." ";
else return " cols=$size ";
}
///////////////////////////////////////////////////////////////////////////
function check_board_master($member, $board_num)
{
$temp = split(",",$member[board_name]);
for($i=0;$i<count($temp);$i++){
$t = trim($temp[$i]);
if($t&&$t==$board_num) return 1;
}
return 0;
}
如果您修改了一个代码片段并且觉得很应该让别人共享,您可以把这作为这个代码片段的最新版本提交上来. |
|