2010-11-08 71 views
0

我有下面的代碼,檢查帖子的「否」,如果它存在打印和錯誤,或者如果沒有它重定向。無論post數組具有「NO」作爲值,每次都會重定向。PHP Post&Redirect

if($_POST["minRequirementsForm"] == '1') { 
    foreach($_POST as $key => $value) { 
     if ($value == 'no') { 
      $error = 1; 
     } else { 
      header('Location: mysite.com/app-stage1.php'); 
     } 
    } 
//print_r($_POST); 
} 

回答

5

只需使用header呼叫環路,並檢查$error

$error = false; 

if($_POST["minRequirementsForm"] == '1') { 
    foreach($_POST as $key => $value) { 
     if ($value == 'no') { 
      $error = true; 
     } 
    } 
} 

if (! $error) { 
    header('Location: mysite.com/app-stage1.php'); 
} 

注意,這個使用類型boolean而不是用於可變$error的整數,這是更合適。

+0

他不想重定向錯誤。所以聲明「錯誤」其他方式..;) – Stewie 2010-11-08 15:33:36

+0

謝謝你們!只要我發佈這個,我意識到我是如何愚蠢的:) – Andy 2010-11-08 15:36:24

+0

當然,如果他們選擇是的,然後IF返回true,它會重定向反正!再次感謝! – Andy 2010-11-08 15:36:49

0

由於非「否」字符串的後續值而重定向。它迴應錯誤,但由於下一個值,它重定向。嘗試在if(no)條件下退出,您將看到錯誤。

2

不要像你那樣使用它。只寫:

if (in_array('no', $_POST)) { $error = true; } 
if (!$error) { header('Location: mysite.com/app-stage1.php'); } 

最好是在php中使用已有的函數,而不是重新發明輪子。 或使用以下內容,這是更合適的:

if (!array_search('no', $_POST)) { header('Location: mysite.com/app-stage1.php'); } 
相關問題