用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删掉 保存 ...
随机推荐
- 运用CodeSmith Studio实现C#项目构架
http://www.cnblogs.com/iCaca/category/80950.html http://www.cnblogs.com/BlueBreeze/archive/2011/07/1 ...
- nginx之location配置
语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因 ...
- 理解Java的封装与接口
1.封装,即保留有限的外部接口(interface),隐藏具体实施细节. 2.封装在生活中很常见.比如下面是一个充电电筒: 一个用户即使不看说明书,也可以猜到这个电筒的操作: 开关和充电.这个电筒用一 ...
- mtk android lcm调试
参考MTK 文档LCM_Customer_document_MT6575.pdf The following shows the steps to add a new LCM driver: (1) ...
- leetcode:Insertion Sort List
Sort a linked list using insertion sort. 分析:此题要求在链表上实现插入排序. 思路:插入排序是一种O(n^2)复杂度的算法,基本想法就是每次循环找到一个元素在 ...
- 安全删除mysql binlog日志
命令行下执行 show binary logs; purge binary logs to 'mysql-bin.000070';
- hdu 4655 Cut Pieces 找规律
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4655 题意:给你一组整数,代表每个木块所能涂成的颜色种数(编号1~ai),相邻的两块所能涂成的颜色如果是一 ...
- Jquery源码中的Javascript基础知识(四)— jQuery.fn.init方法
$() 即调用了jQuery.fn.init方法 jQuery = function( selector, context ) { return new jQuery.fn.init( selecto ...
- UITableView中的(NSIndexPath *)indexPath
indexPath 用来指示当前单元格,它的row方法可以获得这个单元格的行号,section方法可以获得这个单元格所处的区域号
- Windows bat with adb
/********************************************************************* * Windows bat with adb * 说明: ...