PHP留言板开发

PHP留言板开发

留言板是网站中比较常用的工具,通过开发留言板我们将可以熟悉数据库的简单操作,真正开始编写一个多文件的PHP项目。

同时,在这次项目开发的过程中,我还第一次见识了什么是多种语言混编,加深了对“PHP是一种脚本语言的理解”。

首先让我来梳理一下编写留言版所需要的知识:

1、学会操作mysql数据库的基本知识,学会建表以及对表进行简单的增删改查;

2、学会使用自定义函数,以及简单的逻辑语句;

3、<from></form>标签的使用;

4、\n  需要被替换;

5、静态网页基础;(没有的话先用dreamweaver生成代码)

6、Cookie的使用;

截止十月七日,我已经实现了添加留言,查看留言,登陆,md5加密四个操作。下面我将讲解这四个方面的实现过程:

先把代码呈上:

文件:add.php(添加留言)

?php

//include_once ('conn.php');

include_once ('head.php');

if(isset($_POST['submit']) &&$_POST['submit']){

    $sql = "insert into text (id,uid,title,contect)values('','$_POST[uid]','$_POST[title]','$_POST[contect]')";

    $result=mysql_query($sql)or die(mysql_error());

    if($result){

    echo "发表成功";

    }

}

?>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<!-- TemplateBeginEditable name="doctitle" -->

<title>无标题文档</title>

<!-- TemplateEndEditable -->

<!-- TemplateBeginEditable name="head" -->

<!-- TemplateEndEditable -->

<style type="text/css">

<!--

body {

background-color#99FF00;

}

-->

</style></head>

<form action ="add.php" method = "post" name = "myform" onsubmit ="return CheckPost();" >

用户:<input type ="text" size ="10" name ="uid"/><br>

标题:<input type ="text" name ="title"/><br/>

用户:<textarea rows="10" cols="80" name ="contect"></textarea><br/>

<input type ="submit" name="submit" value="发布消息"/>

</form>

<script type="text/javascript">

function CheckPost(){

if(myform.uid.value=="")

{

alert("请填写用户");

myform.uid.focus();

return false;

}

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

 

alert("请填写标题");

myform.uid.focus();

return false;

}

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

alert("输入的字符不能少于5个");

return false;

}

}

</script>

关键代码:

function CheckPost(){

if(myform.uid.value=="")

{

alert("请填写用户");

myform.uid.focus();

return false;

}

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

 

alert("请填写标题");

myform.uid.focus();

return false;

}

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

alert("输入的字符不能少于5个");

return false;

}

}

(判断输入是否合乎条件;)

文件:conn.php(访问mysql数据库)

<?php

$conn = @mysql_connect("localhost","root","") or die("连接错误");

mysql_select_db("nettext",$conn);

mysql_query("set names 'GBK'");//使用GBK中文编码;

 

function htmToCode($contect) {

$contect = str_replace("\n""<br>", str_replace(" "," ",$contect));

return $contect;

}

//优化:用系统函数屏蔽关键字

?>

 

 

文件:list.php(显示留言)

<?php error_reporting(0);?>

 

<?php

//include ("conn.php");

include ("head.php");

?>

 

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

<?php

 @$sql = "select * from text" or die(mysql_errno());

 $query = mysql_query($sql) or die(mysql_error());

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

?>

<tr bgcolor = "#eff3ff">

<td>标题: <?php echo  $row[title]?>   用户:<?php echo $row[uid]?></td>

</tr>

<tr bgcolor = "#ffffff">

<td>内容:<?php echo htmToCode($row[contect])?></td>

</tr>

<?php

 } 

?>

</table>

文件:login.php(实现登陆)

<?php error_reporting(0);?>

<?php

include ("head.php");

//include ("conn.php");

//echo md5('admin');

if($_GET[out]){

setcookie("cookie","out");

echo "<script language = \"javascript\">location.href='login.php';</script>";

}

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

$pw=md5($_POST(password));

if($pw=="21232f297a57a5a743894a0e4a801fc3"){

setcookie("cookie","ok");

echo "<script language = \"javascript\">location.href='login.php';</script>";

}

}

echo $_GET['cookie'];

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

?>

<script type="text/javascript">

function Checklogin(){

if(myform2.uid.value==""){

 

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

myform.uid.focus();

return false;

}

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

alert("请填写密码");

myform.password.focus();

return false;

}

}

//同一个工程的表单名

</script>

<form action = "" method = "post" name = "myform2" onsubmit = "return Checklogin();">

I  D:<input type ="text" name = "uid" /><br>

密码:<input type ="password" name = "password" />

<input type ="submit" name ="submit" value ="登陆"/>

</form>

<?php

 }else {

?>

<a href='?out = login'>退出<input type ="text" name = "exit" /></a>

<?php

 } 

?>

关键代码:

Cookies:setcookie("cookie","ok");(设置cookieok表示登陆)

            setcookie("cookie","out");(设置cookieout表示登出

 

 

文件:head.php(网页上方“添加留言”、“浏览留言”、“登陆”)

<?php

 

include ("conn.php");

?>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<!-- TemplateBeginEditable name="doctitle" -->

<title>无标题文档</title>

<!-- TemplateEndEditable -->

<!-- TemplateBeginEditable name="head" -->

<!-- TemplateEndEditable -->

<style type="text/css">

<!--

body {

background-color#99FF00;

}

-->

</style></head>

<b><a href = "add.php">添加留言          </a><a href = "list.php">浏览留言             </a>|<a href ="login.php">登陆</a> </b>

<hr />

 

其次是效果图:

 

 
PHP留言板开发_第1张图片
 
PHP留言板开发_第2张图片
 

 
PHP留言板开发_第3张图片
 

 

 

最易出现的错误:

1、


PHP留言板开发_第4张图片
  

解决此问题的关键代码:



  

2

 





 
 
 Fatal error
: Cannot redeclare htmtocode() (previously declared in D:\wamp\www\workplace\Borad1004\conn.php:6) in D:\wamp\www\workplace\Borad1004\conn.php on line 9

原因:改文件存在两个include(“”),且其中一个include(“”)所include的文件包含其另一个include(“”)

如:



  



  

解决方法:去掉add.php中的include(‘conn.php’);——对最后结果没有任何影响

<!--EndFragment-->

你可能感兴趣的:(PHP,后台,留言板)