找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10499|回复: 0

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

[复制链接]
发表于 2014-8-9 11:03:07 | 显示全部楼层 |阅读模式
dedecms安装完成后会出现登陆后台空白,发布文章时提示”标题不能为空”。
7 L  i- ]1 C  z3 l4 r" c# E
4 Z% U8 d* w+ I+ w7 N! J1 u1.解决dedecms登陆后台空白错误: E# c- \6 N$ x. Q" M
因为php5.5的版本废除了session_register,所以需要去掉session_register函数
: Z7 m( o( t: G% y4 Z+ A
* A- Y' Z; ]: W" o9 j修改:“include/userlogin.class.php”,注释掉session_register,修改后如下
3 X: e( s8 M  d5 \' I//@session_register($this->keepUserIDTag);+ x: i2 T, ^9 W% A6 [
$_SESSION[$this->keepUserIDTag] = $this->userID;" t) A6 Y) r& m+ M# H
2 m8 ^! ^  v. m' B6 y& v& q7 B
// @session_register($this->keepUserTypeTag);
2 }% ~) X& {2 t  m6 Y: x$_SESSION[$this->keepUserTypeTag] = $this->userType;8 t" C- @, Z8 s5 k6 v/ G- l

) Z' t* U' J# S' A. m' P// @session_register($this->keepUserChannelTag);+ ?: R9 b( t  n
$_SESSION[$this->keepUserChannelTag] = $this->userChannel;
  S  O8 Y7 B& `! r+ A7 y
' R& P% `9 u& b$ M+ ~" k; e// @session_register($this->keepUserNameTag);
( a7 b- V3 P0 k7 @; [$_SESSION[$this->keepUserNameTag] = $this->userName;
. F8 z) a$ h6 n0 N2 @) X1 F
# h/ C9 C2 L3 a1 Y// @session_register($this->keepUserPurviewTag);
, @' E& H3 A" e; j- U4 @$_SESSION[$this->keepUserPurviewTag] = $this->userPurview;: ~7 j% E/ H3 g; w! A- ]
$ z6 w8 ?0 M7 L6 l
// @session_register($this->keepAdminStyleTag);6 _; h7 e+ ~" G& @
$_SESSION[$this->keepAdminStyleTag] = $adminstyle;4 @% A* R$ _+ [. ]

: g. B- T/ J* S9 m+ b. J" d5 X2.dedecms发布文章提示"标题不能为空"9 Y4 [  v% a/ u4 S7 s
/ w5 g0 Y2 W  g7 S
现象是发布英文标题没问题,发布中文会提示“标题不能为空”1 Y( d* d2 i3 i3 m8 L7 ]
因为htmlspecialchars在php5.4默认为utf8编码,* }6 b0 V5 p1 Z9 Q# Q$ G
gbk编码字符串经 htmlspecialchars 转义后的中文字符串为空,也就是标题为空。& G; \$ @$ p: X  b
所以给htmlspecialchars添加ENT_COMPAT ,'GB2312'参数修改编码默认值。" q$ P' `5 m. }. P
' S: Z! h9 X0 c  T" w) z0 r) d
具体方法:1 |) H) a4 L  m: F- y7 n
1.在dede安装目录执行  n0 k0 ~  A# O1 X
sed -i "s/htmlspecialchars(/gbkhtmlspecialchars(/g" `grep htmlspecialchars\( -rl *`
5 Z) }. y; {1 H. _/ p1 E8 I& x* }- J4 O; p; r" U% K$ I9 r) N- n
2./include/common.func.php中任意位置添加函数  @' S# O' D0 o3 m; {

& i% G5 K* B  Q0 y& Dfunction gbkhtmlspecialchars($str)
1 S+ {6 Y9 c% T, n# _0 q* ]; p{
1 k9 k  `4 F; L1 |3 E9 {        return htmlspecialchars($str, ENT_COMPAT ,'ISO-8859-1');
' l9 O6 ?" A, ~- Q- L}; C: `# y* a( [" @( r
注意:使用了本文方法的就不用理会这篇文章了:http://bbs.swdyz.com/thread329sw1dyz1.shtml. W) D; U, |8 M; P

/ H+ i: T6 U# t9 D9 P
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-4-14 15:48 , Processed in 0.069579 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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