2012-09-18 2 views
-4

쿼리 제출을 두 번 방지하기 위해이 코드 부분을 사용했습니다! 이제는 이것이 작동하도록하기 위해 사용하는 쿼리이며 작동합니다.조건이 적용되면 중첩 됨

$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!"; 
} 
+3

* * 작동하지 않는다는 것을 의미합니까? – Tchoupi

+0

그것은 내가 여전히 양식을 제출하면 새로 고침을 의미합니다. .. 다시 .. 제출 작업을 방지하는 위의 코드를 의미하고, 위의 코드는 그저 함께 모을 수는 없습니다. if 구문, else if 등등 .. – Al12

+0

forst 코드 스 니펫에 시작 코드가없는 경우 – Onheiron

답변

0

$_SESSION["FORM_SECRET"]은 기본적으로 설정되지 않습니다.

프로세스를 취소하십시오. 양식을 비밀 키로 지정하고 양식을 제출할 때 해당 비밀을 세션에 저장하십시오. 그런 다음 다음 제출시 $_SESSION["FORM_SECRET"]이 설정되어 있는지 확인하고 제출 된 비밀번호와 동일하므로 동일한 양식의 두 번째 제출임을 알 수 있습니다.

+0

숨겨진 입력 필드가있는 $ _SESSION [ 'form_secret']을 얻습니다. – Al12

+0

'$ _SESSION'은 세션 정보입니다. '$ _POST'를 의미합니까, 아니면 다른 것을 혼합하고 있습니까? – GolezTrol

관련 문제