十一 162010
 

最近iPhone 4挺火的,在Apple Store上基本处于无货状态,因此,做了这个小App,基于Air的,查询Apple Store上的iPhone 4的销售状态,一旦有货就马上提醒。查询间隙为1分钟。当发现iphone 4有货的时候就会弹出窗口提醒

几个小时的练手之作,程序部分没花费什么时间,倒是美术资源部分耗了点时间。

点击右上角退出程序,点击HOME键最小化。
成功订到的XDJM别忘记留个脚印哦!
关于部分TX说没有货的情况可能是地区原因,网页更新没同步造成的,多刷几次应该就好了。

——————
2010:11:19 更新:添加了香港的Apple Store的支持

如果觉得这个对你有用,就请赶快安装吧:

直接下载air

 Posted by at 9:56 下午
十一 162010
 

好吧,我承认我又2B了,用FileReferenceList读取本地多个文件,遍历FileReferenceList.fileList之后,对每个FileReference对象注册了Event.COMPLETE事件,然后执行FileReference.load()方法,在不使用FileReference的情况下是正常的,使用FireReference.upload方法也是正常的。变量也是全局的,囧了。

贴代码,再测测,如果的确是Bug,提交给Adobe去了:

public var importFileList:FileReferenceList = new FileReferenceList();
public var currentFileReference:FileReference = new FileReference();
protected function btnImport_clickHandler(event:MouseEvent):void
{
var imgFilter:FileFilter = new FileFilter("Image Files (png,jpg,gif)","*.png;*.jpg;*.gif;*.jpeg;");
importFileList.addEventListener(Event.SELECT,fileSelectHandler);
importFileList.browse([imgFilter]);
}
private var fileItrIdx:int = 0;
private var fileList:Array;
public function fileSelectHandler(event:Event):void
{
fileList = importFileList.fileList;
fileItrIdx = 0;
itrFile(fileList,fileItrIdx);
}
public function itrFile(fileList:Array,idx:int):void
{
if(idx<importFileList.fileList.length)
{
//importFileList.fileList[idx].addEventListener(Event.COMPLETE,localFileLoadComplete);
//importFileList.fileList[idx].load();
//trace(importFileList.fileList[idx].data);
//以上的代码愣是执行不成功,以下的正常
 (importFileList.fileList[idx] as FileReference).addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,uploadHandler);
(importFileList.fileList[idx] as FileReference).upload(new URLRequest("uploadimg.php"),"img");
}
}
private function uploadHandler(devent:DataEvent):void
{
trace("!!!!!!!!!!!!");
itrFile(fileList,++fileItrIdx);
}
public function localFileLoadComplete(event:Event):void
{
trace("!!!!!!!!!!!!"+event.currentTarget.data.length);
itrFile(fileList,++fileItrIdx);
}

在air下有替代的方法:使用File

 Posted by at 2:08 下午
十一 042010
 

早上这个问题真的让我欲哭无泪。。。

用AJAX去验证会员,可是返回数据一只是空的,用HttpFox查到的是NS_BINDING_ABORTED错误。查了Google,没答案,好吧,查了是否因为是BOM引发的,还查了乱七八糟一堆的东西都没查出问题。

出现问题的代码如下:

其实解决方案很简单,把a 的href=””去掉即可,或者在click里return true

HTML部分:

JS部分:

 Posted by at 4:52 下午
182010
 

题目已经说了要干神马了。。。贴代码吧:

function synlogin($get, $post) {
$uid = $get['uid'];
$username = $get['username'];
$password=$get['password'];
if(!API_SYNLOGIN) {
return API_RETURN_FORBIDDEN;
}
require_once $this->appdir.'./forumdata/cache/cache_settings.php';
require_once $this->appdir.'./uc_client/client.php';
$cookietime = 2592000;
$discuz_auth_key = md5($_DCACHE['settings']['authkey'].$_SERVER['HTTP_USER_AGENT']);
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
$uid = intval($uid);
$query = $this->db->query("SELECT username, uid, password, secques FROM ".$this->tablepre."members WHERE uid='$uid'");
if($member = $this->db->fetch_array($query)) {
_setcookie('sid', '', -86400 * 365);
_setcookie('cookietime', $cookietime, 31536000);
_setcookie('auth', _authcode("$member[password]\t$member[secques]\t$member[uid]", 'ENCODE', $discuz_auth_key), $cookietime);
} else {
if($data = uc_get_user($username)) {
$this->db->query("INSERT INTO ".$this->tablepre."members(uid,username,password,email,groupid) VALUES ($uid,'$username','$password','$data[email]',10)");
$this->db->query("insert into ".$this->tablepre."memberfields(uid) values('$uid')");
$query = $this->db->query("SELECT username, uid, password, secques FROM ".$this->tablepre."members WHERE uid='$uid'");
if($member = $this->db->fetch_array($query)) {
_setcookie('sid', '', -86400 * 365);
_setcookie('cookietime', $cookietime, 31536000);
_setcookie('auth', _authcode("$member[password]\t$member[secques]\t$member[uid]", 'ENCODE', $discuz_auth_key), $cookietime);
}else{
_setcookie('cookietime', $cookietime, 31536000);
_setcookie('loginuser', $username, $cookietime);
_setcookie('activationauth', _authcode($username, 'ENCODE', $discuz_auth_key), $cookietime);
}
}
}
}

其中$this->db->query(“insert into “.$this->tablepre.”memberfields(uid) values(‘$uid’)”);
这句很重要哦,网上的解决方案好像都没有这句,导致了spache.php页面很多无法正常显示。。。

 Posted by at 5:26 下午
112010
 

有时候蛋疼一下,用PHP自动抓取一些东西。不过碰到ASP.Net这玩意儿顿时傻眼了,翻页等等都是用控件实现的。

1

还好以前学了点皮毛,知道用ViewState这神奇的玩意儿,知道这个就足够了,打开FireFox,以及HttpWatch,点一下“下一页”请求一下:

2

其他的没啥用,最重要的是最三面的三个参数。分别是viewstate,方法,参数。

很好办了。curl请求一下。就能获取到刷新后的页面了。

所以。。。HttpWatch真是神器,同样的FireBug、Fiddler也是!

Tips:viewstate的值可以用phpquery或者simple html dom 轻松获取,当然,如果蛋疼一下,用正则去获取也是可以的。

082010
 


HawkHost又出五折优惠码了:august2010

优惠/折扣描述:购买任何虚拟主机,优惠50%,首次购买有效,续费按原价
适用主机类型:虚拟主机(Shared Hosting)
有效期:2010-08-01 ~ 2010-09-01

用了半年多的hawkhost的空间,还算相当的不错,速度也很牛掰,还用自带的SSH fan qiang,甚至还可以流畅看480P的 youtube 视频,推荐一下,而且现在价格也不是很贵。

有兴趣的筒子可以去看看 http://www.hawkhost.com

 Posted by at 12:18 下午
252010
 

07/27Update:26日晚上新的域名再次挂掉。终于找到了原因,因为新域名正在备*案,被那个叫做未*备*案域*名*过*滤*系*统给拦截掉了。好吧,老老实实备案去。

这件血案真的是不堪回首,整整花了我们5天时间,导致了项目严重延期。

7月16日。晚上发现服务器上有个网站经常性出现了打不开的情况,查看了cacti,服务器的负载和网络都非常正常,调高了php的timeout,以为没多少问题了。事实是自己刷新也没问题了。

7月17日,问题大爆发了,服务器上另外一个网站也大规模出现了此问题,但非常奇怪的是,还有两个网站是没问题的。从此拉开了纠结的5天难熬的时间的序幕。服务器后端是使用apache的,然后采用nginx做反向代理。调高了nginx的缓存和timeout,都基本无效。但是非常奇怪的是,使用相同配置的另外两个网站是一点问题都没,啥都正常。

查看了日志,nginx中大量出现499错误。google了一下,是“client has closed connection”的nginx自定义错误。但很奇怪的是,使用apache的端口去访问却是一切正常,因此,初步判定是nginx的问题,好吧,既然是nginx问题,那就研究这玩意儿,调配置、换Development版本的nginx都无效,陷入无头绪状态。有点怀疑是域名问题了,此时用hosts绑定了一个域名上去,刷刷是正常的。

7月18日,绝对废掉nginx,直接用apache上,刚开始好好的,后来发现又不行了。日志中status 是200 ,但返回的是0字节。这个就纠结了。根据这个可能有人会问了,是不是因为我代码的问题,其实我判断不是。因为使用如下代码都经常性地刷不出来

<?php
 echo "hi";
 sleep(3);
 echo "dada";
 ?>

非常纠结。

7月19日,此时有点怀疑是PHP的问题,但排查了之后发现不是。换上nginx+fastcgi同样的问题。还好,公司里还有一台服务器。装上了Ubuntu以及其他必须的软件,在局域网内怎么刷都没有问题。

7月20日,把公司里的服务器上架到机房,发现老域名刚开始好好的,但一下子又老问题重现了,整套环境都换了,因此肯定不是我们的问题了。域名是godaddy上注册了,dns转换是用dnspod的。很有可能是DNSPOD问题,也很有可能是域名被XXX盯上了(事实证明不是,因为被盯上的话是被重置)。

7月21日,换了新域名后,一切正常的。到今天为止,一切正常。

其实到今天还是不思其解。。。

莫非真的是域名问题,还是DNSPOD引起的???

话说nginx+fastcgi真是好用,性能杠杠的!