找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9291|回复: 0

dedecms(织梦)发布文章提示"标题不能为空"及与php5.5兼容问题的解决

[复制链接]
发表于 2014-8-9 11:03:07 | 显示全部楼层 |阅读模式
dedecms安装完成后会出现登陆后台空白,发布文章时提示”标题不能为空”。* l" X3 b3 h2 [1 V
9 z+ [" x# M$ O5 _! e% j
1.解决dedecms登陆后台空白错误) I. o) H1 ^* K- w3 Q+ u
因为php5.5的版本废除了session_register,所以需要去掉session_register函数
$ \6 D; {0 y5 ~5 ?
% O/ q, G% a9 |) C; _7 o修改:“include/userlogin.class.php”,注释掉session_register,修改后如下
' t  _' ~& j& S//@session_register($this->keepUserIDTag);: Q6 ]+ w1 E& t: Q/ o/ R6 T5 K$ L8 K
$_SESSION[$this->keepUserIDTag] = $this->userID;7 c& u! e1 p2 f: y0 _7 T( v
8 W0 \; }" H5 n0 v( b) ]9 Y
// @session_register($this->keepUserTypeTag);7 m0 M- B4 E7 K, m4 x& E
$_SESSION[$this->keepUserTypeTag] = $this->userType;
  D: N* U( W+ D$ C: K, t! G% `5 h/ d1 I* O$ T* z: [7 c7 v  @2 }
// @session_register($this->keepUserChannelTag);
: u% V8 x  T  ^; z; Y* w7 f8 e5 Q" a$_SESSION[$this->keepUserChannelTag] = $this->userChannel;# Q  L. b% J& e6 @5 L
& w8 y6 r1 ^. F0 z4 c. S9 R
// @session_register($this->keepUserNameTag);
4 p& I: k2 x) c% }$_SESSION[$this->keepUserNameTag] = $this->userName;2 B0 b7 R& @" ^) q' b' p
" V. T; n4 O) X% ]3 V9 v# @+ Y7 N
// @session_register($this->keepUserPurviewTag);5 \* g; G- P, o2 }' R) b* ?- [- e
$_SESSION[$this->keepUserPurviewTag] = $this->userPurview;
+ K3 N" W& S  ?. |! u2 }, s  Z- D- Z/ b4 w1 V- u6 S
// @session_register($this->keepAdminStyleTag);
% ^, X2 c' V( }) N1 z# Y$ f$_SESSION[$this->keepAdminStyleTag] = $adminstyle;
. h  `( t; E9 o' B
; U" X0 d3 Z" M9 u2.dedecms发布文章提示"标题不能为空"
2 G/ ^1 r" |, H4 [& i% F; S4 ?& t1 g& F, A. D
现象是发布英文标题没问题,发布中文会提示“标题不能为空”1 x/ z  ~6 B) X6 w& i; M1 B" r
因为htmlspecialchars在php5.4默认为utf8编码,8 J% n  r1 x1 U& n9 x5 M# ^& k  L' P
gbk编码字符串经 htmlspecialchars 转义后的中文字符串为空,也就是标题为空。. l: h6 w! |2 s  v+ C* \( ^
所以给htmlspecialchars添加ENT_COMPAT ,'GB2312'参数修改编码默认值。
/ [* C5 q! U* d# q; M6 E7 e+ |& }1 H
具体方法:
$ L: ?2 B. G8 y2 v; b3 f! a1.在dede安装目录执行
' K4 _6 ~5 I  p! f( T" b  ]sed -i "s/htmlspecialchars(/gbkhtmlspecialchars(/g" `grep htmlspecialchars\( -rl *`8 p; _: k" _- D% {# f

# c2 @$ q0 @0 @4 N. g/ l/ d' N! e2./include/common.func.php中任意位置添加函数6 g% }: k, K* Z/ B! x0 o% g

* a6 c# P6 x! R& X" ^function gbkhtmlspecialchars($str)
6 j( S" e6 z4 c% V5 ?6 T{" r* ^! O: V( R1 {
        return htmlspecialchars($str, ENT_COMPAT ,'ISO-8859-1');. y# O3 r( l( B3 }' I& e/ g
}8 a8 t3 s: y1 _6 o8 m
注意:使用了本文方法的就不用理会这篇文章了:https://bbs.swdyz.com/thread329sw1dyz1.shtml6 l) ^( g# q" R- F2 j

- `7 {+ H  _! c9 f/ L
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|第一站论坛 ( 蜀ICP备06004864号-6 )

GMT+8, 2025-9-10 19:29 , Processed in 0.086381 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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