EMLOG6.0查询不存在的标签爆出数据库信息解决方法
- A
平时大家用EMLOG的时候可能会有删标签的习惯,别的网站转载你的文章,收录了被删掉的标签,那么访客访问这个链接EMLOG6.0就会爆出SQL语句执行错误。
例如标签“傲世”不存在,访问这个标签链接https://www.recho.cn/tag/傲世 就会报SQL语句执行错误,会出现以下提示:
报错过程:通过访问标签链接路由分配到tag_controller.php控制器,控制器中执行到函数getTagByName,直接tag_model.php中大概47行函数
getTagByName中有2个函数getIdFromName和getTagById,getIdFromName会出现false的情况,getTagById没考虑到这种情况导致的。然后根据tag_controller.php之后的情况,修改函数getTagByName最为合适。
建议各位一定要修复,因为SQL报错会被一些安全网站或者搜索引擎识别为安全漏洞,减低权限。
修复方法如下:
打开 网站根目录includemodeltag_model.php中大概47行函数改为如下
function getTagByName($tagName) { $tagId = $this->getIdFromName($tagName); if ($tagId) { return $this->getTagById($tagId); }else{ return false; } }
实际上就是加上了个判断,如果数据库查询不到该标签,就返回布尔值:假
傲世》原创,转载请保留文章出处。
本文链接:https://www.recho.cn/10.html
如您对本文章内容有所疑问、反馈或补充,欢迎通过邮箱:[email protected] 联系我们!
版权声明:若无特殊注明,本文为《正文到此结束