ECSHOP后台SQL查询提示错误 this sql May contain UPDATE,DELETE,TRUNCATE,ALTER,D...-站长杂谈下载

ECSHOP后台SQL查询提示错误 this sql May contain UPDATE,DELETE,TRUNCATE,ALTER,D...

来自版块: 站长杂谈发表于: 2015-8-9 00:23:23
32604
0
如本资源下载地址失效,请点击此处进行反馈
开通本站Svip会员,全站资源免费下
ECSHOP后台SQL查询提示错误 this sql May contain UPDATE,DELETE,TRUNCATE,ALTER,DROP,FLUSH,INSERT一)、9 n& i7 M9 t) L5 N# N
首先说一下错误现象:' U$ \/ A) \$ B. C$ @9 @' K6 Q
市面上流行的绝大部分ECSHOP模板,安装的时候都需要执行一段或几段SQL语句来修改数据结构或者初始化一些数据。
0 Y. n( u& t4 m$ ?: Y+ S大多数ECSHOP管理员为了省事,都会通过 “ECSHOP后台》数据库管理 》SQL查询” 来执行这些SQL语句。3 E7 k, Q/ ]; \. D+ _8 E
这时问题就来了,当你粘贴进SQL语句,点“提交查询”时,系统就会报出下面的错误:$ B; J5 K6 i9 Q4 r/ K; M
this sql May contain UPDATE,DELETE,TRUNCATE,ALTER,DROP,FLUSH,INSERT,REPLACE,SET,CREATE,CONCAT
- p2 D4 T0 ], m9 V9 ?/ \/ z: P' E  y0 k& b! _0 i/ d5 x
有图有真相:0 ~& V9 T) m* k3 `( l3 z8 j2 T
  t( s! }7 V/ b$ }8 _
150328103814512026ggb7zn.jpg
% o9 l9 ?. D2 f$ ~! o. O
  b3 a# k8 e$ j5 s* v9 n7 _/ x6 |( X注意:* [* l' ~: [9 t2 S
上述错误只有在打了ECSHOP2.7.3最新补丁的系统下才会出现,如果您的ECSHOP系统没有打最新补丁,是不会出现这个错误提示。
1 M+ Y6 Z  Q7 D) m& \2 X
; R: e$ K' |* z8 L& M' [% T) j3 `
下面来说一下错误原因:5 j9 t( D  S- V( w
% N9 }* h' h; [# T$ F- C
之所以会出现上面的错误提示,是因为ECSHOP2.7.3最新补丁文件,对ECSHOP后台的“SQL查询”功能做了限制,4 k+ }! X* C* L$ A  t
只允许执行 select 查询语句,除select之外的其他查询语句,诸如 alter, update, delete, truncate等之类的SQL语句都是被禁止执行的。
& T8 ^& v2 i1 V0 w6 ?. ^4 k

% N( I% X+ P. F) W二)、
9 F5 e* L0 B2 \: z" Z  X' o
7 S9 @% A$ e" \) ~/ }+ n3 H下面再来说一说解决方法:, e9 q) K, o- N  @% K1 X
7 I6 z5 H, r+ h" U' R' r) W# ?
打开 admin/sql.php  找到下面这段代码,删掉即可
3 c, f8 g1 J" {4 A# @, I  c
, O2 Z1 q1 X3 j1 _% Z% z' v
if(!empty($_POST['sql']))
* I5 h% V9 f. O: ~{
6 C/ h) ]$ D2 Qpreg_match_all("/(SELECT)/i", $_POST['sql'],$matches);
& Y$ r& ?1 n; O; h6 Z3 ^5 Uif(isset($matches[1]) && count($matches[1])>1)8 j- @( q1 B7 \- }$ _- ^
{
& L7 g+ z8 H9 }& \1 K2 Gsys_msg("this sql more than one SELECT ");1 t% A: T* n' B& t, k
}1 p& J7 V" K4 m" ?5 j
/ T" a3 s: M! |* b5 ~& o7 v
if(preg_match("/(UPDATE|DELETE|TRUNCATE|ALTER|DROP|FLUSH|INSERT|REPLACE|SET|CREATE|CONCAT)/i", $_POST['sql']))
: v! ~! p' C9 k+ Z1 v( W9 ?, f' _{
5 g8 `  S" L# _sys_msg("this sql May contain UPDATE,DELETE,TRUNCATE,ALTER,DROP,FLUSH,INSERT,REPLACE,SET,CREATE,CONCAT ");
1 m$ |! u, b, B) C% V8 r}3 n% h+ a7 m! f/ }: {+ l
}
/ ?+ f+ Y, e8 T8 f. f
+ j5 E( d: S8 F

全部评论 0

您需要登录后才可以回帖 立即登录
登录
0
0
0
返回顶部