分类目录归档:玩技术

发送完手机验证码进入60秒倒计时,期间禁用发送按钮

<input type="button" id="btn" value="免费获取验证码" onclick="mbtime(this)"/>
<script type="text/javascript">
var wait=60;
function mbtime(o) {
	if (wait == 60) {
		//ajax发送短信
	}
	if (wait == 0) {
		o.removeAttribute("disabled");          
		o.value="获取手机校验码";
		wait = 60;
	} else {
		o.setAttribute("disabled", true);
		o.value="重新发送(" + wait + ")";
		wait--;
		setTimeout(function() {time(o)},1000)
	}
}
</script>

discuz 数据调用模板语法的php写法

琢磨了两天,终于给找到苗头了。赶紧记录下,以备下回使用。
discuz数据调用的内部调用的模板写法是,由于在实践中需批量对不同的页面调用对应的模块,模板中的语法无法再结合变量使用,于是只好在php中直接写了。代码如下

//discuz X3.1
loadcache('blockclass');
$bid = 123;//模块ID
block_get($bid);
$data = block_display($bid);

模块中的数据都在$data里了

discuz用起来顺手多了哈。

//直接这样写?
block_display($bid)

MYSQL 相关技巧备忘

1.将列中格式化的日期转换成时间戳

UPDATE `teable1` SET dateline2 = UNIX_TIMESTAMP(dateline);

2.替换

//比如你要将表 tb1里面的 f1字段的abc替换为def 
UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def'); 

3、合计

SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer

4、查询某字段长度范围


SELECT * FROM admin WHERE LENGTH(username) > 10 

5、查询表1的数据复制到表2中

CREATE TABLE test1 SELECT * from test2 where 1;

百度联盟中新增了广告填充率的指标

今日打开百度联盟发现网盟推广报告中增加了填充率这项指标,其说明为:指代码位有广告返回的请求量与代码位总请求量的比率。这句话句式简单,但是非专业人士理解起来还是有点难度的。首先得搞清楚代码位总请求量和广告返回请求量的概念。

出这个指标的初衷我猜是因为360浏览器这种流氓软件增加了广告屏蔽功能后,我们站长的广告覆盖面大幅下降,或许广告填充率这个项指标就是来衡量这个情况的。如果真的是这样的话,真是恨死360了,我的广告填充率仅50.58%,真是欲哭无泪!

高效防攻击

因一个朋友的网站终日遭一心理变态人士的攻击,四层攻击: SYN洪水攻击 TCP连接攻击;七层攻击: HTTP Flood(CC攻击)。虽然配置了个8核的服务器,但依然被击垮。为了减轻攻击带来的危害,特写了以下代码进行抵御(基于discuz x3 框架)。经实践,起到了作用,虽说不能完全杜绝,但至少让对方攻击的成本大大提高。


//获取客户端IP
$fip = $_G['clientip'];

//取被列入黑名单的IP地址
$blackipstr = memory('get', 'blackips');

//判断是否被列入黑名单了,若是则中止访问
if($blackipstr){
	
	if(strexists($blackipstr, $fip)){	
		exit();
	}
}

//未被列入黑名单的话则对其访问进行控制.TIMESTAMP.
$usertag = $fip."@".cutstr(TIMESTAMP,9,'');

if(memory('get', $usertag)){
	
	$ppp = memory('get', $usertag);
	if($ppp>50){
		//允许的蜘蛛IP
		$zhizhu = array("220.181","123.125","66.249","157.55","157.56","65.55","131.253");
		$efiparr = explode(".",$fip);
		$efip = $efiparr[0].".".$efiparr[1];
		
		//加入黑名单
		if(!in_array($efip,$zhizhu)){
			
			memory('set', 'blackips',$blackipstr."|".$fip,18000);
			exit();
		}

		
	}else{
		
		memory('set', $usertag,$ppp+1,20);
		
	}
	
	
}else{
	
	memory('set', $usertag,1,20);
	
}