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吗?会,我会把一加一的运算写在函数里,然后调用啦! 这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己 最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。 说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。 如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了, 实践是检验自己会不会的真理。 基础有没有对学习php没有太大区别,关键是兴趣。 多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。 遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。 ,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。 有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。 php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会) 做为1门年轻的语言,php一直很努力。 写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。 要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。 其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
页:
[1]