发信人: zhcharles(小传 -> 心碎了无痕)
整理人: workingnow(2002-09-30 11:47:46), 站内信件
|
【 在 garfieldmao 的大作中提到:】
:Perl中分解QueryString时是按照&和=两个char分解的,如果
:QueryString="http://www.ok.com/cgi-bin/a.cgi?name=maozai&win"
:就是说,name为一个参数,值为maozai&win,但是perl会把后面的win当作key,但是我看网易的不会这样子。
:怎么解决这个问题?(在不限制用户输入的情况下)
:......
可用 Javascript 和 perl 来实现!
以下是 javascript:
<script language=javascript>
var url = 'http://www.ok.com/cgi-bin/a.cgi?' + escape('name=maozai&win');
document.write(url);
</script>
以下是用 perl 实现:
my url = 'http://www.ok.com/cgi-bin/a.cgi?' . escape('name=maozai&win');
sub escape {
my $toencode = shift;
return undef unless defined($toencode);
$toencode =~ s/([^a-zA-Z0-9_.-])/uc sprintf("%%%02x",ord($1))/eg;
return $toencode;
}
结果为:
http://www.ok.com/cgi-bin/a.cgi?name%3Dmaozai%26amp%3Bwin
---- █████████
█┌─────┐█
█│zhcharles │█
█│ CGI 版 │█
█│ 版 ★ 斧 │█
█│ 专用章 │█
█└─────┘█
█████████
答之意,乃解问者之困也!
我无意将答案写得如何如何动听,只求能真正地解决您的问题!
小传 ( Charles Feng ) [email protected] OICQ:17866295
|
|