今天给各位分享discuz显示特殊字符的知识,其中也会对显示空格的特殊字符进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、我的discuz论坛标题,中文都变成乱码了!!!(只有中文变了)
- 2、discuz 怎么让特殊字符不被转义比如&不被转义成&
- 3、Discuz! System Error 您当前的访问请求当中含有非法字符,已经被系统拒绝 PH
- 4、Discuz搬家后,论坛一切正常,但是所有插件都文字都变成乱码,高手来
- 5、如何调用 discuz的数据 函数操作
我的discuz论坛标题,中文都变成乱码了!!!(只有中文变了)
出现这种情况一般是你安装程序和模板编码不一致
你先用默认模板查看下编码
然后安装模板的时候看看应用中心提示模板编码是什么
从你截图上看,建议同时检查下数据库编码
discuz 怎么让特殊字符不被转义比如&不被转义成&
Html中特殊字符不被转义,可以使用预格式化标签。
pre 是 Preformatted text(预格式化文本) 的缩写。使用此标签可以把代码中的空格和换行直接显示到页面上。
例如HTML代码:
pre
if (xx 5) {
print "比5大!\n";
}
/pre
浏览器显示效果:
if (xx 5) {
print "比5大!\n";
}
textarea/textarea之间包含有类似的这种转义字符的时候总会被解析,倒是可以把所有的""通过程序替换成"",但是有些本来就是""的也会被转换,这就错了。如何让textarea/textarea之间包含的文本原封不动的显示出来呢?
总结如下:
解决方法有两种:
第1种:
body
textarea id='t' rows=20 cols=20/textarea
script
document.getElementById('t').innerText='a';
/script
/body
第2种:
/*将字串转为html格式*/
public String strToHtml(String s)
{
if (s==null||s.equals("")) return "";
s = s.replaceAll("", "");
s = s.replaceAll("", "");
s = s.replaceAll("", "");
s = s.replaceAll(" ", " ");
// s = s.replaceAll("/n", "br/");
// s = s.replaceAll("'", "'");
return s;
}
/*将html格式转为字串*/
public String strToHtml(String s)
{
if (s==null||s.equals("")) return "";
s = s.replaceAll("","");
s = s.replaceAll("","");
s = s.replaceAll("","");
s = s.replaceAll(" "," ");
//s = s.replaceAll("br/","/n");
//s = s.replaceAll("'","'");
return s;
}
最后一点:jQuery的.html()方法默认会转义的,这种情况使用.text()就不会转义了。
Discuz! System Error 您当前的访问请求当中含有非法字符,已经被系统拒绝 PH
解决方案如下:
\source\class\discuz的discuz_application.php
查找
private function _xss_check() {
static $check = array('"', '', '', '\'', '(', ')', 'CONTENT-TRANSFER-ENCODING');
if(isset($_GET['formhash']) $_GET['formhash'] !== formhash()) {
system_error('request_tainting');
}
if($_SERVER['REQUEST_METHOD'] == 'GET' ) {
$temp = $_SERVER['REQUEST_URI'];
} elseif(empty ($_GET['formhash'])) {
$temp = $_SERVER['REQUEST_URI'].file_get_contents('php://input');
} else {
$temp = '';
}
if(!empty($temp)) {
$temp = strtoupper(urldecode(urldecode($temp)));
foreach ($check as $str) {
if(strpos($temp, $str) !== false) {
system_error('request_tainting');
}
}
}
return true;
}
复制代码
替换为:
private function _xss_check() {
$temp = strtoupper(urldecode(urldecode($_SERVER['REQUEST_URI'])));
if(strpos($temp, '') !== false || strpos($temp, '"') !== false || strpos($temp, 'CONTENT-TRANSFER-ENCODING') !== false) {
system_error('request_tainting');
}
return true;
}
Discuz搬家后,论坛一切正常,但是所有插件都文字都变成乱码,高手来
通常出现这种情况是字符集的原因,如果你是所有文件直接拷贝过来的,导入数据库的时候,可以强制导入uft8模式导入数据库,问题即可解决!
如何调用 discuz的数据 函数操作
DB::delete($tablename,
条件,条数限制)删除表中的数据
DB::insert($tablename,
数据(数组),是否返回插入ID,是否是替换式,是否silent)插入数据操作
DB::update($tablename,
数据(数组)条件)更新操作
DB::fetch(查询后的资源)从结果集中取关联数组,注意如果结果中的两个或以上的列具有相同字段名,最后一列将优先。
DB::fetch_first($sql)取查询的第一条数据fetch
DB::fetch_all($sql)查询并fetch
DB::result_first($sql)查询结果集的第一个字段值
DB::query($sql)普通查询
DB::num_rows(查询后的资源)获得记录集总条数
DB::_execute(命令,参数)执行mysql类的命令
DB::limit(n,n)返回限制字串
DB::field(字段名,
$pid)
返回条件,如果为数组则返回
in
条件
DB::order(别名,
方法)排序
注意事项:所有数据在插入数据库之前,均需要进行addslashes()处理,以免特殊字符未经转义在插入数据库的时候出现错误。Discuz!中所有通过
GET,
POST,
FILE,取得的变量默认情况下已经使用了addslashes()进行了转义,不必重复进行。如果数据处理必要(例如用于直接显示),可以使用
stripslashes()
恢复,但数据在插入数据库之前必须再次进行转义。缓存文件中,一般对缓存数据的值采用
addcslashes($string,
'\'\\')进行转义。
discuz显示特殊字符的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于显示空格的特殊字符、discuz显示特殊字符的信息别忘了在本站进行查找喔。