<?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> &gt; <a href="/guestbook.html">留言板</a> &gt; </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">
&nbsp;&nbsp;
<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实现的织梦后台留言板的更多相关文章

  1. dede织梦后台如何修改?如何增加删除菜单?(

    织梦后台的模板存放在dede/templets下面, 登陆首页模板login.htm, 进入首页模板index_body.htm, 左侧菜单模板index_menu2.htm. 修改左侧菜单dede/ ...

  2. 【网站管理1】_dede织梦后台如何发布文章

    对于新手可能不了解,dede织梦后台是如何发文章的.下面说下我的经验. 发布文章步骤 1.打开浏览器,推介谷歌,360极速浏览器,火狐浏览器,输入网站后台网址   出现如下图登入界面 2.输入账号密码 ...

  3. dede织梦后台页面及功能修改精简操作方法

    有很多使用织梦程序的站长往往都不喜欢使用默认的后台,但对于很多小白站长其实也不太懂程序的功能,而且如果显示或者开了过多的功能只会给自己带来困扰,所以小白站长都喜欢一些傻瓜式的后台操作界面.那么,ded ...

  4. DedeCms织梦后台管理员密码修改和忘记重置方法

    方法/步骤 打开dede_admin数据表: 进入你的MYSQL后台,然后在你的数据库名中,找到dede_admin这项如图,pwd下的值就是你的密码,织梦密码采取的是MD5加密,破解麻烦而且没有必要 ...

  5. 将dedecms织梦后台编辑器ckeditor更换为kindeditor,并高亮显示代码

    1.下载kindeditor,并解压到kindeditor目录,把kindeditor目录复制到dede的include目录下(ps:修改kindeditor-all-min.js.lang文件夹下z ...

  6. 织梦后台系统设置在PHP5.4环境中不能保存中文参数的解决方法

    在没用PHP5.4的环境做Dede后台的时候,织梦58一直没有遇到这个问题,昨天上传一个新的模版到空间去测试发现后台的系统基本参数设置中所有的中文内容都无法保存,关于这个问题,其实以前也听说过,知识一 ...

  7. Dedecms织梦后台登陆验证码不显示几种解决方法

    Dedecms织梦后台登陆验证码不显示几种解决方法,服务器所造成的验证码不显示问题看这里: 方法一:查看服务器的php版本是否与程序版本兼容(织梦程序PHP版本查看方法:打开www.96net.com ...

  8. DEDECMS织梦后台更新网站栏目无反应一键更新无响应的解决方法

    很多站长朋友反应,经常会遇到DEDECMS织梦后台更新网站栏目无反应和一键更新无响应的问题,这个问题的所在就是在于恢复了数据或者覆盖了织梦后台文件之后,点击一键更新完全没反应,或者生成栏目的时候其他都 ...

  9. 织梦后台更新,报错DedeCMS Error:Tag disabled:"php" more...

    网站采用织梦v5.7版本,在做过一次后台补丁更新后,再对网站“生成”操作的时候,无厘头出现报错“ 网站后台--系统--系统基本参数---其他选项 ---模板引擎禁用标签:php  ,把php删掉 保存 ...

随机推荐

  1. Hibernate 中update hql语句

    今天在MySQL中用hibernate测试update语句发现以下问题: update语句竟然不去作用: 表机构如下: create table student(sid int primary key ...

  2. Spring 注解@Transactional

    Spring事务的传播行为 在service类前加上@Transactional,声明这个service所有方法需要事务管理.每一个业务方法开始时都会打开一个事务. Spring默认情况下会对运行期例 ...

  3. 转:java中scanner类的用法

    声明:本文转自百度经验:http://jingyan.baidu.com/article/e73e26c0c74a1f24adb6a7fb.html Scanner是SDK1.5新增的一个类,可是使用 ...

  4. 谈谈 char *num="123";和char num[4]="123";的区别

    最近写程序的时候发现这样一个问题 #include<iostream> #include <string.h> using namespace std; void revers ...

  5. R语言,NA,NAN

    好莫名其妙的结果 is.na() #NA得不到的值is.nan() #NAN不可能的值is.infinite() #无穷的 x1<-NA x2<-0/0x3<-1/0 is.na(x ...

  6. Qt之QHeaderView自定义排序(获取正确的QModelIndex)

    简述 前几节中分享过关于自定义排序的功能,貌似我们之前的内容已经可以很好地解决排序问题了,但是,会由此引发一些很难发现的问题...比如:获取QModelIndex索引错误. 下面,我们先来实现一个整行 ...

  7. EF5&MVC4 学习1、创建新的Contoso University Application,并创建Model Class 生成对应的database

    参考:http://www.asp.net/mvc/tutorials/getting-started-with-ef-5-using-mvc-4/creating-an-entity-framewo ...

  8. Uva 10382 (区间覆盖) Watering Grass

    和 Uva 10020几乎是一样的,不过这里要把圆形区域转化为能够覆盖的长条形区域(一个小小的勾股定理) 学习一下别人的代码,练习使用STL的vector容器 这里有个小技巧,用一个微小量EPS来弥补 ...

  9. hdu4618 Palindrome Sub-Array dp+记忆化搜索 或者直接暴力

    题意就是找一个 左右上下对称的正方形矩阵. 连接:http://acm.hdu.edu.cn/showproblem.php?pid=4618 没想到记忆+dp和暴力就能水过... //记忆话搜索+d ...

  10. HDU 1058 Humble Numbers【DP】

    题意:给出丑数的定义,只含有2,3,5,7这四个素数因子的数称为素数.求第n个丑数. 可以先观察几个丑数得出规律 1:dp[1] 2:min(1*2,1*3,1*5,1*7) 3:min(2*2,1* ...