lxylxy888666 发表于 2009-4-9 17:29:32

防止重复提交的问题

道理其实很简单,,,,在提交页设置一cookie或会话,,,,在处理页,,判断下是否存在,,,
处理完销毁掉,,,,,,
这样的思路是没问题的

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值,,超级奇怪,,,,

moorland 发表于 2009-4-9 17:49:41

那就用session试试好了

visvoy 发表于 2009-4-9 18:25:57

session比较安全,cookie可以伪造

doutu 发表于 2009-4-9 22:02:02

本帖最后由 doutu 于 2009-4-9 22:05 编辑

设置cookie有问题,请看这里描述:
http://cn2.php.net/manual/en/function.setcookie.php#31170

lxylxy888666 发表于 2009-4-10 10:31:51


/**
         * 第三步处理
         *
         */
      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见鬼!!!!!!!!
页: [1]
查看完整版本: 防止重复提交的问题