当前位置: 首页 > 图文教程 > 网络编程 > PHP > vBulletin HACK----关于排版的两个HACK

PHP
PHP新手总结的PHP基础知识
php实现gb2312和unicode间编码转换
用php语言实现数据库连接详细代码介绍
详细解析 PHP 向 MySQL 发送数据过程
利用PHP V5开发多任务应用程序
详细讲解PHP中缓存技术的应用
php escapeshellcmd多字节编码漏洞
《PHP设计模式介绍》导言
《PHP设计模式介绍》第一章 编程惯用法
《PHP设计模式介绍》第二章 值对象模式
《PHP设计模式介绍》第三章 工厂模式
《PHP设计模式介绍》第四章 单件模式
《PHP设计模式介绍》第五章 注册模式
《PHP设计模式介绍》第六章 伪对象模式
《PHP设计模式介绍》第七章 策略模式
《PHP设计模式介绍》第八章 迭代器模式
《PHP设计模式介绍》第九章 观测模式
《PHP设计模式介绍》第十章 规范模式
《PHP设计模式介绍》第十一章 代理模式
《PHP设计模式介绍》第十二章 装饰器模式

PHP 中的 vBulletin HACK----关于排版的两个HACK


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 304 ::
收藏到网摘: n/a


《以vB代码实现的简单文字排版》
原因:1.1.4版本中没有这些,而国内的比较著名的UBB HACK之家就增加了很多对于文字排版的UBB代码(vB代码)。
优点:只需要几行,就可以实现,很简单。
缺点:因为需要嵌套,所以如果用户写得不好的话,会影响帖子其它内容的样式,甚至殃及整个话题。
自评:其实,这只是将更多的HTML代码以vB代码的形式来实现,为的让人从另一个角度去学习如何进行Web的文字排版而不用去学HTML,也为了安全。
步骤:打开 global.php ,查找“
function bbcodeparse2($bbcode,$forumid=0,$allowsmilie=1) {
”,在[code]和其它HACK之前的适当位置,例如“
// 执行引用回复
$bbcode=eregi_replace("quote\]","quote]",$bbcode); // 小写化
$bbcode=str_replace("[quote]rn","<blockquote><smallfont>引用:</smallfont><hr>",$bbcode);
$bbcode=str_replace("[quote]","<blockquote><smallfont>引用:</smallfont><hr>",$bbcode);
$bbcode=str_replace("[/quote]rn","<hr></blockquote>",$bbcode);
$bbcode=str_replace("[/quote]","<hr></blockquote>",$bbcode);
”,在后面加入“
// Hack color,font,size,style,center
$bbcode=eregi_replace("\[color=["]{0,1}(#[a-z0-9-]{6})["]{0,1}\]","<font color=\1>",$bbcode); // [color=]
$bbcode=eregi_replace("\[/color\]","</font>",$bbcode); // [/color];
$bbcode=eregi_replace("\[size=["]{0,1}([0-9]{1})["]{0,1}\]","<font size=\1>",$bbcode); // [size=]
$bbcode=eregi_replace("\[/size\]","</font>",$bbcode); // [/size]
$bbcode=eregi_replace("\[font=["]{0,1}([^\[]*)["]{0,1}\]","<font face="\1">",$bbcode); // [font=]
$bbcode=eregi_replace("\[/font\]","</font>",$bbcode); // // [/font]
$bbcode=eregi_replace("\[style=["]{0,1}([^\[]*)["]{0,1}\]","<span style="\1">",$bbcode); // [style=]
$bbcode=eregi_replace("\[/style\]","</span>",$bbcode); // [/style]
$bbcode=eregi_replace("\[center\]","<p align=center>",$bbcode); // [center=]
$bbcode=eregi_replace("\[/center\]","</p>",$bbcode); // [/center]
// End Hack color size style
”,完成。
范例可以参考:
《禁止JavaScript》
原因:vBulletin没有对Javascript脚本做任何的特别对待处理,所以如果论坛开放了HTML代码的话,就有可能受到alert或window.open的袭击而沦陷。
步骤:打开 global.php ,查找“
if ($dohtml==0) {
// 删除HTML代码
$bbcode=str_replace("&","&",$bbcode);
$bbcode=str_replace("<","<",$bbcode);
$bbcode=str_replace(">",">",$bbcode);
}
”,在最后一个花括号前,加入“
} else {
$bbcode=eregi_replace("<([/]{0,1}script[^<]*)>","<\1>",$bbcode);
”,完成!

【本文版权归作者与奥索网共同拥有,如需转载,请注明作者及出处】