如果条件问题,则嵌套

时间:2012-09-18 12:11:36

标签: php

我有这部分代码,我用它来阻止查询提交两次!现在,这是我使用的查询,以使其工作,并且它可以工作。

    $form_secret = isset($_POST["form_secret"])?$_POST["form_secret"]:'';    
    $query = "INSERT INTO coupon (user_id,points) VALUES ('$user_id','$points')";
    $result=mysql_query($query);

    if ($points == 250) 
    { 
       $url="http://testext.i-movo.com/api/receivesms.aspx?".$str_from.$str_zip.$phone.$str_time.$date1.$str_msg;
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($ch);
        curl_close($ch);
        return $output;
    }
    else if ($points == 500) 
    {
        $url="http://testext.i-movo.com/api/receivesms.aspx?".$str_from.$str_zip.$phone.$str_time.$date1.$str_msg;
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($ch);
        curl_close($ch);
        return $output;
    }
    else 
    {
        echo "We are sorry, you don't possess enough points in order to take the coupon";   
    }

完美至今! 我需要的是防止双重提交,因此我在这里使用此代码,但问题是,当我把所有上面的代码放在这一个,它不起作用..任何人请告诉我如何联合这两个代码?感谢..

if(isset($_SESSION["FORM_SECRET"])) 
{
    if(strcasecmp($form_secret, $_SESSION["FORM_SECRET"]) === 0) 
    {
        /*Put your form submission code here after processing the form data, unset the secret key from the session*/
        unset($_SESSION["FORM_SECRET"]);
    }
    else 
    {
        //Invalid secret key
    }
} 
else 
{
    //Secret key missing
    echo "Form data has already been processed!";
}

1 个答案:

答案 0 :(得分:0)

默认情况下不会设置

$_SESSION["FORM_SECRET"],因此您无法在第一时间提交表单。

撤消流程。为表单提供一个密钥,并在提交表单时将该秘密存储在会话中。然后,在下一次提交时,您可以检查是否设置了$_SESSION["FORM_SECRET"](并且与提交的密码相同),因此您将知道它是同一表单的第二次提交。