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


Posted in PHP onOctober 09, 2006

《以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);
”,完成!

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

PHP 相关文章推荐
php 空格,换行,跳格使用说明
Dec 18 PHP
用PHP查询搜索引擎排名位置的代码
Jan 05 PHP
PHP 编程安全性小结
Jan 08 PHP
php实现最简单的MVC框架实例教程
Sep 08 PHP
php随机抽奖实例分析
Mar 04 PHP
php中实现可以返回多个值的函数实例
Mar 21 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
Mar 15 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
Mar 19 PHP
基于php流程控制语句和循环控制语句(讲解)
Oct 23 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 PHP
PHP中散列密码的安全性分析
Jul 26 PHP
PHP7修改的函数
Mar 09 PHP
PHP+APACHE实现用户论证的方法
Oct 09 #PHP
从C/C++迁移到PHP——判断字符类型的函数
Oct 09 #PHP
PHP实现图片简单上传
Oct 09 #PHP
在线增减.htpasswd内的用户
Oct 09 #PHP
将OICQ数据转成MYSQL数据
Oct 09 #PHP
PHP中一个控制字符串输出的函数
Oct 09 #PHP
PHP用户指南-cookies部分
Oct 09 #PHP
You might like
详细介绍PHP应用提速面面观
2006/10/09 PHP
PHP 裁剪图片成固定大小代码方法
2009/09/09 PHP
PHP中new static()与new self()的区别异同分析
2014/08/22 PHP
PHP实现大数(浮点数)取余的方法
2017/02/18 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
node.js实现逐行读取文件内容的代码
2014/06/27 Javascript
JavaScript中利用各种循环进行遍历的方式总结
2015/11/10 Javascript
Javascript如何判断数据类型和数组类型
2016/06/22 Javascript
用Node提供静态文件服务的方法
2018/07/06 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
浅谈express.js框架中间件(middleware)
2019/04/07 Javascript
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
2019/11/09 Javascript
vue从零实现一个消息通知组件的方法详解
2020/03/16 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
2020/09/07 Javascript
js 执行上下文和作用域的相关总结
2021/02/08 Javascript
[01:15:56]2018DOTA2亚洲邀请赛3月30日 小组赛A组 TNC VS Newbee
2018/03/31 DOTA
Python标准库defaultdict模块使用示例
2015/04/28 Python
Python中列表的一些基本操作知识汇总
2015/05/20 Python
分分钟入门python语言
2018/03/20 Python
Django 浅谈根据配置生成SQL语句的问题
2018/05/29 Python
解决Python中list里的中文输出到html模板里的问题
2018/12/17 Python
详解用Python为直方图绘制拟合曲线的两种方法
2019/08/21 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
2020/04/22 Python
美国一家专业的太阳镜网上零售商:Solstice太阳镜
2016/07/25 全球购物
DNA测试:Orig3n
2019/03/01 全球购物
数百万免费的图形资源:Freepik
2020/09/21 全球购物
索引覆盖(Index Covering)查询含义
2012/02/18 面试题
linux面试题参考答案(8)
2015/08/11 面试题
产品发布会策划方案
2014/05/12 职场文书
政风行风建设责任书
2014/07/23 职场文书
青岛海底世界导游词
2015/02/11 职场文书
开业典礼致辞
2015/07/29 职场文书
2019学校运动会开幕词
2019/05/13 职场文书
pandas:get_dummies()与pd.factorize()的用法及区别说明
2021/05/21 Python