请教PHP高手
php才是建站的主流,cms这类程序又是用的最多的,折腾网络这几年,见证了国内这些cms的发展,不过,占据主流的cms主要就是织梦,帝国,phpcms、千里QL这四种的,这四个程序都是开源程序。国内用户众多。同样,这四个程序自己都一直在折腾过。这其中的各个优缺点自己也还是有点体会的。
一、从美观性来说(以官方默认模版为准
phpcms发布的V9美观性无疑是最好的。界面整洁大方。织梦一直以来都是一个绿色模版,中规中矩,帝国无疑是最难看的了,并且自己必须修改默认模板才能让首页显示数据,不能像织梦和phpsms那样自动调用,这个对于很多新手有点难度。不过千里QL看上去也挺大气的不必过多解释。
二、从运行速度来说
千里QL的操作生成速度应该是最快的,架构的原因吧,phpcms的速度也不算慢,跟帝国不相上下,织梦这个程序就有点不尽人意了,无论是后台操作还是首页访问速度都不太理想,现在57的速度特别是首页访问速度还好,之前的版本很卡。这是织梦一直以来的硬伤。
三、从安全性来说
帝国的安全性给我的印象很深,这个cms的口号就是最安全的cms,事实也的确如此,帝国的程序基本上就没有什么安全漏洞更新。基本上一个版本发布之后下次更新就直到新的版本布。PHPcms、千里QL的安全行也还不错,没有爆出什么漏洞。织梦的更新貌似比较多些,安全性还要进一步提高,就像一些国外主机商就禁止用户使用织梦程序。
四、从功能来说
因为是cms程序,四家的功能都能满足大家的需要。
五、从实际使用体验来说
帝国的使用网站建设教程觉得还是很顺手的,修改模板,添加内容之类的也很简单,官方的帮助文件很完备,基本上遇不到什么程序运行中的未知故障。织梦的使用也很容易,各个功能一目了然,可能是程序更新比较快的原因,这个也很少碰到程序自己的乱七八糟的故障。最后就是这个老大难的phpcms了,这个程序官方的教程就很不完善,使用中经常遇到这样那样的问题,当然如果不对程序进行什么修改,使用还是能够让人满意的,千里QL他是针对营销在营销方面有自己的特长。
六、从漏洞BUG数量来说
以sebug的数据为准,织梦、phpcms、千里QL的漏洞都比较少,最好的无疑是帝国了,数年来只有几个漏洞但修复时间过长。
七、从官方服务与支持来说
对于免费用户其实四家的服务都是冷冷淡淡,其中以phpcms最差,发个帖子很少有回应的。因此对于phpcms需要自己多去琢磨。帝国的论坛还有不少人会热心回应,官方的教程也比较完备。千里QL一般都在群里技术支持。织梦的支持应该是最好的,这也是织梦的程序大家用的最多的原因。
八、从程序版本更新来说
织梦的版本更新无疑使最快的,一年更新两三次都很正常。帝国的更新速度就很慢了,都是按年计算的,一年多有时也不更新一次,当然这是建立在帝国自身本来就比较完备的基础上的,没什么漏洞,功能强大,没必要更新那么频繁。phpcms的更新一般也属正常偏慢型的。基本上深圳建网站要说的就是这些了。
首先可以明确的告诉你,DedeCMS的0day漏洞很多,而且也有一年多时间没有维护了。所以网上“流传”DedeCMS不安全、漏洞多是真实的情况,但这也洽洽说明dedecms在以前的确很火。
DedeCMS后台功能上是很齐全的,而且操作起来简单,用来二次开发也比较容易,所以在前几年受到不少套网站的程序员的热爱。正因为如此,再加上它是开源的,所以不少人发现漏洞后就开始攻击基于这款CMS的网站,每次一曝出漏洞,受到影响的网站很多。
考虑到现在官方也没维护了,所以建议大家选择其它CMS,比如PHPCMS在安全性上就给DedeCMS要好得多;而且现在PHP版本都比较高了,DedeCMS在这些高版本的PHP环境下运行会存在一些兼容性问题。
如果你的网站现在用的就是DedeCMS那建议作好安全加固措施,比如:
若网站没有交互,可以全站生成静态页,然后静态页单独部署,将后台和前台分离,这样别人无法攻击动态脚本;
源码目录权限严格控制,避免权限过大导致的非法文件可以上传或者可执行。
综上,DedeCMS不建议选择。
So I guess:
你是在刚开始学习PHP,对照一本参考书将代码打到一个PHP文件exa10-1php里,或者就是复制光盘的文件,然后运行,没有出现想要的效果。
By the way,一定是一本比较薄的国产PHP参考书
So,
1 如何解决该问题
问题出在PHP的配置文件phpini里,你的程序需要自动全局变量,否则$action, $name, $message都得改成$_POST['action']类似的形式。而你本地的设置应该是关的。
打开phpini修改register_globals = Off为register_globals = On
重启APACHE或者IIS
2 如何解决类似的偶尔的,时常的,非常凡人的,莫名其妙的各种各样的问题
扔掉这本国产参考书,忘记它教你的任何东西,就像从来没有发生过一样。
买一本四五百页的翻译过来的还算新的国外的PHP5参考书,从第0页看到最后一页
Then
多做实例,你就可以拿四五千了(北京)
请看我的初学者的参考
phpcms优点:
1 模块化安装,非常适合安装,拆卸,和拿到市场上去交易非常方便的。
2 灵活的标签语法,非常强大。
3 缓存做的非常优秀。几乎支持目前主流的几大缓存系统解决方案,file缓存,eaelerator缓存,memcache缓存,shmop缓存等
4 安全性也不错的。后台为了防范入侵,采用了cookie和session同时存在验证技术,才可以安全进入后台。
多次登录失败,开启验证码功能。防止机器人频繁猜口令。
5 数据库。在根目录下的include目录下,db_aessphpdb_mssqlphpdb_mysqlphp等,就照着他的方法,在增加几个也没问题的。
6兼容性。是在php4的基础上开发的,所以向下兼容性是不错的。在include/globalfuncphp 这个文件可以看到很多if(!function_exist()){},这些代码就是为了兼容php4相关函数。
phpcms缺点:
1 后台对应的模块的功能列表url,从数据库中读取的,也即是,安装的时候,将url写入数据库了。这个如果二次开发要修改的话,不是很方便的,最好是写到文件中,读取文件内容,方便开发者开发,而且也更容易维护,如果是出于安全考虑的话,不妨加下密也可以的。
2 分部式。 后台的某些功能模块,还是要调用各个应用模块的admin部分,相关*.inc.php文件. 如果我要把其中某个模块或应用独立出去部署到其他的服务器上,就不方便了。
3数据库设计问题,后台开设模型时,表的引擎只能是myIsam,而不能选择其他的,字段的类型,比如要开设一个字段为number,类型为int,但是在新增加的模型表中还是以varchar出现,而不是int,长度是默认的255modelfiled表,才发现该系统是将类型写到该表中了。
4加密/解密程序。目前已经在想相关安全网站已被爆以破解。这也不是什么新闻了。在开发中,关注下相关安全厂商发布的漏洞。
5 数据库抽象层。就以上提到的几个数据库文件。 db_mssqlphp db_mysqlphp db_aessphp 等对于数据库分布式,应该没问题的。 数据库抽象层处理数据比较快,且快平台更容易且更容易维护,这个是需要考虑的。
Dedecms功能实用,模板功能使用简单。
thinkphp是程序开发的框架,phpcms是现成的产品
如果你写程序够牛,自己有足够的时间,又对网站有特别的需求,可以基于thinkphp开发适合自己的产品
如果程序写得一般般,时间少,对网站没有特别需求,建议就用现成的CMS吧,现在网上很多CMS都很优秀,如PHPCMS、DEDECMS、ECMS等
自己个人写的程序也未必有他们好,毕竟人家是团队开发算是较成熟的产品
至于时间方面,用thinkphp开发就是多了写程序的时间,用phpcms跳过这一步直接做页面,你写一个系统需要多少时间自己可以衡量
现在的人做站大都是这样:如果有钱的就自己请人开发一套系统,没钱的就用现成的做二次开发,比如我是属于既没钱又没实力的,我的新站是选用phpcms开发的
我觉得你应该看看dedecms的试用环境,看看你的主机配置是不是和其环境一致!!!下面我给出其环境,你对照着看看,是否符合,假如都符合,那么就不是环境问题,这是你就应该找主机商问问,要求帮助解决!!!
DedeCMS 居于PHP和MySQL技术开发,可同时使用于Windows、Linux、Unix平台,环境需求如下:
1、Windows 平台:
IIS/Apache + PHP4/PHP5 + MySQL4/5
如果在windows环境中使用,建议用DedeCMS提供的DedeAMPZ套件以达到最佳使用性能。
2、Linux/Unix 平台
Apache + PHP4/PHP5 + MySQL3/4/5 (PHP必须在非安全模式下运行)
建议使用平台:Linux + Apache22 + PHP52 + MySQL50
3、PHP必须环境或启用的系统函数:
allow_url_fopen
GD扩展库
MySQL扩展库
系统函数 —— phpinfo、dir
4、基本目录结构
/
/install 安装程序目录,安装完后可删除[安装时必须有可写入权限]
/dede 默认后台管理目录(可任意改名)
/include 类库文件目录
/plus 附助程序目录
/member 会员目录
/images 系统默认模板存放目录
/uploads 默认上传目录[必须可写入]
/html 默认HTML文件存放目录[必须可写入]
/templets 系统默认内核模板目录
/data 系统缓存或其它可写入数据存放目录[必须可写入]
/special 专题目录[生成一次专题后可以删除special/indexphp,必须可写入]
5、PHP环境容易碰到的不兼容性问题
(1) data目录没写入权限,导致系统session无法使用,这将导致无法登录管理后台(直接表现为验证码不能正常显示);
(2) php的上传的临时文件夹没设置好或没写入权限,这会导致文件上传的功能无法使用;
(3) 出现莫名的错误,如安装时显示空白,这样能是由于系统没装载mysql扩展导致的,对于初级用户,可以下载dede的php套件包,以方便简单的使用。
这个问题的关键在于你要理解
foreach(Array('$_GET','$_POST','$_COOKIE') as $_request)
这里 $_request 实际上是一个二维数组 。本身$_GET $_POST $_COOKIE就是系统数组变量 通过 Aarry 将其动态生成为 二维数组。你可以用 is_array($_POST)来判断。
这句话 foreach遍历后组变量$_request实际上的值是 通俗将就是指向'$_GET','$_POST','$_COOKIE'这三个东西的 指针。
因此 再次遍历 就能把具体的 '$_GET','$_POST','$_COOKIE' 内容echo出来了
如果对二维数组遍历理解不透 去查查PHP手册。特别强调下 Aarry的用法。PHP中Array 是比较强大的。
对 系统变量数组有什么疑问 你可以 参考下 以下网址
http://wwwphpenet/manual/reservedvariablesphp
($_GET---通过 HTTP GET 方法传递的变量组成的数组。是自动全局变量。)
0条评论