Discuz 出现Access Denied错误提示的原因及解决方法
两个链接,点击第一个的时候,不会出现错误,但是点击第二个,会出现“Access Denied”的错误;原因是判断的代码中没有对第二个链接进行条件判断,应该加上在if条件里追加$_GET['step'] != 'second'
为了提高开发的插件的安全性问题,对于非直接执行的程序,所谓非直接运行的程序,就是你那个程序不应该直接通过地址访问的,比如,新核心开发中的页面嵌入和特殊主题的类都是如此。
对于此类程序,务必在开头加上:
对于此类程序,务必在开头加上:
if (!defined('IN_DISCUZ') || !defined('IN_ADMINCP')){
exit('Access Denied');
}
这一段代码是保证你的持续运行在discuz中而非直接通过浏览器访问。
在执行discuz工程的时候出现了“Access Denied”的错误,一般的原因有:
(1)数据库操作出现错误:
table文件夹的数据库操作文件(数据库操作语句)出现错误,或者数据库数据出问题(一条数据里某些字段没有数据,但其属性又是“不允许为空”)
(2)在上面的代码中,exit('Access Denied')在条件句里执行,而条件语句出现了问题
e.g.
在执行discuz工程的时候出现了“Access Denied”的错误,一般的原因有:
(1)数据库操作出现错误:
table文件夹的数据库操作文件(数据库操作语句)出现错误,或者数据库数据出问题(一条数据里某些字段没有数据,但其属性又是“不允许为空”)
(2)在上面的代码中,exit('Access Denied')在条件句里执行,而条件语句出现了问题
e.g.
<a href="xx.php?id=1&step=first">第一</a>
<a href="xx.php?id=1&step=second">第二</a>
if (!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
if ($_GET['step'] && $_GET['step'] != 'first') {
exit('Access Denied');
}
}
两个链接,点击第一个的时候,不会出现错误,但是点击第二个,会出现“Access Denied”的错误;原因是判断的代码中没有对第二个链接进行条件判断,应该加上在if条件里追加$_GET['step'] != 'second'