📄 lib.php
字号:
<?
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////// 這個檔案包含 n@board 程式所用到的重要函數和變數設定。如果您對程式執行仍未熟悉,請不要隨便修改。 ////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////// 在不使用 register_globals 的情況下讀取網頁傳回資訊
if(!ini_get("register_globals")){
if(count($_GET)){extract($_GET);}
if(count($_POST)){extract($_POST);}
$PHP_SELF=$_SERVER[PHP_SELF];
$HTTP_REFERER=$_SERVER[HTTP_REFERER];
$REMOTE_ADDR=$_SERVER[REMOTE_ADDR];
if($_FILES["attach"]){
$attach=$_FILES["attach"]["tmp_name"];
$attach_name=$_FILES["attach"]["name"];
$attach_size=$_FILES["attach"]["size"];
}
if($_FILES["attach"]){
$attach2=$_FILES["attach2"]["tmp_name"];
$attach2_name=$_FILES["attach2"]["name"];
$attach2_size=$_FILES["attach2"]["size"];
}
}
////////////////////////////// 定義資料表名稱
$member_table="na3_member";
$memo_table="na3_memo";
$security_table="na3_security";
$board_table="na3_board_";
$com_table="na3_comment_";
$cat_table="na3_cat_";
$config_table="na3_config_";
////////////////////////////// 定義Cookie名稱
$member_cookie="na3_member";
$pass_cookie="na3_pass";
$name_cookie="na3_name";
$mail_cookie="na3_mail";
$home_cookie="na3_home";
$vote_cookie="na3_vote_";
////////////////////////////// Cookie時間
$cookie_time=100*24*3600;
////////////////////////////// 彈出式訊息的類別
$message="n@board 信息:\\n\\n";
$error="n@board 错误信息:\\n\\n";
$warning="n@board警告:\\n\\n";
////////////////////////////// 一些選項
$close="<font color=#008CD6><a onclick='window.close()' title='关闭' style='cursor:hand'><span lang=zh-cn class=minichi>关闭</span></a></font>";
$help="<font color=#008CD6><a href=http://navyism.com target=_blank title='通过navyism韩文官方网寻求帮助'><span lang=zh-cn class=minichi>求助</span></a></font>";
$logout="<font color=#008CD6><a href=logout.php onclick=\"if(confirm('${message}你确定要登出社区吗?'))return true;else return false;\" title='登出社区'><span lang=zh-ch class=minichi>登出</span></a></font>";
$memo_list="
<script language=javascript>
function memo_list(){window.open('memo_list.php','na3_memo','scrollbars=auto,resizable=yes,width=500,height=440,top=40,left=200')}
</script>
<a href=javascript:memo_list() title='打开便条盒子'><img src=image/memo_old.gif border=0 align=absmiddle></a>
";
////////////////////////////// 連接資料庫及身份確認、檢查對方是否已被禁止進入佈告欄的IP位址和主機名稱
if($connect_host && $connect_id && $connect_pass){
$connect=@mysql_connect($connect_host,$connect_id,$connect_pass);
$mysql=@mysql_select_db($connect_db,$connect);
if($HTTP_COOKIE_VARS[$member_cookie] || $HTTP_COOKIE_VARS[$pass_cookie]){
if($HTTP_COOKIE_VARS[$member_cookie]){$exist_id=1;}
if($HTTP_COOKIE_VARS[$pass_cookie]){$exist_pass=1;}
if($exist_id+$exist_pass!=2){cookie("$member_cookie",0,0);cookie("$pass_cookie",0,0);}
$query="select * from $member_table where id='$HTTP_COOKIE_VARS[$member_cookie]' and pass='$HTTP_COOKIE_VARS[$pass_cookie]'";
$data=@mysql_fetch_array(@mysql_query($query,$connect));
if(!$data){cookie("$member_cookie",0,0);cookie("$pass_cookie",0,0);}
}
if($bd){
$tmp_set=bd_info($bd);
$tmp_sec=sec_info();
if($tmp_set[use_ban_ip] && $tmp_sec[ban_ip]){
$ban_ip=explode(",",$tmp_sec[ban_ip]);
$ban_ip_length=sizeof($ban_ip);
for($i=0;$i<$ban_ip_length;$i++){if($REMOTE_ADDR==$ban_ip[$i]){error($warning.'检查到被禁止的ip位置\\nIP 地址是:'.$ban_ip[$i].'\\n\\n你已经禁止进入该处');}}
} //禁止某些ip进入(End-If)
if($tmp_set[use_ban_server] && $tmp_sec[ban_server]){
$ban_server=explode(",",$tmp_sec[ban_server]);
$ban_server_length=sizeof($ban_server);
for($i=0;$i<$ban_server_length;$i++){if(eregi("$ban_server[$i]",$HTTP_REFERER)){error($warning.'检查到被禁止的进入的主机名称!\\n主机名称是:'.$ban_server[$i].'\\n\\n你已经禁止进入布告栏');}}
} // 禁止某些主機進入(End-If)
} // 如佈告欄存在(End-If)
} // 連接資料庫(End-If)
////////////////////////////// 佈告欄在資料表裡的名稱
function bd($bd){
global $board_table,$com_table,$cat_table,$config_table;
$t[board]=$board_table.$bd;
$t[com]=$com_table.$bd;
$t[cat]=$cat_table.$bd;
$t[config]=$config_table.$bd;
return $t;
}
////////////////////////////// 佈告欄列表
function list_bd(){
global $connect_db,$board_table;
$result = @mysql_list_tables ("$connect_db");
$i=0;
$j=0;
while ($i < @mysql_num_rows ($result)) {
$tb_names[$i] = @mysql_tablename ($result, $i);
if(eregi("$board_table",$tb_names[$i]))
{
$tb_names[$i] = str_replace( "$board_table", "",$tb_names[$i] );
$tables[$j] = $tb_names[$i];
$j++;
}
$i++;
}
return $tables;
}
function chk_word($str,$word){ // 檢查字詞
if(ereg("[$word]",$str)){error($error.$word.' - 请注意文明用语');}
}
function chk_num($str,$length,$text1,$text2) // 檢查字串是否只包含半形數目字
{
if(!ereg("^(0|[0-9]*)$",$str)){error($text1);}
if(strlen($str)<$length){error($text2);}
}
function chk_str($str,$length,$text1,$text2) // 檢查字串是否只包含半形英文字或數目字
{
if(!eregi("^([_0-9a-z]*)$",$str)){error($text1);}
if(strlen($str)<$length){error($text2);}
}
////////////////////////////// 檢查佈告欄是否存在
function chk_bd($bd){
global $error;
$tables=list_bd();
$total=count($tables);
for($i=0;$i<$total;$i++){if($bd==$tables[$i]){$j++;}}
if(!$j){error($error.'这个版块不存在');}
}
////////////////////////////// 檢查是否佈告欄主管(板主) + 顯示錯誤訊息
function chk_admin($bd){
global $connect,$config_table,$HTTP_COOKIE_VARS,$member_cookie,$pass_cookie,$member_table;
$table=$config_table.$bd;
$query="select * from $table where no=1";
$data=@mysql_fetch_array(@mysql_query($query,$connect));
$auth=explode(",",$data[auth]);
$length=sizeof($auth);
for($i=0;$i<$length;$i++){if($auth[$i]=="$HTTP_COOKIE_VARS[$member_cookie]" && $auth[$i]){$j++;}}
if(!$j){
$query2="select * from $member_table where id='$auth[$i]' and pass='$HTTP_COOKIE_VARS[$pass_cookie]'";
$data2=@mysql_fetch_array(@mysql_query($query2,$connect));
if(!$data2){chk_level(1,"你的权限不够",0);}
}
}
////////////////////////////// 檢查是否佈告欄主管(板主) + 直接離開
function chk_admin_return($bd){
global $connect,$config_table,$HTTP_COOKIE_VARS,$member_cookie,$pass_cookie,$member_table;
$table=$config_table.$bd;
$query="select * from $table where no=1";
$data=@mysql_fetch_array(@mysql_query($query,$connect));
$auth=explode(",",$data[auth]);
$length=sizeof($auth);
$j=0;
for($i=0;$i<$length;$i++){if($auth[$i]=="$HTTP_COOKIE_VARS[$member_cookie]" && $auth[$i]){$j++;}}
if($j){
$query2="select * from $member_table where id='$HTTP_COOKIE_VARS[$member_cookie]' and pass='$HTTP_COOKIE_VARS[$pass_cookie]'";
$data2=@mysql_fetch_array(@mysql_query($query2,$connect));
if($data2){return 1;}else{return 0;}
}
}
////////////////////////////// 檢查便條盒子
function chk_memo(){
global $HTTP_COOKIE_VARS,$member_table,$member_cookie,$connect;
$query_memo="select * from $member_table where id='$HTTP_COOKIE_VARS[$member_cookie]'";
$new_memo=@mysql_fetch_array(@mysql_query($query_memo,$connect));
if($new_memo[na3_check_memo]=='1'){
echo"
<script language=javascript>
window.open('memo_list.php','na3_memo','scrollbars=yes,resizable=yes,width=500,height=440,top=40,left=200')
</script>";//kx030320m
}
}
////////////////////////////// 移至指定頁面
function go($url)
{
echo"<meta http-equiv='refresh' content='0;url=$url'>";
exit;
}
////////////////////////////// 彈出式訊息視窗
function msg($text)
{
echo"<script>
window.alert('$text');
</script>";
}
////////////////////////////// 顯示錯誤訊息(視窗)
function error($text)
{
echo"<script>
window.alert('$text');
history.go(-1);
</script>";
exit;
}
////////////////////////////// 顯示錯誤訊息(頁面)
function error2($bd)
{
go("error.php?bd=$bd");
exit;
}
////////////////////////////// 確認Cookie + 顯示錯誤訊息
function chk_cookie($name,$msg)
{
global $HTTP_COOKIE_VARS;
if(!$HTTP_COOKIE_VARS[$name]){error($msg);}
}
////////////////////////////// 確認Cookie + 移至指定頁面
function chk_cookie_go($name,$url)
{
global $HTTP_COOKIE_VARS;
if(!$HTTP_COOKIE_VARS[$name]){go($url);}
}
////////////////////////////// 檢查會員等級 + 顯示錯誤訊息
function chk_level($level,$msg,$url)
{
global $HTTP_COOKIE_VARS,$connect,$member_table,$member_cookie,$pass_cookie,$error,$bd;
$query="select * from $member_table where id='$HTTP_COOKIE_VARS[$member_cookie]' and pass='$HTTP_COOKIE_VARS[$pass_cookie]'";
$data=@mysql_fetch_array(@mysql_query($query,$connect));
if(!$data[level]){$data[level]=10;}
if($data[level]>$level){
if(!$url){error2($bd);}
else{go($url);}
}
}
////////////////////////////// 檢查會員等級 + 顯示錯誤訊息 (適用於一般頁面嵌入檢查權限語法)
function chk_out_level($level,$msg,$url)
{
global $HTTP_COOKIE_VARS,$connect,$member_table,$member_cookie,$pass_cookie,$error,$bd;
$query="select * from $member_table where id='$HTTP_COOKIE_VARS[$member_cookie]' and pass='$HTTP_COOKIE_VARS[$pass_cookie]'";
$data=@mysql_fetch_array(@mysql_query($query,$connect));
if(!$data[level]){$data[level]=10;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -