2012-11-05 85 views
1

我有這段PHP代碼,在我的網站上查找帳戶提示功能。基本上如果用戶違反了網站上的條款和條件,在登錄時他們被重定向到一個提示頁面,說你非常淘氣,這裏是一個警告。僅重定向到頁面一次?

我的代碼是這樣的:

<?php 

$account_prompt = account_prompt(); 
while ($prompt = mysql_fetch_array($account_prompt)) 


if ($prompt['account_prompt'] == '1') { 
    redirect_to("prompt.php"); 
} 
?> 

我的問題是我怎麼能得到它只有一次重定向? 感謝

+0

我還是很困惑。您希望根據存儲在數據庫中的值重定向一次,但您不希望將數據庫更改爲在用戶點擊「prompt.php」頁面上的某些內容後發生重定向。我沒有看到你們如何擁有兩者。要麼繼續顯示提示頁面,直到他們點擊「我同意」,或者在顯示頁面時重置數據庫值,或者讓另一列顯示您顯示了它,但他們不同意 – Greg

+0

在prompt.php頁面上更新數據庫那'account_prompt''字段設置爲0.然後下次他們登錄時,他們不會被提示。 – Greg

+0

呃是的,但我打算這樣做,當他們點擊我同意聲明。但如果它不可能重定向一次,那麼也許如果它更容易設置爲0,那麼是的,這會更好 –

回答

1

,除非你是在一個無限循環stucked他只是重定向1CE ...

試試這個

if (isset($prompt['account_prompt']) && $prompt['account_prompt'] == '1') { 
    header("Location: prompt.php"); 
    exit; 
} 
+0

而'退出;'會很好 – zerkms

+0

@zerkms感謝指出:) –

+0

謝謝你試過你給的原始代碼,didn'工作。什麼退出;你在評論之後說過,我是否應該添加第二個退出; ? –

0

使用這是根據你的條件設置爲1的標誌,並採取重定向出循環。

  $flag = 0; 
      while ($prompt = mysql_fetch_array($account_prompt)) { 


       if ($prompt['account_prompt'] == '1') $flag = 1; 
      } 

      if ($flag == 1) 
        redirect_to("prompt.php"); 
+0

謝謝,但沒有奏效。 –

+0

您是否有相同的代碼來檢查prompt.php中的account_prompt? – janenz00