当前位置: >首页>新闻列表>记录一个留言板块的开发过程
在网站建设的过程中,我们常常会用到留言板块。如果是要用第三方的的话,不是不可以;就是用起来的时候,不能得心应手。有些功能自己不需要的,第三方有,有些功能我们要的,第三方又没有。反正使用了几次之后,会发现挺闹心的。这里惠州网站建设给大家记录一个自己开发的留言板块。这里主要是功能实现部分的。因为模板这块的话,可以直接在网上搜索,太多了。
首先,我们要做的就是一个数据的提交部分。数据主要是通过ajax提交的,一般我们采用jquery的ajax。先看看我们的代码部分。
这个是我们的模板部分。其中立即获取的class就是enlargeShrink。然后我们看看我们的js代码,主要是过滤和提交部分的。
$(".enlargeShrink").click(function(){
$('.modal-loading').show(); //这个是遮挡部分,主要防止连续点击提交按钮用的。
var str= $("input[type='checkbox']:checked").map(function(){
return this.value;
}).get().join();
var applyName=$("#applyName").val();
var applyTel=$("#applyTel").val();
var applyWx=$("#applyWx").val();
var createtime=Date.parse(new Date()); //这里上面的几行是为了获取提交的数组准备的。
if(jsguolv(applyName)){
$("#applyName").val("");
alert("名字错误,请重新输入");
return false;
} //jsguolv是自定义的方法,主要是过滤xss的特殊字符准备的。这里是第一部js过滤。 默认的我们后台读取到数据,到存入数据库之前我们还要过滤一次数据。开发中,有一句话,永远不要相信客户提交的数据。这里说的客户主要是怕有心人专门搞渗透的。这里不扯远了。
if(jsguolv(applyWx)){
$("#applyWx").val("");
alert("微信错误,请重新输入");
return false;
} //这个方法同上面的问题。
if(applyWx && applyTel && applyName && str ){
var xdata={
'applyName':applyName,
'applyTel':applyTel,
'applyWx':applyWx,
'str':str,
'createtime':createtime
};
$.ajax({
type : 'post',
url:"/m.php/index/tijiao",
data:xdata,
//dataType : 'json', 这个不要打开,这里有坑,如果你对json不熟悉或者初学者,这个就不要用了容易造成返回fail错误。可是数据又都是对的。
success : function(res){
if(res==='suc'){
alert("感谢你的留言,我们将在最短时间内给你回信息。")
}else{
alert("提交失败,请通过qq或者微信联系我们工作人员。");
}
},
error: function(e){
alert("提交失败,请通过qq或者微信联系我们工作人员。");
}
});
}
$('.modal-loading').hide(); //隐藏遮挡,完成提交数据。
})
到这里,我们的js部分写好了。现在既然要获得提交的数据,我们可能有个要接收数据的地方,那么就是我们的后台代码。我们是这样写的。直接上代码。
if (Request::isPost()) {
$message=Db::name('message');
$datamessage=$message->where("ip",'=',$_SERVER['REMOTE_ADDR'])->find(); //从数据库中读取当前ip提交的信息,如果有就返回出来进入下一步,如果没有直接存入数据
if($datamessage !=null && (time()-$datamessage['createtime']<60)){
echo "1分钟内只能提交一次";
}else{
$arr=array(
'mingzi'=>Request::post('applyName','','strip_tags'),
'phone'=>Request::post('applyTel/d'),
'wx'=>Request::post('applyWx','','strip_tags'),
'message'=>Request::post('str','','strip_tags'),
'ip'=>$_SERVER['REMOTE_ADDR'],
'createtime'=>time()
); //记录从客户端提交过来的数据,像时间这些参数,不是必要的,有时候,我们会用服务器的时间为准。
$arr['mingzi']=guolv($arr['mingzi']);
$arr['wx']=guolv($arr['wx']);
$arr['message']=guolv($arr['message']);
//guolv是自定义方法,主要是过来特殊符号。像tp6默认有过滤的参数。但是保险起见,我们都会在写一个我们常见的过滤方法。比较小心无大错。
if($message->insert($arr)){
echo "suc";
}else{
echo "fail";
}
//如果你返回的也是我们这种 单纯字符串的标志的话,在客户端的哪里写的 dataType:json 这个就不要写了。不然就掉坑里面了
}
}
好了既然数据接收到了,也过滤好了,确定没有大问题了。我们就要存入到数据库中,当然,存入数据库的代码我们也写好了。这里要做的就是将数据库写出了。写数据库就很简单了。一般我们都是使用可视化工具,将对应的字段写出来就好了。
来源: 惠州网站建设 欣欣仿站