用pdo实现的织梦后台留言板
<?php
//ini_set("display_errors", "On"); include("data/common.inc.php");
if($action=='save')
{
$title = '无标题';
$tid = 0;
$mid = 1;
$uname = "guest";
$email = "";
$homepage = "";
$qq = "";
$face = array_rand(array('01','02','03','04','05','06','07','08','13','14','15','16','17','18'), 1);
$msg = trim($_POST['msg']);
$ip = $_SERVER['REMOTE_ADDR'];
$dtime = time();
$ischeck = 0;
if($msg=='') {
return rtn(0, '对不起,您的留言内容不能为空!');
} pdo_conn();
$sql = "INSERT INTO `{$cfg_dbprefix}guestbook`(title,tid,mid,uname,email,homepage,qq,face,msg,ip,dtime,ischeck) VALUES (:title,:tid,:mid,:uname,:email,:homepage,:qq,:face,:msg,:ip,:dtime,:ischeck)";
//echo $sql;
$st = $pdo->prepare($sql);
$st->bindParam(':title', $title);
$st->bindParam(':tid', $tid);
$st->bindParam(':mid', $mid);
$st->bindParam(':uname', $uname);
$st->bindParam(':email', $email);
$st->bindParam(':homepage', $homepage);
$st->bindParam(':qq', $qq);
$st->bindParam(':face', $face, PDO::PARAM_STR);
$st->bindParam(':msg', $msg, PDO::PARAM_STR, 1000);
$st->bindParam(':ip', $ip);
$st->bindParam(':dtime', $dtime);
$st->bindParam(':ischeck', $ischeck);
$exec_result = $st->execute(); if($exec_result){
return rtn(1, '您已成功发表留言,但需审核后才能显示!');
}else{
return rtn(0, '对不起,发表留言失败,请稍候再试!');
}
} $page = $_GET['p'];
$page = isset($page) ? $page:1;
$page = (int)$page;
$page_size = 10; pdo_conn(); //页数和记录数
$tsql = "select count(1) as c from `{$cfg_dbprefix}guestbook` where ischeck=1";
$result = $pdo->query($tsql);
$tlist = $result->fetchAll();
$total = $tlist[0]['c'];
if(0==$total%$page_size){
$page_number = (int)($total/$page_size);
}else{
$page_number = (int)($total/$page_size + 1);
} if($page>$page_number){
$page = $page_number;
} if($page<1){
$page = 1;
} $start = ($page-1)*$page_size;
$sql = "select * from `{$cfg_dbprefix}guestbook` where ischeck=1 order by id desc limit {$start},{$page_size}";
$result = $pdo->query($sql);
$list = $result->fetchAll(); if($page>1){
$up = $page - 1;
}else{
$up = 1;
}
if($page<$page_number){
$down = $page + 1;
}else{
$down = $page_number;
}
$last = $page_number; function pdo_conn(){
global $pdo, $cfg_dbhost, $cfg_dbname, $cfg_dbuser, $cfg_dbpwd;
if(empty($pdo)){
$pdo = new PDO("mysql:host={$cfg_dbhost};dbname={$cfg_dbname};", $cfg_dbuser, $cfg_dbpwd, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES'utf8';"));
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
return $pdo;
} function rtn($status, $msg, $data=''){
$result = array('status'=>$status, 'msg'=>$msg, 'data'=>$data);
echo json_encode($result);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>留言板</title>
<meta name="keywords" content="">
<meta name="description" content="">
<link href="public/style_art.css" rel="stylesheet" type="text/css">
<link href="public/common.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="header_warp">
<div class="layout solid header">
<span class="white"></span>
</div>
</div> <div class="layout solid marb10"> <div class="con_box"> <div class="con_l">
<div class="con_ltit">留言板</div>
<div class="con_ltxt"> <div class="con_lsub"><a href="#write">我要留言</a></div> </div>
</div> <div class="con_r">
<div class="con_rpos">当前位置:<a href="http://sgsj.maoming.gov.cn/">主页</a> > <a href="/guestbook.html">留言板</a> > </div>
<div class="con_rtxt">
<table class="ltable" width="100%" cellspacing="0" cellpadding="0" border="0" align="center">
<?php
foreach($list as $k=>$item){
$uname = "guest_".$item['id'];
$ip = $item['ip'];
$ip_arr = explode(".", $ip);
$ip = $ip_arr[0].".".$ip_arr[1].".*.*";
$dtime = $item['dtime'];
$dtime = date('Y-m-d H:i', $dtime);
$msg = $item['msg'];
$face = $item['face'];
if(empty($face)) $face = "01";
?>
<tbody>
<tr class="ltr">
<td width="160" align="center" class="ltd"><b><?php echo $uname; ?></b></td>
<td height="26" class="timetd ltd"><img width="16" height="16" src="public/images/time.gif"> 时间: <?php echo $dtime; ?></td>
</tr>
<tr>
<td width="160" align="center" class="lefttd" rowspan="2"><table width="160" cellspacing="2" cellpadding="1" border="0" align="center">
<tbody>
<tr>
<td height="80" align="center"><img border="0" src="public/images/<?php echo $face; ?>.gif"></td>
</tr>
<tr>
<td align="center" height="20">IP:<?php echo $ip; ?></td>
</tr>
</tbody>
</table></td>
<td class="msgtd"><?php echo $msg; ?></td>
</tr>
</tbody>
<?php
}
?>
</table>
<br />
<table width="100%" cellspacing="0" cellpadding="0" border="0" align="center" class="pagetable">
<tbody>
<tr>
<td height="28" align="center">
<div class="pagelistbox">
<a href="guestbook.php">首页</a> <a href="guestbook.php?p=<?php echo $up; ?>">上一页</a> <a href="guestbook.php?p=<?php echo $down; ?>">下一页</a> <a href="guestbook.php?p=<?php echo $last; ?>">尾页</a> 共 <?php echo $page_number; ?> 页/<?php echo $total; ?> 条留言 转到:<input id="page" size="4" maxlength="10" value="<?php echo $page; ?>" type="text"><input value="Go" id="goto" type="button">
</div>
</td>
</tr>
</tbody>
</table>
<br />
<form name="form1" action="guestbook.php" method="post">
<a name="write" id="write"></a>
<table width="100%" cellspacing="1" cellpadding="4" border="0" bgcolor="#dedede" align="center" class="writetable">
<input type="hidden" value="save" name="action">
<tbody>
<tr>
<td class="writetd" colspan="2"><b style="padding-left:5px;">发布留言:</b><a name="write"></a></td>
</tr>
<tr bgcolor="#ffffff">
<td width="10%" nowrap="" align="center"><font color="#FF0000">*</font>留言内容:<br>
(1000字内) </td>
<td height="2" align="left"><textarea class="textarea ipt-txt" id="msg" rows="5" name="msg"></textarea></td>
</tr>
<tr bgcolor="#ffffff">
<td nowrap="" align="center" colspan="2"><input type="button" class="btn-2" value="提 交" id="btnSubmit" maxlength="1000">
<input type="reset" class="btn-2" value="取 消" name="Submit2"></td>
</tr>
</tbody>
</table>
</form>
</div>
</div> </div> </div> </body>
</html>
<script type="text/javascript" src="templets/default/js/jquery-1.6.4.min.js"></script>
<script type="text/javascript">
window.onload = function(){
$("#msg").val(""); $("#goto").click(function(){
var page = $("#page").val();
if(!/^(\d+?)$/.test(page)){
$("#page").val("");
return alert("请输入数字!");
}
window.location.href = "guestbook.php?p=" + page;
}); $("#btnSubmit").click(function(){
var msg = $("#msg").val();
$.ajax({
type: "POST",
dataType: "json",
url: "guestbook.php?action=save",
data: "msg=" + msg,
success: function(json){
if(1==json.status){
$("#msg").val("");
alert(json.msg);
}else if(1==json.status){
alert(json.msg);
}else{
alert('对不起,发表留言失败,请稍候再试!');
}
},
error: function(data){
var response = data.responseText;
if(-1!=response.indexOf('zhuji.360.cn')){
return alert("您输入的留言内容含有危险字符,已被360拦截,请修改后重新输入!");
}
alert('对不起,发表留言失败,请稍候再试!');
}
});
});
}
</script>
Pdo::$instance->beginTransaction(); //开启事务
Pdo::$instance->rollBack(); //回滚
Pdo::$instance->commit(); //提交事务
用pdo实现的织梦后台留言板的更多相关文章
- dede织梦后台如何修改?如何增加删除菜单?(
织梦后台的模板存放在dede/templets下面, 登陆首页模板login.htm, 进入首页模板index_body.htm, 左侧菜单模板index_menu2.htm. 修改左侧菜单dede/ ...
- 【网站管理1】_dede织梦后台如何发布文章
对于新手可能不了解,dede织梦后台是如何发文章的.下面说下我的经验. 发布文章步骤 1.打开浏览器,推介谷歌,360极速浏览器,火狐浏览器,输入网站后台网址 出现如下图登入界面 2.输入账号密码 ...
- dede织梦后台页面及功能修改精简操作方法
有很多使用织梦程序的站长往往都不喜欢使用默认的后台,但对于很多小白站长其实也不太懂程序的功能,而且如果显示或者开了过多的功能只会给自己带来困扰,所以小白站长都喜欢一些傻瓜式的后台操作界面.那么,ded ...
- DedeCms织梦后台管理员密码修改和忘记重置方法
方法/步骤 打开dede_admin数据表: 进入你的MYSQL后台,然后在你的数据库名中,找到dede_admin这项如图,pwd下的值就是你的密码,织梦密码采取的是MD5加密,破解麻烦而且没有必要 ...
- 将dedecms织梦后台编辑器ckeditor更换为kindeditor,并高亮显示代码
1.下载kindeditor,并解压到kindeditor目录,把kindeditor目录复制到dede的include目录下(ps:修改kindeditor-all-min.js.lang文件夹下z ...
- 织梦后台系统设置在PHP5.4环境中不能保存中文参数的解决方法
在没用PHP5.4的环境做Dede后台的时候,织梦58一直没有遇到这个问题,昨天上传一个新的模版到空间去测试发现后台的系统基本参数设置中所有的中文内容都无法保存,关于这个问题,其实以前也听说过,知识一 ...
- Dedecms织梦后台登陆验证码不显示几种解决方法
Dedecms织梦后台登陆验证码不显示几种解决方法,服务器所造成的验证码不显示问题看这里: 方法一:查看服务器的php版本是否与程序版本兼容(织梦程序PHP版本查看方法:打开www.96net.com ...
- DEDECMS织梦后台更新网站栏目无反应一键更新无响应的解决方法
很多站长朋友反应,经常会遇到DEDECMS织梦后台更新网站栏目无反应和一键更新无响应的问题,这个问题的所在就是在于恢复了数据或者覆盖了织梦后台文件之后,点击一键更新完全没反应,或者生成栏目的时候其他都 ...
- 织梦后台更新,报错DedeCMS Error:Tag disabled:"php" more...
网站采用织梦v5.7版本,在做过一次后台补丁更新后,再对网站“生成”操作的时候,无厘头出现报错“ 网站后台--系统--系统基本参数---其他选项 ---模板引擎禁用标签:php ,把php删掉 保存 ...
随机推荐
- js获取当前时间,js时间函数
Js获取当前日期时间及其它操作,js时间函数 var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); ...
- SpringMVC上传文件以流方式判断类型附常用类型
// 此类中判断类型所截取的byte 长度暂不确定,请使用者测试过使用 package com.tg.common.other; import com.tg.common.tginterface.TG ...
- Django自定义模型(model)中的字段标签
方法一: 在编辑页面中,每个字段的标签都是从模块的字段名称生成的. 规则很简单: 用空格替换下划线:首字母大写.例如:Book模块中publication_date的标签是Publication da ...
- python 中的map 详解
python中的map函数应用于每一个可迭代的项,返回的是一个结果list.如果有其他的可迭代参数传进来,map函数则会把每一个参数都以相应的处理函数进行迭代处理.map()函数接收两个参数,一个是函 ...
- 标准类型内建函数 cmp()介绍
内建函数cmp()用于比较两个对象obj1 和obj2, 如果obj1 小于obj2, 则返回一个负整数,如果obj1 大于obj2 则返回一个正整数, 如果obj1 等于obj2, 则返回0.它的行 ...
- H5移动前端完美布局之padding
序上次的提到了H5移动前端完美布局之-margin百分比的使用margin-top(left,right,bottom)的百分比在移动页面布局中对上下左右距离的处理,攻下城外再攘城内,今天看看padd ...
- 自己实现字符串操作函数strlen(),strcat(),strcpy(),strcmp()
1.strlen()函数是求解字符串的有效长度的 1)非递归实现 size_t my_strlen(const char *str) { assert(str != NULL); //断言,保证指针 ...
- Linux C double linked for any data type
/************************************************************************** * Linux C double linked ...
- Java调优之jvm和线程的内存分析
本文来源于铁木箱子的博客http://www.mzone.cc 这几天因为自己开发的一个网站在768M内存的机器上撑不起100多个用户的运行,因为每个用户启用功能后,系统将为每个用户分配8个左右的独立 ...
- 【转】NSArray排序方法
原文网址:http://www.cnblogs.com/xiaobaizhu/archive/2013/06/05/3119983.html 从网上查的,非常方便的排序api,功能也很强大 1.sor ...