仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2616|回复: 18
打印 上一主题 下一主题

[学习教程] PHP网站制作之用PHP来制造评论体系

[复制链接]
爱飞 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-16 00:24:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
用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年  具体的记不清啦,囧。
小女巫 该用户已被删除
5#
发表于 2015-3-14 15:18:33 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
分手快乐 该用户已被删除
6#
发表于 2015-3-21 10:54:11 | 只看该作者
实践是检验自己会不会的真理。
活着的死人 该用户已被删除
7#
发表于 2015-4-4 06:59:21 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
深爱那片海 该用户已被删除
8#
发表于 2015-4-7 05:47:45 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
柔情似水 该用户已被删除
9#
发表于 2015-4-12 18:29:26 | 只看该作者
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
飘灵儿 该用户已被删除
10#
发表于 2015-4-14 07:06:46 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
admin 该用户已被删除
11#
发表于 2015-4-14 07:30:12 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
小妖女 该用户已被删除
12#
发表于 2015-4-30 22:39:28 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
莫相离 该用户已被删除
13#
发表于 2015-5-4 12:01:56 | 只看该作者
做为1门年轻的语言,php一直很努力。
兰色精灵 该用户已被删除
14#
发表于 2015-5-6 16:56:26 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
金色的骷髅 该用户已被删除
15#
发表于 2015-6-14 00:55:53 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
变相怪杰 该用户已被删除
16#
发表于 2015-6-16 03:19:41 | 只看该作者
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
飘飘悠悠 该用户已被删除
17#
发表于 2015-7-10 03:36:28 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
愤怒的大鸟 该用户已被删除
18#
发表于 2015-7-11 02:59:47 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
冷月葬花魂 该用户已被删除
19#
发表于 2015-7-14 14:21:03 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 13:27

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表