【项目】不用数据库实现留言板(用本地文件)
首页
添加留言
删除留言
项目结构
C:.
│ add.php
│ del.php
│ edit.php
│ index.php
│ msg.txt
│
└─imgbootstrap-combined.min.cssbootstrap.min.jsjquery-2.0.0.min.js
add.php
<?php
header('content-type:text/html;charset=utf-8');
date_default_timezone_set('PRC');
$filename="msg.txt";
$msgs=[];
//检测文件是否存在
if(file_exists($filename)){//读取文件中的内容$string=file_get_contents($filename);if(strlen($string)>0){$msgs=unserialize($string);}
}
//检测用户是否点击了提交按钮
if(isset($_POST['pubMsg'])){$username=$_POST['username'];$title=strip_tags($_POST['title']);$content=strip_tags($_POST['content']);$time=time();//将其组成关联数组$data=compact('username','title','content','time');array_push($msgs,$data);$msgs=array_merge($msgs);
$msgs=serialize($msgs);if(file_put_contents($filename,$msgs)){echo "<script>alert('留言成功!');location.href='./index.php';</script>";}else{echo "<script>alert('留言失败!');location.href='./index.php';</script>";}
}?><!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript" src="./img/jquery-2.0.0.min.js"></script>
<script type="text/javascript" src="./img/jquery-ui"></script>
<link href="./img/bootstrap-combined.min.css" rel="stylesheet" media="screen">
<script type="text/javascript" src="./img/bootstrap.min.js"></script>
<style></style>
</head>
<body>
<div class="container-fluid"><div class="row-fluid"><div class="span12"><div class="navbar navbar-inverse"><div class="navbar-inner"><div class="container-fluid"><a data-target=".navbar-responsive-collapse" data-toggle="collapse" class="btn btn-navbar collapsed"><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></a> <a href="#" class="brand">留言板</a><div class="nav-collapse navbar-responsive-collapse collapse"><ul class="nav"><li ><a href="./index.php">主页</a></li><li ><a href="#">编辑</a></li><li class="active"><a href="./add.php">添加</a></li></ul></div></div></div></div><h1>添加</h1><form action="#" method="post"> <label>用户名</label><input type="text" name="username" required /><label>标题</label><input type="text" name="title" required /><label>内容</label><textarea name="content" rows="5" cols="30" required></textarea><hr><input type="submit" class="btn btn-primary btn-lg" name="pubMsg" value="发布留言"/></form></div></div>
</div>
</body>
</html>
del.php
<?php
header('content-type:text/html;charset=utf-8');
date_default_timezone_set('PRC');
$filename="msg.txt";
$msgs=[];
//检测文件是否存在
if(file_exists($filename)){//读取文件中的内容$string=file_get_contents($filename);if(strlen($string)>0){$msgs=unserialize($string);}
}//获取文件的id值
$id=$_GET['id']-1;
//var_dump($msgs);
//释放数组中的值
unset($msgs[$id]);
//再将数组序列化
$msgs=array_merge($msgs);
$msgs=serialize($msgs);
file_put_contents($filename,$msgs);
if(@array_key_exists("$id",$msgs)){// echo "ok";echo "<script>alert('error');location.href='./index.php';</script>";
}
else{//echo "no";echo "<script>alert('OK');location.href='./index.php';</script>";
}?>
edit.php
<?php
header('content-type:text/html;charset=utf-8');
date_default_timezone_set('PRC');
$filename="msg.txt";
$msgs=[];
//检测文件是否存在
if(file_exists($filename)){//读取文件中的内容$string=file_get_contents($filename);if(strlen($string)>0){$msgs=unserialize($string);}
}
//检测用户是否点击了提交按钮
$id=$_GET['id'];
if(!empty($id)){$id=$_GET['id']-1;//echo "$id";
}
//对数组进行重新排序
$msgs=array_merge($msgs);if(isset($_POST['pubMsg'])){$msgs[$id]["username"]=$_POST['username'];$msgs[$id]["title"]=strip_tags($_POST['title']);$msgs[$id]["content"]=strip_tags($_POST['content']);$msgs[$id]["time"]=time();//将其组成关联数组$msgs=serialize($msgs);if(file_put_contents($filename,$msgs)){echo "<script>alert('修改成功!');location.href='./index.php';</script>";}else{echo "<script>alert('修改失败!');location.href='./index.php';</script>";}
}?><!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript" src="./img/jquery-2.0.0.min.js"></script>
<script type="text/javascript" src="./img/jquery-ui"></script>
<link href="./img/bootstrap-combined.min.css" rel="stylesheet" media="screen">
<script type="text/javascript" src="./img/bootstrap.min.js"></script>
<style></style>
</head>
<body>
<div class="container-fluid"><div class="row-fluid"><div class="span12"><div class="navbar navbar-inverse"><div class="navbar-inner"><div class="container-fluid"><a data-target=".navbar-responsive-collapse" data-toggle="collapse" class="btn btn-navbar collapsed"><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></a> <a href="#" class="brand">留言板</a><div class="nav-collapse navbar-responsive-collapse collapse"><ul class="nav"><li ><a href="./index.php">主页</a></li><li class="active"><a href="">编辑</a></li><li ><a href="./add.php">添加</a></li></ul></div></div></div></div><h1>编辑</h1><form action="#" method="post"> <label>用户名</label><input type="text" name="username" required value="<?php echo $msgs[$id]["username"]?>" /><label>标题</label><input type="text" name="title" required value="<?php echo $msgs[$id]["title"]?>" /><label>内容</label><textarea name="content" rows="5" cols="30" required ><?php echo $msgs[$id]["content"]?> </textarea><hr><input type="submit" class="btn btn-primary btn-lg" name="pubMsg" value="发布留言"/></form></div></div>
</div>
</body>
</html>
index.php
<?php
header('content-type:text/html;charset=utf-8');
date_default_timezone_set('PRC');
$filename="msg.txt";
$msgs=[];
//检测文件是否存在
if(file_exists($filename)){//读取文件中的内容$string=file_get_contents($filename);if(strlen($string)>0){$msgs=unserialize($string);}
}?><!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript" src="./img/jquery-2.0.0.min.js"></script>
<script type="text/javascript" src="./img/jquery-ui"></script>
<link href="./img/bootstrap-combined.min.css" rel="stylesheet" media="screen">
<script type="text/javascript" src="./img/bootstrap.min.js"></script>
<style></style>
</head>
<body>
<div class="container-fluid"><div class="row-fluid"><div class="span12"><div class="navbar navbar-inverse"><div class="navbar-inner"><div class="container-fluid"><a data-target=".navbar-responsive-collapse" data-toggle="collapse" class="btn btn-navbar collapsed"><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></a> <a href="#" class="brand">留言板</a><div class="nav-collapse navbar-responsive-collapse collapse"><ul class="nav"><li class="active"><a href="./index.php">主页</a></li><li ><a href="#">编辑</a></li><li ><a href="./add.php">添加</a></li></ul></div></div></div></div><?php if(is_array($msgs)&&count($msgs)>0):?><table class="table"><thead><tr><th>编号</th><th>用户</th><th>时间</th><th>内容</th><th>操作</th></tr></thead><tbody><?php $i=1;$j=1;$k=1;foreach($msgs as $val):?><tr class="success"><td><?php echo $i++;?></td><td><?php echo $val['username'];?></td><td><?php echo $val['title'];?></td><td><?php echo date("m/d/Y H:i:s",$val['time']);?></td><td><?php echo $val['content'];?></td><td><a href="edit.php?id=<?php echo $j++?>">编辑</a>|<a href="del.php?id=<?php echo $k++?>">删除</a></td></tr><?php endforeach;?></tbody></table><?php endif;?><a class="btn" href="./add.php">发表留言</a></div></div>
</div>
</body>
</html>
msg.txt
a:3:{
i:0;a:4:{s:8:"username";s:15:"我是最帅的";s:5:"title";s:21:"楼下的都没我帅";s:7:"content";s:26:"如题 我不想多说了 ";s:4:"time";i:1615168088;}
i:1;a:4:{s:8:"username";s:27:"我是用户我最帅的的";s:5:"title";s:18:"楼上都没我帅";s:7:"content";s:49:"如题 不想多说 我就是最刷的 啊哈哈";s:4:"time";i:1615168088;}
i:2;a:4:{s:8:"username";s:9:"摸鱼师";s:5:"title";s:12:"测试标题";s:7:"content";s:10:"moyushi.cn";s:4:"time";i:1615168088;}}
代码获取
方式一:
https://github.com/hiszm/EasyMessage.git
方式二:
公众号:扫一扫(@孙中明 关注)回复:6001
【项目】不用数据库实现留言板(用本地文件)相关推荐
- 不需要mysql的php博客_不用数据库,做留言板(PHP)
总共分三个部分:gorilla_main.php,gorilla.php,gorilla2.php gorilla_main.php 无标题文档 gorilla.php 无标题文档 $talk_bac ...
- php mysql留言板系统_PHP结合Mysql数据库实现留言板功能
先给大家展示下留言板效果图: 最近看了下PHP基础语法,就想利用这些基本东西实现留言板,也是对基础知识的一个巩固. 什么是留言板?一种可以用来记录,展示文字信息的载体. 现切入正题,说说本次留言板是怎 ...
- 【甄选靶场】Vulnhub百个项目渗透——项目十八:pwnlab_init(LFI本地文件包含,PHP伪协议,文件上传绕过,逆向分析)
Vulnhub百个项目渗透 Vulnhub百个项目渗透--项目十八:pwnlab_init(LFI本地文件包含,PHP伪协议,文件上传绕过,逆向分析) 靶场地址
- php 留言板项目 ajax,PHP Ajax留言板
本案例代码已经提供下载,点击这里! AJAX即"Asynchronous JavaScript and XML"(异步JavaScript和XML),AJAX并非缩写词,而是由Je ...
- 上传本地项目到gitee_用git上传本地文件到码云gitee的方法
首先登录码云 https://gitee.com/,注册一个账号,并登录账号. 1. 在码云上创建项目 在码云首页顶部,下图所示,右上角头像旁边的加号,鼠标移上去会显示下拉的,点击"新建项目 ...
- laravel本地项目上传服务器,laravel 上传本地文件到服务器
public function fileUpload(Request $request){ if (empty($request->file('file'))){ return $this-&g ...
- 织梦学习 织梦留言板【详解】
安装 1.安装服务器DEDEAMP 2.将DedeCMS-V5.7-UTF8-SP1/uploads文件夹内的所有内容粘贴到D:\DEDEAMP\DedeAMPZ\WebRoot\Default 3. ...
- Thinkphp5实战之留言板
本节主要通过Thinkphp5来实现简易留言板的基本功能.麻雀虽小,五脏俱全.从以下几个方面来进一步认识Thinkphp5,包括:目录布局.MCV的运用.对数据的增删改查.留言板功能逻辑等.打牢基础, ...
- ie浏览器读取本地文件并上传
接到个需求,需要js自己去取本地的文件并上传,要求不使用input标签 实现思路,先使用了ie的ActiveXObject方法,这里先需要把ie浏览器的安全设置都设为最低,再把项目地址拉到信任地址里. ...
最新文章
- html5 的a标签是可以拨电话的,通过其Href属性来实现
- php完美实现下载远程图片保存到本地(保存微信头像)
- Mybatis之SqlSession简析
- quarkus_Quarkus入门
- 现代软件工程讲义 2 开发技术 - 效能分析
- devexpress 高分辨率显示问题_144Hz高刷+曲屏超2k 蚂蚁电竞显示器ANT271QC 小白到专业电竞跳板...
- Groupon的电子邮件营销故事
- 一个Android健身APP源码(类似KEEP、FEEL、轻+、减约、薄荷等)
- # 图书馆网上销售系统(c#+sql server)
- C# 对目录中的文件名按照数字序号进行排序
- unity 打包一直停留在 detecting current sdk tools version
- 深度学习基础 - 余弦定理
- Ubuntu12.04 Skype4.2 提示Skype can't connect,安装Skype4.3
- Linux创建系统管理员用户
- MATLAB 字符串数组
- partial_sort 的使用
- Arrays.sort与Arrays.parallelSort区别
- 试商法 素数探求 c语言,连续合数探求
- 怎么主动发起话题_怎么跟喜欢的人聊天找话题?这8个技巧让你侃侃而谈
- 如何理解深度学习中的局部最优