在网上发现一个在线闹铃,是PHP做的。
今天用Perl也做了一个,原理是通过ajax方式浏览器和服务器进行通信,闹钟的时间放在cookie里。
简单记录一下:
找个mid文件,改名为alarm.mid,上传到cgi空间。
创建tools_alarmclock.htm文件,里面放上:
请手工设置响铃时间:
创建tools_alarmclock2.cgi文件,内容:
#!/usr/bin/perl
if($ENV{'REQUEST_METHOD'}eq"POST"){
read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'});
}elsif($ENV{'REQUEST_METHOD'}eq"GET"){
$buffer=$ENV{'QUERY_STIRNG'};
}
@pairs=split(/&/,$buffer);
foreach $pair(@pairs){
($name,$value)=split(/=/,$pair);
$value=~tr/ //;
$value=~s/%([a-f A-F 0-9][a-f A-f 0-9])/pack("C",hex($1))/eg;
$FORM{$name}=$value;}
my $alarmtime=$FORM{'alarmtime'};
$alarmtime=~s/\+/ /g;
use Date::Parse;
my $alarmstamp = str2time($alarmtime);
print "Set-Cookie: alarmstamp=$alarmstamp\n";
my $date = `date`;
$date =~s/CST/HKT/;
my $timestamp = str2time($date);
$time_cha = $alarmstamp - $timestamp;
$time_cha_min = int ($time_cha / 60);
print "Content-type: text/html\n\n";
print <
http://www.w3.org/1999/xhtml">
function start1(){
var url='tools_alarmtime2.cgi';
\$.ajax({type: "get",
url: url+'?rand='+ Math.random(),
success: function(data) {
\$("#jstx").html(data);
}
})
setTimeout("start1()", 8000);
}
您设置的闹钟时间是$alarmtime
HT
创建tools_alarmtime2.cgi文件:
#!/usr/bin/perl
print "Content-type: text/html; charset=GB2312; Cache-Control: no-cache, must-revalidate\n\n";
use Date::Parse;
my $date = `date`;
$date =~s/CST/HKT/;
my $timestamp = str2time($date);
$cookie=$ENV{'HTTP_COOKIE'};
$alarmstamp=$1;
$time_cha = $alarmstamp - $timestamp;
if ($time_cha < 0)
{
$music = "";
}
print <
距离响铃剩余秒数$time_cha秒
$music
HT
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21129783/viewspace-734918/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21129783/viewspace-734918/