[实例]我的留言板
** 文件结构:
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中的 所以要替换掉 */ function htmltocode($content){ $content=str_replace(" "," ",$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'){?>锐出
标题: | 用户: |
内容: |
1 or die("Invalid query: " . mysql_error());}include("head.php");?>
", str_replace(" ", " ", $content));}