Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

怎样检验插件php代码错误!

[复制链接]
泡哥 发表于 2006-11-28 03:03:29 | 显示全部楼层 |阅读模式
今天实在空的发慌,没事写点插件编写经验,供大家探讨!

以前学VB有个错误调试的函数,当语句不规范或发生错误时可以自动提示检测。

php玩的不好,不是手误就是定义变量不标准,经常出现错误提示。

为了解决问题经常要查找错误代码,想了一个笨办法。那就是所见即所得。

利用DZ的showmessage()和cpmsg()自定义函数查找错误。

当发生变量定义丢失的情况下,可以使用这个方法检索。

例如:变量丢失错误
@include DISCUZ_ROOT.'./forumdata/cache/plugin_home.php';
我们有个插件变量是$_DPLUGIN['home']['vars']['cid']=array(1,2,3,4,5,6);
  1. if($_DPLUGIN['home']['vars']['cid']){
  2.    $pids = implode(',', $_DPLUGIN['home']['var'][cid]);
  3. }
复制代码


当然这个变量数组是存在的,但是细微的错误你不能发现,系统缺提示报错!

我们可以这样判断

  1. if($_DPLUGIN['home']['vars']['cid']){
  2.    $pids = implode(',', $_DPLUGIN['home']['var'][cid]);
  3.    showmessage($pids);
  4. }
复制代码


当然你说看到的系统信息是空白,那么下一步

  1. if($_DPLUGIN['home']['vars']['cid']){
  2.    $pids = implode(',', $_DPLUGIN['home']['var'][cid]);
  3.    showmessage($_DPLUGIN[home][var][cid]);
  4. }
复制代码


当你发现这个插件变量也是空白时,完全可以找到错误的来源。原来少了s

虽然这个例子十分简单,但是提示信息检查可以测试真假、数组、加上转义函数可以看到html的生成代码等等,我也试过检查sql语句的错误
呵呵,很多时候程序出错,页面根本不报警,而是直接空白一片,或许你就少了一个\或者是;也许是函数缺少必定的元素。这个方法都能检索出来!对于数据库调用出来的变量更能显示无疑!

或许这个对你有帮助,也许还有更好的办法!

评分

1

查看全部评分

AgFx 发表于 2006-11-28 03:05:15 | 显示全部楼层
支持一下~~!:)
回复

使用道具 举报

肯得基 发表于 2006-11-28 03:10:44 | 显示全部楼层
嘿嘿,泡哥的帖,我还有3楼
回复

使用道具 举报

freddy 发表于 2006-11-28 12:00:57 | 显示全部楼层
回复

使用道具 举报

xuesharp 发表于 2006-11-28 12:45:05 | 显示全部楼层
传说守中的泡哥????
回复

使用道具 举报

开心一生 发表于 2006-11-28 17:18:33 | 显示全部楼层
:) 对啊,有是空白一面又没提示,要找出原因确实辛苦
回复

使用道具 举报

sw08 发表于 2006-12-2 17:46:31 | 显示全部楼层
其实语法错误的话是绝对有提示的。

不过由于PHP无须声明变量,所以变量名错误一般不会有提示。个人感觉是方便之中的麻烦。
回复

使用道具 举报

showu 发表于 2006-12-7 11:43:56 | 显示全部楼层
呵呵,不错哦,好方法。
回复

使用道具 举报

 楼主| 泡哥 发表于 2007-1-17 22:22:20 | 显示全部楼层
原帖由 sw08 于 2006-12-2 17:46 发表
其实语法错误的话是绝对有提示的。

不过由于PHP无须声明变量,所以变量名错误一般不会有提示。个人感觉是方便之中的麻烦。


初学者编程需要所见即所得  针对DZ的空白一片 这是比较好的方法

另外当你进行赋值时  你想知道结果么  这个就能看见!

举例:

你要写一个updata的SQL语句  中间是  a=a+1, b=b+1, c=c+1

都是固定的 你当然会写  但是如果1是个条件变量呢?

a=a+c 或者 a=a+d

这个时候 你可以用这个方法检测 是不是最后到数据库查询是你要的a=a+d   不会是另一种 a=a+c!
回复

使用道具 举报

zb267yai6 发表于 2008-2-16 14:14:17 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-9-28 01:16 , Processed in 0.286587 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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