使用MySQL和PHP创建一个公告板

目录

一、创建表

二、制作首页(创建主题以及显示列表)

三、制作各个主题的页面(输入回帖和显示列表)

四、制作消息的查询界面

五、制作读取数据库信息的原始文件

六、制作数据重置页面

七、效果图

八、问题

1、目前无法处理此请求HTTP ERROR 500

2、The requested URL was not found on this server


一、创建表

tbj0(主题表)

tbj1(消息表)

表tbj0的列

列名内容
group_c用于输入主题的组号。列为INT类型且具有自动连续编号功能
topic_c

用于输入主题名,数据类型为VARCHAR(30)

date_c用于输入创建主题的日期和时间。通过MySQL的NOW函数自动输入。数据类型为DATETIME
ip_c用于存储发送信息的客户端的IP地址。不显示在浏览器上,而是作为出现特殊情况时的记录保留下来。这里暂且将数据类型设置为20个字符的字符串类型VARCHAR(20)

表tbj1的列

列名内容
empid用于存储所有主题中的回帖的编号
name用于输入执行操作的人的姓名。数据类型为VARCHAR(30)
mess用于输入消息。数据类型为TEXT
date_c用于输入插入记录时的日期和时间,通过MySQL的NOW函数自动输入
group_c用于存储主题的编号。作为和表tbj0连接时的键使用。数据类型为INT
ip_c和表tbj0一样,用于存储发送信息的客户端的IP地址

二、制作首页(创建主题以及显示列表)

/**************bulletin_top.php*******************/<?php/******** 读取数据库信息等 **************/
require_once("data/db_info.php");/********** 连接数据库,选择数据库 ***********/
$s=new pdo("mysql:host=$SERV;dbname=$DBNM",$USER,$PASS);/************* 显示标题、图片等 **********/
print <<<eot1
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>"海贼王的页面</title>
</head>
<body style="background-color:silver">
<img src="pic/jk.gif" alt="小路飞">
<span style="color:purple;font-size:35pt">
海贼王的公告板!
</span><p>请点击要查看的主题编号</p>
<hr>
<div style="font-size:20pt">(主题列表)<div>
eot1;/**************** 获取客户端IP地址 ******************/
$ip=getenv("REMOTE_ADDR");/********** 如果主题名的变量$su_d有数据,则将其插入表tbj0***********/
$su_d=isset($_GET["su"])?htmlspecialchars($_GET["su"]):null;
if($su_d<>""){$s->query("INSERT INTO tbj0 (topic_c,date_c,ip_c) VALUES ('$su_d',now(),'$ip')");
}$re=$s->query("SELECT * FROM tbj0");
while($result=$re->fetch()){print <<<eot2<a href="bulletin.php?gu=$result[0]">$result[0] $result[1]</a><br>$result[2]创建<br><br>eot2;
}/************** 用于创建主题的表单,以及查询页面的链接 *************/
print <<<eot3<hr><div style="font-size:20pt">(创建主题)</div>请在这里创建新主题!<br><form method="GET" action="bulletin_top.php">新创建主题的标题<input type="text" name="su" size="50"><div><input type="submit" value="创建"></div></form><hr><span style="font-size:20pt">(查询消息)</span><a href="bulletin_search.php">点击这里查询</a><hr></body></html>
eot3;
?>

三、制作各个主题的页面(输入回帖和显示列表)

/**************bulletin.php*******************/<?php/*************** 读取数据库信息等 ***********/
require_once("data/db_info.php");/**************** 连接数据库,选择数据库 *********/
$s=new PDO("mysql:host=$SERV;dbname=$DBNM",$USER,$PASS);/*************** 获取主题的组号(gu),将其赋给$gu_d **********/
$gu_d=$_GET["gu"];/*************** 如果$gu_d中包含数字以外的字符,则停止处理**********/
if(preg_match("/[^0-9]/",$gu_d)){print <<<eot1输入了非法的值<br><a href="bulletin_top.php">请点击这里回到主题列表</a>
eot1;/************** 如果$gu_d中不包含数字以外的字符,则按普通值处理 **********/
}elseif(preg_match("/[0-9]/",$gu_d)){/************** 获取姓名和消息并删除标签 ****************/
$na_d=isset($_GET["na"])?htmlspecialchars($_GET["na"]):null;
$me_d=isset($_GET["me"])?htmlspecialchars($_GET["me"]):null;/************** 获取IP地址 **************************/
$ip=getenv("REMOTE_ADDR");/**************** 显示与主题组号(gu)相匹配的记录 **************/
$re=$s->query("SELECT topic_c FROM tbj0 WHERE group_c=$gu_d");
$result=$re->fetch();/***************** 创建显示主题内容的字符串$topic_c_com **********/
$topic_c_com="「".$gu_d." ".$result[0]."」";/**************** 输出主题显示的标题 *************/
print <<<eot2<!DOCTYPE html><html><head><meta charset="UTF-8"><title>海贼王 $topic_c_com 主题 </title></head><body style="background-color:silver"><div style="color:purple;font-size:35pt">$topic_c_com 主题!</div><br><div style="font-size:18pt">$topic_c_com 的消息</div>
eot2;/************ 如果输入了姓名($na_d),则将记录插入tbj1 **************/
if($na_d<>""){$re=$s->query("INSERT INTO tbj1 VALUES (0,'$na_d','$me_d',now(),$gu_d,'$ip')");
}/*************** 显示出水平线 ***************/
print "<hr>";/************** 按时间顺序显示回帖数据 *************/
$re=$s->query("SELECT * FROM tbj1 WHERE group_c=$gu_d ORDER BY date_c");$i=1;
while($result=$re->fetch()){print "$i($result[0]):$result[1]:$result[3] <br>";print nl2br($result[2]);print "<br><br>";$i++;
}print <<<eot3<hr><div style="font-size:18pt">请在这里向 $topic_c_com 中写消息</div><form method="GET" action="bulletin.php"><div>姓名 <input type="text" name="na"></div>消息<div><textarea name="me" rows="10" cols="70"></textarea></div><input type="hidden" name="gu" value=$gu_d><input type="submit" value="发送"></form><hr><a href="bulletin_top.php">返回主题列表</a></body></html>
eot3;/************ 当$gu_d中不包含数字也不包含数字以外的字符时的处理 *************/
}else{print "请选择主题。<br>";print "<a href='bulletin_top.php'>点击这里返回主题列表</a>";
}?>

四、制作消息的查询界面

/**************bulletin_search.php*******************/<?php/************ 读取数据库信息等 ****************/
require_once("data/db_info.php");/************* 连接数据库,选择数据库 **************/
$s=new PDO("mysql:host=$SERV;dbname=$DBNM",$USER,$PASS);/*************** 显示标题等 **************/
print <<<eot1<!DOCTYPE html><html><head><meta charset="UTF-8"><title>海贼王的查询页面</title></head><body style="breakground-color:aqua"><hr><div style="font-size:18pt">(查询结果如下)</div>
eot1;/****************** 获取查询字符串并删除标签 ************/
$se_d=isset($_GET["se"])?htmlspecialchars($_GET["se"]):null;/************* 如果查询字符串($se_d)中有数据,则执行查询处理 *********/
if($se_d<>""){/************ 查询的SQL语句,连接表tbj1和表tbj0 ********************/
$str=<<<eot2SELECT tbj1.empid,tbj1.name,tbj1.mess,tbj0.topic_cFROM tbj1JOIN tbj0ONtbj1.group_c=tbj0.group_cWHERE tbj1.mess LIKE "%$se_d%"
eot2;/************* 执行查询 ****************/
$re=$s->query($str);
while($result=$re->fetch()){print " $result[0] : $result[1] : $result[2] ($result[3])";print "<br><br>";
}
}/************ 用于输入查询字符串的页面,以及指向首页的链接 **************/
print <<<eot3<hr><div>请输入消息中含有的字符!</div><form method="GET" action="bulletin_search.php">查询字符串<input type="text" name="se"><div><input type="submit" value="查询"></div></form><br><a href="bulletin_top.php">返回主题列表</a></body></html>
eot3;?>

五、制作读取数据库信息的原始文件

/**************db_info.php*******************/<?php
$SERV="localhost";
$USER="root";
$PASS="root";
$DBNM="db1";?>

六、制作数据重置页面

/**************bulletin_reset.php*******************/<?php
require_once("data/db_info.php");
$s=new PDO("mysql:host=$SERV;dbname=$DBNM",$USER,$PASS);$s->query("DELETE FROM tbj0");
$s->query("DELETE FROM tbj1");
$s->query("ALTER TABLE tbj0 AUTO_INCREMENT=1");
$s->query("ALTER TABLE tbj1 AUTO_INCREMENT=1");print "将海贼王的表初始化了";?>

七、效果图

八、问题

1、目前无法处理此请求HTTP ERROR 500

找到对应版本的php.ini,将下面的值由off改为on,然后重启服务器。

display_errors = On
display_startup_errors = On

2、The requested URL was not found on this server

找到Apache文件下的httpd.conf配置文件,将下面的值由none改为all,然后重启服务器。

AllowOverride All

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/296690.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

商务电子邮件: 在WorkPlace中高效且安全

高效和安全的沟通是任何组织成功的核心。在我们关于电子邮件类型的系列文章的第二期中&#xff0c;我们将重点关注商业电子邮件在促进无缝交互中的关键作用。当你身处重要的工作场环境时&#xff0c;本系列的每篇文章都提供了电子邮件的不同维度的视角。 “2024年&#xff0c;全…

基于springboot实现房屋租赁管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现房屋租赁系统演示 摘要 房屋是人类生活栖息的重要场所&#xff0c;随着城市中的流动人口的增多&#xff0c;人们对房屋租赁需求越来越高&#xff0c;为满足用户查询房屋、预约看房、房屋租赁的需求&#xff0c;特开发了本基于Spring Boot的房屋租赁系统。 …

保健品wordpress外贸模板

保健品wordpress外贸模板 健康保养保健品wordpress外贸模板&#xff0c;做大健康行业的企业官方网站模板。 https://www.jianzhanpress.com/?p3514

防火墙状态检测和会话机制

FW对TCP&#xff0c;UDP和ICMP协议的报文创建会话

【如何解决一些常见的 Composer 错误的保姆级讲解】

&#x1f308;个人主页:程序员不想敲代码啊&#x1f308; &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家&#x1f3c6; &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提…

如何使用免费的ChatGpt3.5

如何使用免费的ChatGpt 最近免费的gpt3.5很多都不怎么行了实在是太给力了尾声 最近免费的gpt3.5很多都不怎么行了 原因是什么呢&#xff1f;因为openai已经取消了免费的5刀赠送&#xff0c;那么这些人手上的免费的sses-key 用完后&#xff0c;就基本上全军覆没了&#xff0c;再…

在 Amazon Timestream 上通过时序数据机器学习进行预测分析

由于不断变化的需求和现代化基础设施的动态性质&#xff0c;为大型应用程序规划容量可能会非常困难。例如&#xff0c;传统的反应式方法依赖于某些 DevOps 指标&#xff08;如 CPU 和内存&#xff09;的静态阈值&#xff0c;而这些指标在这样的环境中并不足以解决问题。在这篇文…

vscode + wsl1 搭建远程C/C++开发环境

记录第一次搭建环境过程。 搭建C/C开发环境有很多种方式&#xff0c;如 MinGW vscode&#xff08;MinGW 是GCC的Windows版本&#xff0c;本地编译环境&#xff09;SSH隧道连接 vscode&#xff08;远程Linux主机&#xff09;wsl vscode&#xff08;远程Linux环境&#xff09…

flink1.18源码本地调试环境

01 源码本地调试环境搭建 1. 从github拉取源码创建本地项⽬ https://github.com/apache/flink.git 可以拉取github上官⽅代码 https://github.com/apache/flink.git GitHub - apache/flink: Apache Flink 2. 配置编译环境 ctrlaltshifts &#xff08;或菜单&#xff09;打…

node.js的错误处理

当我打开一个不存在的文件时&#xff0c;错误如下&#xff1a; 在读取文件里面写入console.log&#xff08;err&#xff09;&#xff0c;在控制台中可以看到我的错误代码类型&#xff1a;文件不存在的错误代码 ENOENT。见更多错误代码---打开node.js官方API文档Error 错误 | N…

Redhat 7.9 安装dm8配置文档

Redhat 7.9 安装dm8配置文档 一 创建用户 groupadd -g 12349 dinstall useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba passwd dmdba二 创建目录 mkdir /dm8 chown -R dmdba:dinstall /dm8三 配置/etc/security/limits.conf dmdba soft nproc 163…

Springboot Thymeleaf 实现数据添加、修改、查询、删除

1、引言 在Spring Boot中使用Thymeleaf模板引擎实现数据的添加、修改、查询和删除功能&#xff0c;通常步骤如下&#xff1a; 在Controller类中&#xff0c;定义处理HTTP请求的方法。创建Thymeleaf模板来处理表单的显示和数据的绑定。 2、用户数据添加 1、 在Controller类中…

【javaScript】DOM编程入门

一、什么是DOM编程 概念&#xff1a;DOM(Document Object Model)编程就是使用document对象的API完成对网页HTML文档进行动态修改&#xff0c;以实现网页数据和样式动态变化的编程 为什么要由DOM编程来动态修改呢&#xff1f;我们就得先理解网页的运行原理&#xff1a; 如上图&a…

达梦配置ODBC连接

达梦配置ODBC连接 基础环境 操作系统&#xff1a;Red Hat Enterprise Linux Server release 7.9 (Maipo) 数据库版本&#xff1a;DM Database Server 64 V8 架构&#xff1a;单实例1 下载ODBC包 下载网址&#xff1a;https://www.unixodbc.org/ unixODBC-2.3.0.tar.gz2 编译并…

C++的并发世界(六)——互斥解决数据共享冲突

0.数据共享的问题 在多个线程中共享数据时。需要注意线程安全问题。如果多个线程同时访问同一个变量。并且其中至少有一个线程对该变量进行了写操作。那么就会出现数据竞争问题。数据竞争可能会导致程序崩溃,产生来定义的结果,或者得到错误的热果。为了避免数据竞争问题。需要…

Java快速入门系列-1(Java概述)

第一章&#xff1a;Java概述 1.1 Java的发展历程1.2 Java的特点与优势1.2.1 特点1.2.2 优势 1.3 Java生态系统介绍1.4 Java在当前技术领域的应用案例 1.1 Java的发展历程 Java语言由Sun Microsystems公司于1995年推出&#xff0c;由James Gosling领导的Green Team小组研发而成…

SpringCloud - 如何本地调试不会注册到线上环境(Nacos)?

问题描述 有时候我们需要本地调试注册到 Nacos 上&#xff0c;但是会影响线上服务的 Feign 请求打到本地导致不通影响了线上业务。 原因分析 一般最传统的解决方案就是修改本地 bootstrap.yml 的 spring.cloud.nacos.discovery.namespace spring:application:name: app-serv…

【调度工具】Azkaban用户手册

目录 一、概述 1.1 Azkaban 是什么 1.2 Azkaban 特点 1.3 Azkaban 与 Oozie 对比 功能 工作流定义 工作流传参 定时执行 资源管理 工作流执行 工作流管理 1.4 Azkaban 运行模式及架构 Azkaban 三大核心组件 Azkaban有两种部署方式 Azkaban Web Server Azkaban …

基于Python深度学习的中文情感分析系统(V2.0)

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

docker版Elasticsearch安装,ik分词器安装,用户名密码配置,kibana安装

1、安装es和ik分词器 创建映射目录并赋予权限&#xff1a; mkdir -p /docker_data/elasticsearch/conf mkdir -p /docker_data/elasticsearch/data mkdir -p /docker_data/elasticsearch/plugins chmod -R 777 /docker_data/elasticsearch编写配置文件&#xff1a; vi /dock…