这一讲主要是留言的后台提交。
一.将 html 文件修改为 php 文件
将 Comments.html 的后缀改为 .php,并且分离出头尾部分,这部分代码可以重复使用。
header.html 和 footer.html 都放在 includes 文件夹中
header.html:
在第12行,修改
留言板为
<?php echo $page_title; ?>完整代码为:
html>
<?php echo $page_title; ?>Toggle navigation
Project name
- Home
- About
- Contact
footer.html:
Comments.php:
在头部添加:
$page_title = '留言板';
include('includes/header.html');
?>
在尾部添加:
include('includes/footer.html');
?>
所以至此完整代码为:
$page_title = '留言板';
include('includes/header.html'); //包含头文件
?>
留言板
这里是留言板列表
Name
Email address
Comment
Submit
include('includes/footer.html'); //包含尾文件
?>
现在用浏览器打开 Comments.php ,可以看到和之前没有任何改变,说明你成功的修改为 php 文件。
二.与数据库进行连接
现在要连接数据库,使你的页面可以提交数据到数据库。
首先需要写一个数据库配置文件 mysqli_connect.php , 这个文件里定义你连接数据库的用户名、密码等信息,所以它非常的重要,通常都是放在你网站目录的上一级目录里,所以我们也要把它放到 Comments.php 的上一级目录里。
mysqli_connect.php:
DEFINE('DB_USER', 'user'); //你的数据库用户名
DEFINE('DB_PASSWORD', 'password'); //你的数据库密码
DEFINE('DB_HOST', 'localhost'); //数据库主机
DEFINE('DB_NAME', 'comments'); //数据库
//连接函数
$dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) OR die('Could not to MySQL:'.mysqli_connect_error());
?>
@ 标识符使得即使这句代码发生错误,也不会显现 Warning 错误信息,因为如果让出了你以外的任何人因为这个代码的错误而看到数据库的敏感信息都是不好的。
OR die 后面一句话表示,如果连接数据库出现问题,则显示自定义的错误信息。
数据库连接成功后,会返回一个数据库资源到 $dbc 上。
最后加上与数据库连接,插入数据的代码,以下为 Comments.php 的完整代码。
Comments.php
$page_title = '留言板';
include('includes/header.html'); //头文件
if(isset($_POST['submitted']))
{
//包含上一级目录的数据库连接文件
require_once('../mysqli_connect.php');
//获取用户的输入
$n = mysqli_real_escape_string($dbc, trim($_POST['inputName']));
$e = mysqli_real_escape_string($dbc, trim($_POST['inputEmail']));
$c = mysqli_real_escape_string($dbc, trim($_POST['inputComment']));
//插入语句
$q = "insert into comment_list(name, email, comment, comment_date) values('$n', '$e', '$c', now())";
//执行sql语句,同样需要在前头加上 @ 符号
$r = @mysqli_query($dbc, $q);
//如果提交成功,则弹出提示
if($r)
{
echo "";
}
//关闭数据库
mysqli_close($dbc);
}
?>
留言板
这里是留言板列表
Name
Email address
Comment
Submit
include('includes/footer.html'); //尾文件
?>
include 与 require 的区别:include加载进一个文件如果发生错误还会继续加载,而 require 会立即终止后续代码的解释。
form 表单的后台处理页面即为 Comments.php ,并且方式必须为post方式。
在表单的最后一项需要添加一个隐藏输入框,其值为TRUE,则在一开始判断是可用
if(isset($_POST['submitted']))
{
}
来判断。
mysqli_real_escape_string 函数转义 SQL 语句中使用的字符串中的特殊字符,可预防数据库攻击。
trim 函数去掉字符串两边多余的空格。
mysqli_query 函数执行 sql 语句,并返回一个数据库资源到 $r 上。
mysqli_close 函数是关闭数据库,虽然 php 的结束标签会自动关闭数据库,但书写上也是一个好习惯。
以下为页面完成的模样: