织梦57,会员前台发布文章,内容可以传,但是提交以后源代码被自动改变。
一、实现方法
第一步:打开默认ajax评论文件 /plus/feedback_ajaxphp ,找到如下代码:
$_SESSION['sedtime'] = time();
在下面一行加入如下代码:
$doType = empty($fid) 'feedback' : 'reply';
doCommentEmail($fid, $aid, $msg, $doType);
第二步:打开 /include/extendfuncphp 文件,在最后一行或者>之前加入如下代码:
function doCommentEmail($fid=0, $aid=0, $msg='', $doType='reply'){
global $dsql, $cfg_adminemail, $cfg_sendmail_bysmtp, $cfg_smtp_server,$cfg_smtp_port, $cfg_smtp_usermail, $cfg_smtp_password, $cfg_webname, $cfg_basehost;
$arcRow = GetOneArchive($aid);
$headers = "From: "$cfg_adminemail"\r\nReply-To: "$cfg_adminemail;
if($doType == 'reply'){
$query = "SELECT f,muname,memail FROM dede_feedback f LEFT JOIN dede_member m on fmid = mmid WHERE fid = '{$fid}' AND mid > 0";
$row = $dsql->GetOne($query);
if(!is_array($row)) return '';
$email = $row['email'];
$mailtitle = "您在『{$cfg_webname}』的评论已被回复";
$mailbody = "{$row['uname']},您好:\r\n您在{$cfg_webname}的评论已被人回复!<pre>{$msg}</pre><br/><a href='{$arcRow['arcurl']}'>点击这里查看详情</a>";
}else{
$email = $cfg_adminemail;
$mailtitle = "您的网站『{$cfg_webname}』有新的评论";
$mailbody = ",您好:<br/>\r\n您的网站《{$cfg_webname}》有新的评论!<pre>{$msg}</pre><br/><a href='{$cfg_basehost}'>点击这里查看详情</a>";
}
if($email == '') return '';
if($cfg_sendmail_bysmtp == 'Y' && !empty($cfg_smtp_server))
{
$mailtype = 'HTML';
require_once(DEDEINC'/mailclassphp');
$smtp = newsmtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);
$smtp->debug = false;
$smtp->sendmail($email,$cfg_webname ,$cfg_smtp_usermail, $mailtitle,$mailbody, $mailtype);
}
else
{
@mail($email, $mailtitle, $mailbody, $headers);
}
}
第三步:配置后台邮件发送信息,进入网站后台,切换到『系统』选项卡,点击「系统基本参数」的“核心设置”,将里面的“网站发信EMAIL”、“是否启用smtp方式发送邮件”、“smtp服务器”、“smtp服务器端口”、“SMTP服务器的用户邮箱”、“SMTP服务器的用户帐号”和“SMTP服务器的用户密码”配置好即可。
你好,根据你的问题找到的相关对应的解决方法。希望能够帮助到你。
问题症状:V57登录后台后,发布英文标题没问题,发布中文会提示“标题不能为空”。
问题根源:PHP版本升级为PHP54之后,htmlspecialchars在php54默认为utf8编码,gbk编码字符串经 htmlspecialchars 转义后的中文字符串为空,也就是标题为空。
解决办法:给htmlspecialchars添加ENT_COMPAT ,'GB2312'参数修改编码默认值。
具体修改页面:
1、dede/article_addphp 和 dede/article_editphp
将 $title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen));
改成
$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen),ENT_COMPAT ,'GB2312');
2、include/ckeditor/ckeditor_php5php 138行
将htmlspecialchars($value)替换为htmlspecialchars($value, ENT_COMPAT ,'GB2312')
测试,发布文章成功。
时间太长了,不知道还能不能帮到你,解决方法如下:
会员前台新增文章:
/member/article_addphp
$body = HtmlReplace($body, -1);//源码部分
$body = str_replace('\\','',$body);//新增部分
会员前台修改文章:
/member/article_editphp
$body = HtmlReplace($body, -1);//源码部分
$body = str_replace('\\','',$body);//新增部分
找到对应的源码部分,把新增的加在下面。
说明:HtmlReplace()会在内容中替换出一个反斜杠,这个反斜杠把路径破坏掉了,所以在用str_replace()将反斜杠替换掉。
当然,还有没有其他方法我没研究过。
1、在生成,更新主页里面,有个动态浏览
2、在核心,网站栏目管理,点开文章后修改,高级参数里面有生成html
3、建议楼主这样设置(伪静态),因为百度更喜欢抓取静态的网址,如果生成动态的不方便蜘蛛收录。要想伪静态就必须在步骤2生成html
0条评论