首页

添加留言

删除留言

项目结构

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

【项目】不用数据库实现留言板(用本地文件)相关推荐

  1. 不需要mysql的php博客_不用数据库,做留言板(PHP)

    总共分三个部分:gorilla_main.php,gorilla.php,gorilla2.php gorilla_main.php 无标题文档 gorilla.php 无标题文档 $talk_bac ...

  2. php mysql留言板系统_PHP结合Mysql数据库实现留言板功能

    先给大家展示下留言板效果图: 最近看了下PHP基础语法,就想利用这些基本东西实现留言板,也是对基础知识的一个巩固. 什么是留言板?一种可以用来记录,展示文字信息的载体. 现切入正题,说说本次留言板是怎 ...

  3. 【甄选靶场】Vulnhub百个项目渗透——项目十八:pwnlab_init(LFI本地文件包含,PHP伪协议,文件上传绕过,逆向分析)

    Vulnhub百个项目渗透 Vulnhub百个项目渗透--项目十八:pwnlab_init(LFI本地文件包含,PHP伪协议,文件上传绕过,逆向分析) 靶场地址

  4. php 留言板项目 ajax,PHP Ajax留言板

    本案例代码已经提供下载,点击这里! AJAX即"Asynchronous JavaScript and XML"(异步JavaScript和XML),AJAX并非缩写词,而是由Je ...

  5. 上传本地项目到gitee_用git上传本地文件到码云gitee的方法

    首先登录码云 https://gitee.com/,注册一个账号,并登录账号. 1. 在码云上创建项目 在码云首页顶部,下图所示,右上角头像旁边的加号,鼠标移上去会显示下拉的,点击"新建项目 ...

  6. laravel本地项目上传服务器,laravel 上传本地文件到服务器

    public function fileUpload(Request $request){ if (empty($request->file('file'))){ return $this-&g ...

  7. 织梦学习 织梦留言板【详解】

    安装 1.安装服务器DEDEAMP 2.将DedeCMS-V5.7-UTF8-SP1/uploads文件夹内的所有内容粘贴到D:\DEDEAMP\DedeAMPZ\WebRoot\Default 3. ...

  8. Thinkphp5实战之留言板

    本节主要通过Thinkphp5来实现简易留言板的基本功能.麻雀虽小,五脏俱全.从以下几个方面来进一步认识Thinkphp5,包括:目录布局.MCV的运用.对数据的增删改查.留言板功能逻辑等.打牢基础, ...

  9. ie浏览器读取本地文件并上传

    接到个需求,需要js自己去取本地的文件并上传,要求不使用input标签 实现思路,先使用了ie的ActiveXObject方法,这里先需要把ie浏览器的安全设置都设为最低,再把项目地址拉到信任地址里. ...

最新文章

  1. html5 的a标签是可以拨电话的,通过其Href属性来实现
  2. php完美实现下载远程图片保存到本地(保存微信头像)
  3. Mybatis之SqlSession简析
  4. quarkus_Quarkus入门
  5. 现代软件工程讲义 2 开发技术 - 效能分析
  6. devexpress 高分辨率显示问题_144Hz高刷+曲屏超2k 蚂蚁电竞显示器ANT271QC 小白到专业电竞跳板...
  7. Groupon的电子邮件营销故事
  8. 一个Android健身APP源码(类似KEEP、FEEL、轻+、减约、薄荷等)
  9. # 图书馆网上销售系统(c#+sql server)
  10. C# 对目录中的文件名按照数字序号进行排序
  11. unity 打包一直停留在 detecting current sdk tools version
  12. 深度学习基础 - 余弦定理
  13. Ubuntu12.04 Skype4.2 提示Skype can't connect,安装Skype4.3
  14. Linux创建系统管理员用户
  15. MATLAB 字符串数组
  16. partial_sort 的使用
  17. Arrays.sort与Arrays.parallelSort区别
  18. 试商法 素数探求 c语言,连续合数探求
  19. 怎么主动发起话题_怎么跟喜欢的人聊天找话题?这8个技巧让你侃侃而谈
  20. 如何理解深度学习中的局部最优

热门文章

  1. 赴日本留学的基本条件
  2. 手机游戏:崇尚简单至上和零碎娱乐的永恒价值
  3. 精彩回顾 |风丘科技亮相广州国际汽车测试技术展
  4. NLP-预训练模型-2018-Bert-解析:BertForMaskedLM
  5. Python+Opencv身份证号码区域提取及识别!
  6. [Linux] USB-Storage驱动 源码阅读笔记(一)
  7. python 天气预报制作_Python 制作语音天气预报播报程序
  8. 毕业季!清北毕业生都去哪了?
  9. 安全运营 splunk入门
  10. 条码软件(Barcode Software)的类别、常用的条码软件、条码扫描软件经验分享