清除CGI参数的问题

清除CGI参数的问题

清除CGI参数的问题
1.htm代码
[code]<form action=1.pl>
<input type=text name=222>
<input type=submit>
</form>[/code]
1.pl代码
[code]use CGI;
my $cgi=new CGI;
my $hehe=$cgi->param('222');
print "Content-type: text/HTML; charset=gb2312\n\n";
print "$hehe";
$cgi->delete_all();[/code]
比如在1.htm里面text里面填上111提交,然后进到2.pl页面print一个111出来,但是在2.pl页面刷新后为什么还print 111呢?看文档里写的delete_all方法清除cgi的所有参数啊,为什么不行呢,要实现刷新时清除原来传过来的参数要怎么写呢?
你是清除了接收参数的值。.
你是清除了接收参数的值。但是在页面刷新动作发生后。数据再次被发送。所以再次被赋值
那我该怎么办呢,就是说我.
那我该怎么办呢,就是说我想$hehe只在第一次传进来时有值,刷新时就让他为空,该怎么办呢
可在2.pl--print 前dele.
可在2.pl
print 前delete_all();
试了,还是没用~~~~~~[CCB.
试了,还是没用~~~~~~[CCB]10[/CCB]
很久以前做过类似的东西。.
很久以前做过类似的东西。希望我得记忆还没错 :)

保留 post 的数据是浏览器的一个功能。 最简单的解决方法是 提交后显示一个临时页面,然后再把用户转到你要显示的页面上。

复杂些 在表格里加个秘密数字(unique , 唯一),用户提交后这个数字保存在数据库里,如果这个用户再 refresh 这个表格,看看这个数字是否已在数据库存在。存在了就不允许提交。可以把这个和 session 加在一起用。

类似的方法也被用来防止黑客 hijack 用户的浏览器 session.
非常感谢.