博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[PHP100]留言板(一)
阅读量:5099 次
发布时间:2019-06-13

本文共 4361 字,大约阅读时间需要 14 分钟。

[实例]我的留言板

** 文件结构:

conn.php
// 数据库配置
add.php
// 操作文件
list.php
//列表文件

** 步骤

建立数据库:

phpmyadmin:

建立数据库(数据库名):php100_bbs

执行建表SQL:

message table:

********这里必须要注意了, 我原来都不知道, 闹笑话了*********

*********包裹 表名/字段名等等 的 根本 不是 引号(单引号/双引号都不是)***************
********* 那是 短浪线 (我靠, 这么奇葩!!!) ************
create table 'message'{
'id' tinyint(1) not null auto_increment,
'user' varchar(25) not null, # 留言者
'title' varchar(50) not null, # 留言的标题
'content' text not null,
'lastdate' date not null,
primary key('id'),
} engine=InnoDB default charset=utf-8 auto_increment=1;
*******
// 正确的SQL
CREATE TABLE IF NOT EXISTS `message` (
`id` tinyint(1) NOT NULL AUTO_INCREMENT,
`user` varchar(25) NOT NULL,
`title` varchar(50) NOT NULL,
`content` text NOT NULL,
`lastdate` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

(这是一个简单的实例, 所以数据库可以和PHP代码同时书写)

*** 下面 去建立连接php(conn.php)

<?php

//连接数据库

// @是忽略错误
$conn=@ mysql_connect("localhost","root","") or die("数据库不存在");
// 打开 数据库(传 库名)
mysql_select_db("ph100_bbs");
// 设置中文编码
// mysql_query("set names 'GBK'"); // 使用GBK中文编码

// echo $conn;

 

*** 之后, 建立增加留言的php(add.php)

执行 数据插入SQL:

<?php

header("content-type:text/html;charset=utf-8");

// 导入 连接数据库文件
include("conn.php");

// 最后, 这里用来处理提交
if (isset($_POST['sub'])) {
$sql="insert into message(id,user,title,content,lastdate) values('' ,'{$_POST['user']}','{$_POST['title']}' ,'{$_POST['content']}',now() )";
//注意看$_POST数组的调用格式,里面的索引还是需要用单引号的啊;
// 最后一个参数now() , 是mysql系统函数,到DBMS上才能正确执行;
// echo $sql;

$result=mysql_query($sql) // 成功后, 返回值>1

or die("Invalid query: " . mysql_error());

}

?>

<!-- 下面需要一个表单, 用于提交 -->

<form action="add.php" method="post">

用户:<input type="text" name="user"><br>
标题:<input type="text" name="title"><br>
内容:<textarea name="content"></textarea><br>

提交按钮<input type="submit" name="sub" value="发布留言">

</form>

 

***********list.php********************

<?php

header("content-type:text/html;charset=utf-8");
// echo "中文";

include("conn.php");

?>

<table width=500 border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#add3ef">

<?php
$query=mysql_query("select * from message");
while($line=mysql_fetch_array($query))
{
?>

<tr bgcolor="#eff3ff">

<td>标题:<?php echo $line["title"]; ?></td><td>用户:<?php echo $line["user"]; ?></td>
</tr>
<tr bgcolor="#ffffff">
<td colspan="2">内容:<?php echo $line["content"]; ?></td>
</tr>
<?php
}
?>
<!-- // 看到这里你就应该知道啦,嵌入的PHP现在就是放在这个括号组(<?PHP ?>)中才好使!!! -->
</table>

************************留言板  二 ********************************************** 

留言板二期知识点:(细节方面)

1. 提交表单Javascript验证
提交表单的时候, 可能有些字段不能为空,可以通过pHP,也可以通过js减轻服务器压力.
<form... name="myform" οnsubmit="return CheckPost();">

<script language="javascript">

function CheckPost(){
if(myform.user.value==""){
...
myform.user.focus();
return false;
}
if(myform.title.value.length<5){
...
}
...
}

2. str_replace替换函数

str_replace(被替换值, 替换的值, 被替换的内容)
/*
输入框中的回车\n不是html中的<br>;
输入框空格不是html中的&nbsp;
所以要替换掉
*/
function htmltocode($content){
$content=str_replace(" ","&nbsp;",$content);
$content=str_replace("\n","<br>",$content);
return $content;
}

3. htmlspecialchars格式化html

功能:将html格式化, 防止在输出时被浏览器执行
htmlspecialchars(要格式化的对象, 定义单双引号, 编码)

 

4. md5加密函数

md5(加密对象)

5. COOKIE的使用和登陆

cookie的机制

保存在客户端的

setcookie("TEST","value",3600,"/dir",".domains.com",true)

test:cookie名

value: cookie值
3600: 保存时间
/dir: 保存路径
.domains.com: 起效域名**
true: http发送

注意: 刚设置的cookie不能当场生效, 需要刷新一次

实例演示部分:

在原页面加入导航(head.php文件)

登陆页面:

一个form提交表单的页面,然后用cookie记录登陆状态.

location.href='login.php';"; // location是一种windows对象 // href是location对象的属性}if (isset($_POST['submit'])) { if ($_POST['id']=='admin') { $pw=md5($_POST['pw']); // md5加密的结果 是一样的. if ($pw=="6e0eba50b4fae046faad673c1e18a2d9") { setcookie("cookie","ok"); echo "";// 这句话是为了让页面刷新 // 所以重新载入当前页面 } }}// echo md5("l12abc");if($_COOKIE['cookie']!='ok'){?>
ID:
PW:
锐出

  

标题:
用户:
内容:

  

1 or die("Invalid query: " . mysql_error());}include("head.php");?>
用户:
标题:
内容:
提交按钮

  

", str_replace(" ", " ", $content));}

  

  

转载于:https://www.cnblogs.com/lizunicon/p/4136578.html

你可能感兴趣的文章
SDN第四次作业
查看>>
DM8168 DVRRDK软件框架研究
查看>>
django迁移数据库错误
查看>>
yii 跳转页面
查看>>
洛谷 1449——后缀表达式(线性数据结构)
查看>>
[最小割][Kruskal] Luogu P5039 最小生成树
查看>>
Data truncation: Out of range value for column 'Quality' at row 1
查看>>
Dirichlet分布深入理解
查看>>
(转)Android之发送短信的两种方式
查看>>
python第九天课程:遇到了金角大王
查看>>
字符串处理
查看>>
ECharts(Enterprise Charts 商业产品图表库)初识
查看>>
LeetCode Factorial Trailing Zeroes (阶乘后缀零)
查看>>
hdu 5402 Travelling Salesman Problem (技巧,未写完)
查看>>
[AIR] 获取U盘,打开U盘
查看>>
HtmlUnitDriver 网页内容动态抓取
查看>>
ad logon hour
查看>>
获得进程可执行文件的路径: GetModuleFileNameEx, GetProcessImageFileName, QueryFullProcessImageName...
查看>>
证件照(1寸2寸)拍摄处理知识汇总
查看>>
罗马数字与阿拉伯数字转换
查看>>