用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4718|回复: 4
收起左侧

防止重复提交的问题

[复制链接]
发表于 2009-4-9 17:29:32 | 显示全部楼层 |阅读模式
道理其实很简单,,,,在提交页设置一cookie或会话,,,,在处理页,,判断下是否存在,,,
处理完销毁掉,,,,,,
这样的思路是没问题的
PHP复制代码
 
 function test1()
 {
  if(empty($_COOKIE['t'])) {echo '禁止重复提交!'; die;}
  echo $_COOKIE['t'];
  setcookie('t', '', -100);
 }
 
 function test()
 {
  setcookie('t', 't', time()+600);
  echo $_COOKIE['t'];
  redirect('home/test1');
 }
 
复制代码



可是,我用到表单提交,,就不行了,,,,在处理页取不到cookie值,,超级奇怪,,,,
发表于 2009-4-9 17:49:41 | 显示全部楼层
那就用session试试好了
发表于 2009-4-9 18:25:57 | 显示全部楼层
session比较安全,cookie可以伪造
发表于 2009-4-9 22:02:02 | 显示全部楼层
本帖最后由 doutu 于 2009-4-9 22:05 编辑

设置cookie有问题,请看这里描述:
http://cn2.php.net/manual/en/function.setcookie.php#31170
 楼主| 发表于 2009-4-10 10:31:51 | 显示全部楼层
PHP复制代码
 
/**
         * 第三步处理
         *
         */

        function do_step3()
        {
                echo $_COOKIE['t'];
                if(empty($_COOKIE['t'])) {echo '禁止重复提交!'; die;}
 
        }
 
       
        /**
         * 第三步
         *
         */

        function step3()
        {
                setcookie('t', 'tt', time()+600);
                echo $_COOKIE['t'];
                $this->load->view('step3.html');
        }
 
复制代码


这样就取不到COOKIE
A PHP Error was encountered
Severity: Notice

Message: Undefined index: t

Filename: controllers/home.php

Line Number: 28
真TM见鬼!!!!!!!!

本版积分规则