爱飞 发表于 2015-2-16 00:24:38

PHP网站制作之用PHP来制造评论体系

用C语言重新编写,包括可以访问数据库。他将这些程序和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程序。     有甚么成绩请与我接洽:http://www.webjx.com web@webjx.com


  咱们在实践做的过程当中很是复杂的,但愿人人好好研讨一下,给增补多点功效。本法式须在PHP and mySQL的情况下运转。有三个文件:comments.php, 是用来显示[评论的, commentadd.php, 用来处置评论内容的, and commentform.html 经由过程FROM来提交评论。

  1.起首创立一个数据库,假如已创立则创立一个合适前提的表:
  CREATE TABLE `comtbl` (
  `postID` INT NOT NULL AUTO_INCREMENT ,
  `postTITLE` TEXT NOT NULL ,
  `posterNAME` TEXT NOT NULL ,
  `posterEMAIL` TEXT NOT NULL ,
  `postTIME` TIMESTAMP NOT NULL ,
  `postTXT` TEXT NOT NULL ,
  PRIMARY KEY ( `postID` )
  );

  评论检查页:COMMENTS.PHP,详细内容为(有效户名和暗码的在实践任务中要改动):
$dbcnx = mysql_connect("localhost", "username", "password");
mysql_select_db("comments");
接上去需求对表停止查询,而且把ID 按Descending: 按次排序:

  $result = mysql_query("SELECT * FROM comtbl ORDER BY postID DESC");
if (!$result) {
echo("<b>Error performing query: " . mysql_error() . "</b>");
exit();
}

  在这里由于要读出很多多少笔记录,所以用轮回来读,详细法式以下:
while ($row = mysql_fetch_array($result) ) {
$msgTxt = $row["postTXT"];
$msgId = $row["postID"];
$SigName = $row["posterNAME"];
$SigDate = $row["postTIME"];
$msgTitle = $row["postTITLE"];
$url = $row["posterEMAIL"];

  如今到了最关头的一步了,也是坚苦的一步: 由于在这里用到MySQL's TIMESTAMP 函数 (功效是可以主动的饿把工夫添加到一个表中),而且需求获得工夫的字符串,利用字符串函数substr() ( $yr 暗示年, $mo 暗示月, 等等):

$yr = substr($SigDate, 2, 2);
$mo = substr($SigDate, 4, 2);
$da = substr($SigDate, 6, 2);
$hr = substr($SigDate, 8, 2);
$min = substr($SigDate, 10, 2);
  还需求对上述代码的功效加以扩大来完成12或24小时暗示或用 AM和PM来暗示高低午,代码以下:

  if ($hr > "11") {
$x = "12";
$timetype = "PM";
$hr = $hr - 12;
}else{
$timetype = "AM";
}

  别的,当评论者如果留下Email 的话,咱们可以在这里来创立一个毗连完成接洽发评论的人.代码以下:

  if (!$url) {
$url = "#";
}else{
$stat = $url;
$url = "mailto:" . $url . "";
}

  最初,咱们可以按行来显示数据,而且封闭轮回,终究的显示代码以下:

  echo("<p><b>$msgTitle</b>
  $msgTxt<br>
  <div align=right>$hr:$min $timetype | $mo/$da/$yr | $msgId, <a href='$url'>$SigName</a></div></p>");

}
  <p><b>Message Title</b>
  Text within the message, blah blah<br>
  <div align=right>Hour:Minute AM/PM | Month/Day/Year | Message ID, <a href='mailto:test@test.com'>Name with email link</a></div></p>

  表单处置的法式: COMMENTADD.PHP

  起首咱们设置一些变量,然后经由过程表单把变量取得的数据提交到后台数据库中,而且请记住用户名和暗码。

  $assume = $_POST['assume'];
  $posterEMAIL = $_POST['postemail'];
  $postTXT = $_POST['posttxt'];
  $posterNAME = $_POST['poster'];
  $postTITLE = $_POST['posttitle'];

if ($assume == "true") {

$dbcnx = mysql_connect("localhost", "username", "password");

mysql_select_db("comments");

$sql = "INSERT INTO comtbl SET posterNAME='$posterNAME', posterEMAIL='$posterEMAIL',
postTXT='$postTXT', postTITLE='$postTITLE'";

if (mysql_query($sql)) {
echo("<P>Your comment has been added</P>");

} else {
echo("<P>Error adding entry: " . mysql_error() . "</P>");
}
}

  提交了本人的评论以后还要有跳转的功效,上面的Javascript代码就能够完成跳转到指定的页面。

<script language=javascript>
<!--
location.href="comments.php";
//-->
</script>

  上面是详细的COMMENTFORM.HTML代码,经由过程上面的内容,可让宣布评论者宣布评论,然后经由过程提交可以把数据提交到commentadd.php外面来完成数据的在线提交。

<form action="commentadd.php" method=post>
<input type="text" name="poster" size="23" value="name"><br />
<input type="text" name="posttitle" size="23" value="name"><br />
<input type="text" name="postemail" size="23" value="user@email.com"><br />
<textarea cols=44 rows=6 name="posttxt" size=24 wrap="VIRTUAL">message<br />
<input type=hidden name=assume value=true>
<input type="submit" value="submit">

  上面是处置评论的代码 comments.php:
<?
$dbcnx = mysql_connect("localhost", "username", "password");
mysql_select_db("comments");

$result = @mysql_query("SELECT * FROM comtbl ORDER BY postID DESC");
if (!$result) { echo("<b>Error performing query: " . mysql_error() . "</b>");
exit();
}

while ($row = mysql_fetch_array($result) ) {
$msgTxt = $row["postTXT"];
$msgId = $row["postID"];
$SigName = $row["posterNAME"];
$SigDate = $row["postTIME"];
$msgTitle = $row["postTITLE"];
$url = $row["posterEMAIL"];
$yr = substr($SigDate, 2, 2);
$mo = substr($SigDate, 4, 2);
$da = substr($SigDate, 6, 2);
$hr = substr($SigDate, 8, 2);
$min = substr($SigDate, 10, 2);

if ($hr > "11") {
$x = "12";
$timetype = "PM";
$hr = $hr - 12;
}else{
$timetype = "AM";
}
if (!$url) {
$url = "#";
}else{
$stat = $url;
$url = "mailto:" . $url . "";
}

echo("<p><b>$msgTitle</b> $msgTxt<br><div align=right>
$hr:$min $timetype | $mo/$da/$yr | $msgId, <a href='$url'>$SigName</a></div></p>");
}

?>
  上面是 commentadd.php:
<?
$assume = $_POST['assume'];
$posterEMAIL = $_POST['postemail'];
$postTXT = $_POST['posttxt'];
$posterNAME = $_POST['poster'];
$postTITLE = $_POST['posttitle'];

if ($assume == "true") {

$dbcnx = mysql_connect("localhost", "username", "password");
mysql_select_db("comments");
$sql = "INSERT INTO comtbl SET posterNAME='$posterNAME', posterEMAIL='$posterEMAIL',
postTXT='$postTXT', postTITLE='$postTITLE'";
if (mysql_query($sql)) {
echo("Your comment has been added");
} else {
echo("Error adding entry: " . mysql_error() . "");
}
}

?>
<script language=javascript>
<!--
location.href="comments.php";
//-->
</script>

  全部法式到这就完了,想具有本人评论体系的站长请尝尝吧会PHP吗?会,我会把一加一的运算写在函数里,然后调用啦!

只想知道 发表于 2015-2-16 01:10:45

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

因胸联盟 发表于 2015-2-26 10:33:48

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

蒙在股里 发表于 2015-3-8 13:33:03

说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。

小女巫 发表于 2015-3-14 15:18:33

如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,

分手快乐 发表于 2015-3-21 10:54:11

实践是检验自己会不会的真理。

活着的死人 发表于 2015-4-4 06:59:21

基础有没有对学习php没有太大区别,关键是兴趣。

深爱那片海 发表于 2015-4-7 05:47:45

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

柔情似水 发表于 2015-4-12 18:29:26

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。

飘灵儿 发表于 2015-4-14 07:06:46

,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。

admin 发表于 2015-4-14 07:30:12

有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。

小妖女 发表于 2015-4-30 22:39:28

php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)

莫相离 发表于 2015-5-4 12:01:56

做为1门年轻的语言,php一直很努力。

兰色精灵 发表于 2015-5-6 16:56:26

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

金色的骷髅 发表于 2015-6-14 00:55:53

要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。

变相怪杰 发表于 2015-6-16 03:19:41

其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。

飘飘悠悠 发表于 2015-7-10 03:36:28

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

愤怒的大鸟 发表于 2015-7-11 02:59:47

Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81

冷月葬花魂 发表于 2015-7-14 14:21:03

php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
页: [1]
查看完整版本: PHP网站制作之用PHP来制造评论体系