暂无 |

留言表单信息处理

submiting.php 用于处理留言者提交的留言信息。该页面分为两个部分:留言信息预处理与留言信息写入数据表。

留言信息预处理

留言信息预处理部分首先要对信息的安全性做处理,其次对有长度要求或格式要求(如 email 格式)的做处理:

// 禁止非 POST 方式访问
if(!isset($_POST['submit'])){
    exit('非法访问!');
}
// 表单信息处理
if(get_magic_quotes_gpc()){
    $nickname = htmlspecialchars(trim($_POST['nickname']));
    $email = htmlspecialchars(trim($_POST['email']));
    $content = htmlspecialchars(trim($_POST['content']));
} else {
    $nickname = addslashes(htmlspecialchars(trim($_POST['nickname'])));
    $email = addslashes(htmlspecialchars(trim($_POST['email'])));
    $content = addslashes(htmlspecialchars(trim($_POST['content'])));
}
if(strlen($nickname)>16){
    exit('错误:昵称不得超过16个字符串 [ <a href="javascript:history.back()">返 回</a> ]');
}
if(strlen($nickname)>60){
    exit('错误:邮箱不得超过60个字符串 [ <a href="javascript:history.back()">返 回</a> ]');
}

在安全性处理部分,对系统 get_magic_quotes_gpc() 参数做检测。默认 get_magic_quotes_gpc() 为开启状态(值为1),但也有可能为关闭状态。因此当没开启时,进行 addslashes 转义处理

除了 get_magic_quotes_gpc() 检测外,还做了 htmlspecialchars 特殊字符串转换及 trim 处理。

接下来对昵称及电子邮件的长度限制做了检测,注意在本例中没有做邮箱格式检测。如果需要做邮箱格式检测,请参考《PHP 用户注册》一文。

留言信息写入数据表

当留言信息处理完毕之后,可将数据写入对应的留言表:

// 数据写入库表
require("./conn.php");
$createtime = time();
$insert_sql = "INSERT INTO guestbook(nickname,email,content,createtime)VALUES";
$insert_sql .= "('$nickname','$email','$content',$createtime)";

if(mysql_query($insert_sql)){
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtm
l1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="Refresh" content="2;url=index.php">
<title>留言成功</title>
</head>
<body>
<p>
留言成功!非常感谢您的留言。<br />请稍后,页面正在返回...
</p>
</body>
</html>
<?php
} else {
    echo '留言失败:',mysql_error(),'[ <a href="javascript:history.back()">返 回</a> ]';
}
?>

这里是很普通的 mysql_query 函数数据写入操作。由于写入成功后要使用 html meta 的 Refresh 属性自动转向至留言主界面,因此在两段 PHP 代码间插入了 html 代码。

至此,整个 PHP 留言板程序的前台用户留言及展示部分已经完成。

0

java教程
php教程
php+mysql教程
ThinkPHP教程
MySQL
C语言
css
javascript
Django教程

发表评论

    评价:
    验证码: 点击我更换图片
    最新评论