⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 write.php

📁 酷蝶XP留言本(TEXT)这款留言薄软件是为单机用户专门量身定做
💻 PHP
字号:
<?php
/**********************************************************************

	  	        Dream Fly GuestBook 3.2 for Text (v20050206)

       程序设计:浪 者
       版权所有:(C)1999-2005 酷虫工作室
       演    示:http://xpower.jsphome.com

*************************************************************************/

if(!defined('INDEX_POST')) die('非法操作!<a href=../index.php>返回</a>');

include_once '_inc/security_config.php';

// IP
if(getenv('HTTP_CLIENT_IP')) {
	$ip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR')) {
	$ip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR')) {
	$ip = getenv('REMOTE_ADDR');
} else {
	$ip = $_SERVER['REMOTE_ADDR'];
}

$ipban = isIPBan($ip);

if ($submit && $ipban==false){
	setcookie('msgName',$name);
	setcookie('msgMail',$email);
	setcookie('msgOicq',$oicq);
	setcookie('msgPage',$page);
	setcookie('msgContent',stripslashes($content));
	if (time() - $_COOKIE[outTime] < $cfg[time_over]){
		ShowMsg ('为防止恶意灌水,签写留言间隔为 '.$cfg[time_over].' 秒!<br><br>请您稍后再试。');
		JumpUrl(-1);
	}elseif(($name=trim($name))=='' || strlen($name)>16 ) {
		ShowMsg ('您的昵称填写不规范!<br><br>昵称只能由字母、数字或汉字组成,并且最多只能包含 16 字节。');
		JumpUrl(-1);
	}elseif ($email && !eregi("[-a-z0-9_\.]+\@([0-9a-z][-a-z0-9_]+\.)+[a-z]{2,3}$",$email)) {
		ShowMsg ('您的邮箱地址填写不规范!<br><br>您可以不必填写此项;否则,请正确填写您的常用邮箱地址。');
		JumpUrl(-1);		
	}elseif ($oicq && !ereg("^[0-9]{5,14}$",$oicq)) {
		ShowMsg ('您的 OICQ 号码填写不规范!<br><br>您可以不必填写此项;否则,请正确填写您的 OICQ 号码。');
		JumpUrl(-1);
	}elseif ($page && !eregi("^http://",$page)) {
		ShowMsg ('您的主页填写不规范!<br><br>您可以不必填写此项;否则,请确保您的主页地址以“http://”开头。');
		JumpUrl(-1);
	}elseif (($content = trim($content))=='') {
		ShowMsg ('您的留言内容不能为空!<br><br>请重新填写。');
		JumpUrl(-1);
	}elseif (strlen(stripslashes($content))>$cfg[max_byte]) {
		ShowMsg ('您的留言内容太长了!<br><br>您要把留言本撑爆呀?');
		JumpUrl(-1);
	}else {
		if ( trim($oicq)=='' ) $oicq="未知";
		if ( trim($page)=='' ) $page='http://';
		$content  = safe_input($content);
		$gender   = ($gender)  ? 1:0;
		$hide     = ($hide)    ? 1:0;
		$emote    = ($emote)   ? intval($emote) : 0;
		$face     = ($face)    ? intval($face)  : 1;
		$time     = time();

		$newdata  = "<? die() ?>|$time|$hide|$name|$gender|$email|$page|$oicq|$face|$emote||$content||$ip|$os||";
			//			  0        1     2      3      4      5     6      7     8    9  [10]  11  [12]13  14 15
			//其中 10,12, 15 保留
			//     16, 17 回复

		if(writetofile(DATA_PATH.$time.".php", $newdata) && writetofile( DATA_LIST_FILE,"$time\n",'a+')){
			ShowMsg('<b>恭喜您!</b> 留言成功。感谢你对我们的支持,谢谢!',MSG_INF,array('[ <a href=index.php>返回留言本</a> ]','<a href=index.php?MOD=write>还有话说,继续留言</a>') );
			JumpUrl('index.php', 4);
		}else{
      		ShowMsg('留言失败!您的留言没有被存储。',MSG_SQL);
      	}
		setcookie('outTime',time());
	    //setcookie('msgName','');
	   	//setcookie('msgMail','');
   		//setcookie('msgOicq','');
		//setcookie('msgPage','');
		setcookie('msgContent','');
	}
} else {
	
	if($ipban){//禁用 IP
		ShowMsg('您的 IP 地址禁止发言,请与管理员联系。'.$ip);
	}else{
		titlebar('签写留言');
?>



<table border=0 cellpadding=0 cellspacing=0 width=730 class=TextBox_1>
   <form method=POST action="index.php?MOD=write" id=form1 onsubmit="return vaildForm();">
<tr>
<td rowspan=4 class=Border_L></td>
<td height=1 colspan=3 class=bgLine></td>
<td rowspan=4 class=Border_R></td>
</tr>
<tr>
<td height=8 colspan=3></td>
</tr>
<tr>
<td width=199 align=center>
<img id=imgFace height=100 width=0 alt="个人形象代表" src="">
<p>
<select id=selFace onchange="document.images['imgFace'].src='images/face/' +options[selectedIndex].value+ '.gif';" size=1 name="face" style="width:110px">
</select> </p>
<p>性别: <select size=1 name=gender>
<option value=1 selected>帅哥</option>
<option value=0>美眉</option>
</select> </p>
<p><a href=index.php?MOD=help&SUB=face target=_blank>显示所有头像列表</a> </p>
<p><a href=index.php?MOD=help&SUB=code target=_blank>UBB 代码使用帮助</a> </p>
<p><b>
    UBB 代码:<a title=" 什么是 UBB 代码?" href=index.php?MOD=help#help9 target=help><?=$words["switch"]["{$cfg[board_ubb]}"] ?></a>
<br>媒体播放:<a title=" 什么是媒体播放?" href=index.php?MOD=help#help10 target=help><?=$words["switch"]["{$cfg[board_img]}"] ?></a>
</b></td>
<td width=1 class=bgLine></td>

<td width=520 align=right>
<table border=0 cellpadding=2 cellspacing=2 width=97%>
<tr>
<td>姓 名:</td>
<td><input type=text class=text name=name size=24 maxlength=15 value="<?=$_COOKIE[msgName];?>"> <font class=insist>*</font></td>
<td nowrap>邮 件:</td>
<td><input type=text class=text name=email size=24 maxlength=50 value="<?=$_COOKIE[msgMail];?>"></td>
</tr>
<tr>
<td>主 页:</td>
<td><input type=text class=text name=page size=24 value="<? echo ($_COOKIE[msgPage]) ? $_COOKIE[msgPage] :"http://";?>"></td>
<td>OICQ :</td>
<td><input type=text class=text name=oicq size=24 maxlength=15 value="<?=$_COOKIE[msgOicq];?>"></td>
</tr>
<tr>
<td valign=top>表 情:</td>
<td colspan=3>
<?
	for($i=1; $i<=20; $i++) {
		echo "<input type=radio value=$i name=emote> <img src=images/emote/e$i.gif border=0 width=18 height=18 align=middle>\n";
      if(($i%8)==false) echo "<br>";
	}
?>
</td>
</tr>
<tr>
<td nowrap>密 语:</td>
<td colspan=3><input type=checkbox name=hide value=ON id=checkbox><label for=checkbox>悄悄话,只有斑竹可见呀。</label></td>
</tr>
<tr>
<td valign=top>留 言:</td>
<td colspan=3>
	<img onclick="insertCode('B')" alt=粗体文字 src=images/button/bold.gif align=absBottom width=23 height=22><img onclick="insertCode('I')" alt=斜体文字 src=images/button/italicize.gif align=absBottom width=23 height=22><img onclick="insertCode('U')" alt=下划线文字 src=images/button/underline.gif align=absBottom width=23 height=22><img onclick="insertCode('URL')" alt=插入超级链接 src=images/button/url.gif align=absBottom width=23 height=22><img onclick="insertCode('EMAIL')" alt=插入邮件 src=images/button/email.gif align=absBottom width=23 height=22><img onclick="insertCode('IMG')" alt=插入图片 src=images/button/img.gif align=absBottom width=23 height=22><!--img onclick="btn_swf()" alt=插入Flash动画 src=images/button/flash.gif align=absBottom width=23 height=22--><img onclick="insertCode('CODE')" alt=插入代码 src=images/button/code.gif align=absBottom width=23 height=22><!--img onclick=btn_rp() alt=插入REAL媒体 src=images/button/rp.gif align=absBottom width=23 height=22><img onclick=btn_mp() alt=插入MS媒体 src=images/button/mp.gif align=absBottom width=23 height=22-->
<select onchange="insertCode('FONT', this.options[this.selectedIndex].value)">
<option value=false selected>字体</option>
<option value="黑体">黑体</option>
<option value="楷体_GB2312">楷体</option>
<option value="宋体">宋体</option>
<option value="仿宋_GB2312">仿宋</option>
<option value="Arial">Arial</option>
<option value="Times New Roman">Times</option>
<option value="Courier New">Courier</option>
<option value="Century Gothic">Century</option>
</select>
<select onchange="insertCode('COLOR', this.options[this.selectedIndex].value)">
<option value=false selected>颜色</option>
<option style="COLOR: #FF0000" value="#FF0000">◆红色◆</option>
<option style="COLOR: #FFFF00" value="#FFFF00">◆黄色◆</option>
<option style="COLOR: #0000FF" value="#0000FF">◆蓝色◆</option>
<option style="COLOR: #00FF00" value="#00FF00">◆绿色◆</option>
<option style="COLOR: #CC0099" value="#CC0099">◆深紫◆</option>
<option style="COLOR: #009933" value="#009933">◆深绿◆</option>
<option style="COLOR: #FF9900" value="#FF9900">◆棕色◆</option>
<option style="COLOR: #00CC99" value="#00CC99">◆叶绿◆</option>
<option style="COLOR: #FF9999" value="#FF9999">◆粉红◆</option>
<option style="COLOR: #CC0066" value="#CC0066">◆深红◆</option>
<option style="COLOR: #33CCFF" value="#33AAFF">◆天蓝◆</option>
<option style="COLOR: #330099" value="#330099">◆深蓝◆</option>
<option style="COLOR: #333333" value="#333333">◆深灰◆</option>
</select>
<select onchange="insertCode(this.options[this.selectedIndex].value)">
<option value='' selected>特效</option>
<option value="FLY">飞行文字</option>
<option value="MOVE">滚动文字</option>
<option value="GLOW">光晕文字</option>
<option value="SHADOW">阴影文字</option>
</select>
<!--select onchange="insertCode('SIZE', this.options[this.selectedIndex].value)">
<option value=false selected>大小</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select> <select value=false onchange="xpos(this.options[this.selectedIndex].value)">
<option selected>位置</option>
<option value="center">居中</option>
<option value="right">靠右</option>
</select-->
	<textarea rows=10 name=content style="width: 410; height:200" onKeyDown="CountStrByte(this.form.content,this.form.total,this.form.used,this.form.remain);" onKeyUp="CountStrByte(this.form.content,this.form.total,this.form.used,this.form.remain);" onMouseUp="CountStrByte(this.form.content,this.form.total,this.form.used,this.form.remain);"><?=stripslashes($_COOKIE[msgContent]);?></textarea> <font class=insist>*</font></td>
</tr>
<tr>
<td>字 节:</td>
<td colspan=3 align=right>最多允许 <?=$cfg[max_byte] ?> 字节
<input type=hidden name=total value="<?=$cfg[max_byte] ?>" disabled>
已用字节: <input class=locktext type=text name=used size=3 maxlength=4 value=0 disabled>
剩余字节: <input class=locktext type=text name=remain size=3 maxlength=4 value="<?=$cfg[max_byte];?>" disabled>
<image width=20 height=0>
</td>
</tr>
<tr>
<td> </td>
<td colspan=3>
<input class=button type="submit" value=" 提交留言 " name="submit">
<input class=button type="reset" value=" 全部重写 ">
</td>
</tr>
	</form>
</table>

</td>
</tr>
<tr>
 <td height=8 colspan=3></td>
   </tr>
</table>
<Script language="JavaScript">
<!--

// 产生随机头像
var oOption;
var nMaxval = <?=$cfg[faces_num]?>;
var nSelected = Math.ceil( nMaxval * Math.random() )

document.images['imgFace'].src = "images/face/" + nSelected + ".gif";
document.images['imgFace'].height = 100;
document.images['imgFace'].width = 100;

oSelect = findObj('selFace');

for(var i=0; i<nMaxval; i++){
	oSelect.options[i] = new Option("用户头像 - " + (i+1), (i+1));
}
oSelect.options[nSelected-1].selected = true;


// 合法性检测
function erro(obj, msg ){ //v1.0
	alert(msg);
	obj.focus();
	obj.select();
	return false;
}

function execRE(re, content) {
	oReg = new RegExp(re, "ig");
	r = ( oReg.exec(content) ) ? true : false;
	return r;
}

function vaildForm(){
	var oForm = document.forms[0];
	if( oForm.name.value=="" || execRE("^[  ]+$", oForm.name.value) ){//单字节和双字节的空格
		erro( oForm.name, '您的昵称没有填写或填写不规范!' );
		return false;
	}else if( oForm.content.value=="" || execRE("^[  \n\t\r]+$", oForm.content.value) ){
		erro( oForm.content, '您的留言内容不能为空白!' );
		return false;
	}else if( oForm.content.value.length > <?=$cfg[max_byte];?> ){ // MAX_BYTE
		erro(oForm.content, '您的留言太长了,系统无法提交!' );
		return false;
	}else if( oForm.email.value && !execRE("[-a-z0-9_\.]+\@([0-9a-z][-a-z0-9_]+\.)+[a-z]{2,3}$", oForm.email.value) ){
		erro( oForm.email, '您的邮件地址填写不规范!' );
		return false;
	}else if( oForm.page.value && !execRE("^http://", oForm.page.value) ){
		erro( oForm.page, '您的主页地址填写不规范!' );
		return false;
	}else if( oForm.oicq.value && !execRE("^[0-9]{5,14}$", oForm.oicq.value) ){
		erro( oForm.oicq, '您的 OICQ 填写不规范!' );
		return false;
	}else{
		return true;
	}

}

//-->
</Script>
<Script language="JavaScript">
<!--

var LastCount =0;
function CountStrByte(Message,Total,Used,Remain){ // v 2.0 Count Byte
 var ByteCount = 0;
 var StrValue  = Message.value;
 var StrLength = Message.value.length;
 var MaxValue  = Total.value;

 if(LastCount != StrLength) { // 在此判断,减少循环次数
	for (i=0;i<StrLength;i++){
		ByteCount  = (StrValue.charCodeAt(i)<=256) ? ByteCount + 1 : ByteCount + 2;
      if (ByteCount>MaxValue) {
      	Message.value = StrValue.substring(0,i);
			alert("留言内容最多不能超过 " +MaxValue+ " 个字节!\n注意:一个汉字为两字节。");
         ByteCount = MaxValue;
         break;
      }
	}
   Used.value    = ByteCount;
   Remain.value  = MaxValue - ByteCount;
   LastCount     = StrLength;
 }
}

//-->
</Script>
<?
	Hemline();
	}
}


// ------------ +
function isIpBan($ip){
	global $ipbans;
	
	$ipban_reg = join('|',$ipbans);

	$search = array ('/[^\.\*\?\|0-9]/', '/\?/', '/\*/', '/\./', );
	$replace = array ('', '\d', '\d{1,3}', '\.');
	$ipban_reg = preg_replace ($search, $replace, $ipban_reg);

	return preg_match("/^($ipban_reg)$/i",$ip);

}
?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -