留言板功能
开发所用的工具
先连接数据库,位测试的留言准备好数据库存储环境
在创建表
对数据库的操作函数
这里操作完之后,要写一个html提交的表单来接受留言板的留言,用到dw工具
插入了这四个内容就自动生成了html代码,剩下的自己在修改修改,然后数据库连接上
php自带的一些全局变量
通过server就可以获取服务端的一些信息
这里就有需要获取的ip
然后开始对留言板的代码进行优化
这里就实现了留言的提交和输出功能,但这样的代码是不符合规范的
所以还有其他的文件,一个专门数据库的链接的代码,一个专门管理留言后台功能
这就诞生了config配置文件,连接数据库,只需要包含他即可
后台管理删除留言的文件
然后代码可以直接写成函数调用
只需要在代码最下面写这两个就可以调用函数里面的代码
然后留言板是可以上传图片的,这个不太好写,就可以直接调用富文本编译器
只需要下载编译器的文件代码,放到同一个目录,然后使用代码包含调用jike
引入编译器
内容哪里就变成了编译器
而引用了编译器,如果编译器有漏洞,造成的安全问题是编译器的漏洞,只能看编译器厂商升级修复,或者自己找对应的js代码修复。而不是自己写的代码造成的安全
但是自己写的代码并没有什么验证,也很容易出安全问题,比如存储型xss
全部代码
gbook.php
<form action="gbook.php" method="post"><!--指向传递数据的文件-->
<meta charset="utf-8">
用户名:<input type="text" name="username"><!--传参值-->
<br>
<br>
内容:<textarea name="content"></textarea>
<br>
<input type="submit" name="submit" id="submit" value="提交">
<br>
</form>
<?php
//数据库链接
include 'config.php';
function gbook_add($con){
$u=@$_POST['username'];//接受变量的值
if(isset($u)) {
$c = @$_POST['content'];
$i = @$_SERVER['REMOTE_ADDR'];//用户ip
$ua = @$_SERVER['HTTP_USER_AGENT'];//浏览器ua头
$sql = "insert into gbook(`username`,`content`,`ipaddr`,`uagent`) value('$u','$c','$i','$ua');";
if (mysqli_query($con, $sql)) {
echo "<script>alert('留言成功')</script>";
}
}
}
function show_gbbook($con){
$sql1="select * from `gbook`;";
$data1=mysqli_query($con,$sql1);
while($row=mysqli_fetch_row($data1)){
echo '<hr>';
echo '用户名'.$row[0].'<br>';
echo '内容'.$row[1].'<br>';
echo 'ip'.$row[2].'<br>';
echo 'ua头'.$row[3].'<br>';
}
}
gbook_add($con);
show_gbbook($con);
gbook_admin
<?php
include'../config.php';
$sql1="select * from `gbook`;";
$data=mysqli_query($con,$sql1);
while($row=mysqli_fetch_row($data))
{
echo '<hr>';
echo '用户名'.$row[0].'<br>';
echo '内容'.$row[1].'<br>';
echo 'ip'.$row[2].'<br>';
echo 'ua头'.$row[3].'<br>';
echo "<a href='gbook-admin.php?del=$row[0]'>删除</a>>";
}
if(isset($_GET['del'])){
$delstr=@$_GET['del'];
$sql2="delete from `gbook` where `username`='$delstr';";
if(mysqli_query($con,$sql2)){
echo "<script>alert('删除成功')</script>";
}else{
echo "<script>alert('删除失败')</script>";
}
}
ping
an