📄 write.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 + -