今天是用这本书写PHP博客代码的第二天,第一天来说更多是在理顺建立博客的框架,了解它的思想,对着书码的很顺利,作者讲得很详细,值得注意的一些小问题是:$config_basedir是博客的URL地址,nl2br() 函数是在字符串中的每个新行 (\n) 之前插入 HTML 换行符 (<br />),其中的l不是1要注意。
第一天基本顺利,第二天却是一半时间在码代码,一半时间在改bug,我用的编译器是Adobe Dreamweaver,它只能显示有语法错误,却不能告诉你具体错在哪里,有时候编译器里显示没有错误在浏览器的显示却有错,只能自己去找。现在罗列一些值得关注的问题:
1.
You don't have permission to access /blogtastic/<br /><b>Notice</b>: Undefined variable: SCRIPT_NAME in <b>D:/WWW/blogtastic/viewentry.php</b> on line <b>65</b><br /> on this server
。。。网上有很多解决方案,我还没有找到能解决我的问题的。
2。关于分类链接,在index.php中有类似于这样一段代码
echo"<li><a href='viewentry.php?id=".$prevrow['id']."'>".$prevrow['subject']."</a></li>";
指向一个名为viewcat.php的页面,并通过id GET变量传递了分类的ID,所以在viewcat.php中应该添加一下代码:
require("config.php");
if(isset($_GET['id'])==TRUE){
if(is_numeric($id)==FALSE){
$error=1;
}
if($error==1){
header("Location:".$.config_basedir."/viewcat.php");
}else{
$validcat=$_GET['id'];
}
}else{
$validcat=0;
}
3.这里又涉及到重定向的问题, header("Location:".$.config_basedir."/viewcat.php");重定向就是自动跳转到网站上的另一个页面,有两种方法,一种是用JavaScript,但不是所有浏览器都支持,所以多数是使用HTTP头,任何浏览器都支持这种技术,但它只能在数据发送到客户端之前才能使用
4.关于锚点,链接到页面不同部分的方法,如:example.php#theory可以跳转到example.php页面的theory的锚点处,在example.php的某个地方应该有<a name="theory">的代码。
5.mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。因此应该用if语句进行判断返回。
6.验证请求URL,检查被修改的信息(如文章或评论的ID)的合法性。这里只验证GET变量,验证数值型的变量代码如下:
<?php
require("config.php")
if(isset($_GET['id']==TRUE){
if(is_numeric($_GET['id'])==FALSE){
$error=1;
}
if($error==1){
header("Location:".$config_basedir);
}else{
$validentry=$_GET['id'];
}
}
else{
$validentry=0;
}