浏览模式: 普通 | 列表
attachments/201309/11_092857_img.1.chinese.jpg


产品特性与优点
1.迷你
UBBEditor 经压缩存储后小于20KB,载入的时间可以忽略不计。

2.兼容
UBBEditor 可以良好的运行在 IE6,7,8,9 Safari, Firefox, Chrome 等浏览器中。


3.安全
UBBEditor 在编辑文本内容的格式后,所产生的是UBB代码,如果在网页中输出显示时,需要通过服务器脚本来解析这些代码,因此它具备的良好的安全可控性。

4.开源
UBBEditor 是一款开放源代码的程序,你可以在任何项目中任意使用而不需要支付任何费用,并且你也可以很方便的修改源代码来达到更符合自己的要求。

function getSelectedText(){
                var selectedText;
                var textField=document.getElementById('inputTextarea');
                if(window.getSelection) selectedText=getTextFieldSelection(textField);//getTextFieldSelection(document.getElementById("inputTextArea"));
                else selectedText=document.selection.createRange().text;
                     alert(selectedText);
         }

         function getTextFieldSelection(e){
...

阅读全文…
获取光标位置函数
function getCursortPosition (ctrl) {
  var CaretPos = 0;  // IE Support
  if (document.selection) {
  ctrl.focus ();
    var Sel = document.selection.createRange ();
    Sel.moveStart ('character', -ctrl.value.length);
    CaretPos = Sel.text.length;
  }
  // Firefox support
  else if (ctrl.selectionStart || ctrl.selectionStart == '0')
    CaretPos = ctrl.selectionStart;
  return (CaretPos);
}

设置光标位置函数
function setCaretPosition(ctrl, pos){
...

阅读全文…
p.s.压力测试是很好的检验方法,用webbech或者ab等一些工具模拟并发服务器,若服务器没有限制连接数或带宽,服务器很容易被压跨。


http {


limit_conn_zone $binary_remote_addr zone=one:10m;
limit_req_zone $binary_remote_addr zone=perip:5m rate=20r/s;

#如果在1.1.8之后版本还用语法:limit_zone name $variable size,会报警告nginx: [warn] the “limit_zone” directive is deprecated, use the “limit_conn_zone” directive

#这里,设置客户端的IP地址作为键。注意,这里使用的是$binary_remote_a...

阅读全文…

proftpd基本配置+虚拟用户

[ 2013-09-09 17:17:25 | 作者: admin ]
感觉比vsftpd要方便一点,配置起来比较灵活。

先简单的配置一下。

安装什么的比较简单,如下。
# tar -zxvf proftpd-1.3.4a
# cd proftpd-1.3.4a
# ./configure –prefix=/usr/local/proftpd
# make
# make install

安装好以后,从源码包里复制启动脚本。

# cp proftpd-1.3.4a/contrib/dist/rpm/proftpd.init.d /etc/init.d/proftpd
# chmod 755 /etc/init.d/proftpd

然后,需要在proftpd里面修改一下参数。由于我安装的时候不是默认的目录,所以很多涉及到程序路径的地方要改成安装的位置。具体如下。

# chkconfig: 345 85 15
...

阅读全文…

expect spawn、linux expect 用法小记

[ 2013-09-09 17:13:35 | 作者: admin ]
使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄、收藏。可是为什么要这么写却不知其然。本文用一个最短的例子说明脚本的原理。
  脚本代码如下:
           ##############################################
           #!/usr/bin/expect
           set timeout 30
           spawn ssh -l username 192.168.1.1
           expect "password:"
           send "ispass\r"
           interact
           ##############################################

  1. [#!/usr/bin/expect]
  这一行告诉操作系统...

阅读全文…

Linux简单处理CC攻击shell脚本

[ 2013-09-09 17:07:10 | 作者: admin ]
第一个脚本是通过查找日志中访问次数过多的ip,并用iptables屏蔽,600秒解封。
         #!/bin/bash
         btime=600
         becur=`date -d "1 minute ago" +%H%M%S`
         badip=`tac /home/www.centos.bz/log/access.log | awk -v a="$becur" -F [' ':] '{t=$5$6$7;if (t>=a){ print} else {exit;}' | egrep -v "\.(gif|jpg|jpeg|png|css|js)" | awk '{print $1}' | sort | uniq -c | awk '{if ($1>=20) print $2}}'`
         if [ ! -z "$badip" ];then
...

阅读全文…
用 DataTable.Rows[i].Delete(); 删除后,然后循环读取datatable,结果还能遍历到原来的行,错误提示“不能通过已删除的行访问该行的信息。”

查阅资料才知道 Delete() 删除后 仅标记行状态为Deleted,并没有真正删除。确认改变需要再次调用RejectChanges()方法。

如果要彻底删除datarow,需要Delete()和AccepteChanges()方法同时使用,或者采用 datatable.Rows.RemoveAt(i)方法直接删除,其中i表示行索引,还有一个就是 datatable.Rows.Remove(DataRow dr)删除指定行。使用datatable.Rows.RemoveAt(i)要注意,如果连续使用 datatable.Rows.RemoveAt(0);datatable.Rows.RemoveAt(1);这时并不...

阅读全文…