当前位置: 首页 > news >正文

php mysql制作留言板_[PHP] PHP+MYSQL留言板制作

PYTHON学习先告一段落,最近一直在研究PHP,刚好最近看到留言板制作,所以整理了点自己的心得写了出来,供大家参考

PS:附件有代码包供大家下载.

系统环境:    WAMP

IDE:         NETBEANS

SQL工具:     NAVICAT

显示效果

如图:

9364039de4d14c31fe432f93b1bb7a17.png

d6c88ffd716c558f9bba600d7215b7ad.png

abf17f409c0435aa6c5796c58f57a6cd.png

c660a89f405dfbb0456d9982778ab858.png

1.导入MYSQL数据:

将如下SQL语句导入库,假定库名称为bbs,这里保证库与表字段的编码都为UTF-8模式

-------------------------------------------

CREATE TABLE `message` (

`id` tinyint(1) NOT NULL auto_increment,

`user` varchar(25) NOT NULL,

`title` varchar(50) NOT NULL,

`content` tinytext NOT NULL,

`lastdate` date NOT NULL,

PRIMARY KEY  (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

--------------------------------------------

2.部分PHP代码

add.php

------------------------------------------------

//加载conn.php文件

include("conn.php");

//加载head.php文件

include("head.php");

//提交表单到数据库

if($_POST['submit']){

$sql = "insert into message(id,user,title,content,lastdate) " .

"values('','$_POST[user]','$_POST[title]','$_POST[content]',now())";

mysql_query($sql);

echo "";

}

?>

function CheckPost() {

if (myform.user.value==""){

alert("请填写用户名");

myform.user.focus();

return false;

}

if (myform.title.value.length<5){

alert("标题不能少于5个字符");

myform.title.focus();

return false;

}

if (myform.content.value==""){

alert("必须要填写留言内容");

myform.content.focus();

return false;

}

}

用户:

标题:

内容:

------------------------------------------------

head.php

-------------------------------------------------

添加留言 | 浏览留言 | 登陆


-------------------------------------------------

list.php

-------------------------------------------------

//加载conn.php文件

include("conn.php");

//加载head.php文件

include("head.php");

//设置分页值为5

$pagesize=5;

//取得除域名外后面完整的地址路径

$url=$_SERVER["REQUEST_URI"];

//取得该固定键值[path][query]的url数组

$url=parse_url($url);

//print_r($url);

//取得url的[path]路径值

$url=$url[path];

//取得test表信息

$numq =  mysql_query("select * from message");

//取得test表内容的行数

$num = mysql_num_rows($numq);

//判断是否能取到page参数值

if($_GET[page]){

//将该值传给pageval

$pageval=$_GET[page];

//计算page值,供SQL语句使用

$page=($pageval-1)*$pagesize;

//等价于 $page = $page.',' 意思就是将page参数值与,连接起来

$page.=",";

}

//判断数据库条目总数大于页数,显示分页

if($num > $pagesize){

//判断上一页和下一页的值若小于0,则按照0处理

if($pageval<=1)

$pageval=1;

//显示分页

echo "共 $num 条".

//.(...).用来连接变量名

" 上一页 下一页";

}

?>

$sql = "select * from message order by id desc limit $page $pagesize";

$query = mysql_query($sql);

while($row=mysql_fetch_array($query)){

?>

标题:=$row[title]?> 用户:=$row[user]?>内容: echo htmtocode($row[content]); ?>时间:=$row[lastdate]?>

}

?>

-------------------------------------------------

conn.php

--------------------------------------------------

//登录MYSQL数据库

$conn = @ mysql_connect("localhost", "root", "") or die("数据库链接错误");

//进入BBS库

mysql_select_db("bbs", $conn);

//使用UTF-8中文编码传输数据流

mysql_query("set names 'UTF8'");

//修改空格和回车编码为HTML可识别编码

function htmtocode($content){

$content = str_replace("\n","
", str_replace(" ", " ", $content));

return $content;

}

?>

--------------------------------------------------

login.php

---------------------------------------------------

//加载conn.php文件

include("conn.php");

//判断是否退出,并标记cookie为out,返回登录页

if($_GET[out]){

setcookie("cookie","out");

echo "";

}

//提交表单判断登录ID是否为admin,密码是否匹配'PHP'的MD5值,并标记cookie为ok

if($_POST[id] =='admin'){

$pw=md5($_POST[pw]);

if ($pw=='e1bfd762321e409cee4ac0b6e841963c'){

setcookie("cookie","ok");

//刷新登录页面使cookie标记值生效.

echo "";

}

}

//加载head.php文件

include("head.php");

//提交表单判断cookie标记值不为ok,则显示登录页,否则显示退出页

if($_COOKIE['cookie']!='ok'){

?>

function Checklogin(){

if (myform.id.value ==""){

alert("请填写登录名");

myform.id.focus();

return false;

}

if (myform.id.value !=="admin"){

alert("用户名错误");

myform.id.focus();

return false;

}

if (myform.pw.value ==""){

alert("密码不能为空");

myform.pw.focus();

return false;

}

}

}

用户名:

密  码:

}else{

?>

退出

}

?>

---------------------------------------------------

相关文章:

  • phpstom 驼峰插件_Phpstorm 插件
  • django mysql 2059_(2059,“身份验证插件'caching_sha2_password'”)在Django上运行与MYSQL数据库连接的服务器时...
  • tp5怎么生成短链接_TP5 生成二維碼
  • python中sys模块下载_python模块:sys模块
  • mysql mybatis批量删除_Mybatis批量删除和更新,中文注释插件
  • mysql启动错误1455_PL/SQL“ ORA-14551: 无法在查询中执行 DML 操作”解决
  • ubuntu安装mysql集群_Ubuntu 20.10单机安装MySQL 8.0.22 NDB集群
  • java序列化工具类_java对象序列化及反序列化SerializeUtils工具类
  • java dispatchevent_这段程序的单击事件不能执行,点击后出现如下错误:at java.awt.Component.dispatchEventImpl(Unknown Sou...
  • java kerberos配置_为kerberos配置Storm
  • java nodelist 快速排序_数据结构的实践心得(归并排序和快速排序:mergeSort、quickSort)...
  • java xml setdoctype_集合Set映射一对多(使用xml文件)
  • java dofinalize_Java finalize方法使用
  • java调用ecdh_Jecc(java椭圆曲线加密库)学习笔记及ECDH实现
  • java雷达_Java编写有关雷达问题,哪位高手帮个忙,谢谢~~~
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 【笔记】你不知道的JS读书笔记——Promise
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • Android 控件背景颜色处理
  • CEF与代理
  • create-react-app做的留言板
  • Django 博客开发教程 8 - 博客文章详情页
  • javascript从右向左截取指定位数字符的3种方法
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • PHP 7 修改了什么呢 -- 2
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 读懂package.json -- 依赖管理
  • ​渐进式Web应用PWA的未来
  • #define用法
  • (1)(1.9) MSP (version 4.2)
  • (16)Reactor的测试——响应式Spring的道法术器
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (8)STL算法之替换
  • (zhuan) 一些RL的文献(及笔记)
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (附源码)ssm高校实验室 毕业设计 800008
  • (十六)串口UART
  • .gitignore文件_Git:.gitignore
  • .net 中viewstate的原理和使用
  • .NET 中创建支持集合初始化器的类型
  • .NET成年了,然后呢?
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .net生成的类,跨工程调用显示注释
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • .NET中统一的存储过程调用方法(收藏)
  • :“Failed to access IIS metabase”解决方法
  • [20140403]查询是否产生日志
  • [20190416]完善shared latch测试脚本2.txt
  • [Arduino学习] ESP8266读取DHT11数字温湿度传感器数据
  • [bzoj 3124][sdoi 2013 省选] 直径
  • [Codeforces] probabilities (R1600) Part.1
  • [CSS] - 修正IE6不支持position:fixed的bug
  • [C语言][PTA基础C基础题目集] strtok 函数的理解与应用
  • [ERROR] ocp-server-ce-py_script_start_check-4.2.1 RuntimeError: ‘tenant_name‘