2012-11-04 52 views
0

我有我的長PHP腳本,並在末尾添加了一些JavaScript。在腳本中間,如果'if'語句爲true,那麼它們就是停止PHP腳本的其餘部分並輸出頁面的HTML部分的其餘部分的一種方式。這裏有一個小片斷:如何在腳本中間結束PHP腳本,但顯示頁面的其餘部分

... more code ... 
     case 2: 
      $e=$_POST['email']; 
      $n=$_POST['name']; 
      mysql_connect($dbloc,$dbuser,$dbpass); 
      mysql_select_db($dbname)or die(mysql_error()); 
       $query="SELECT * FROM users WHERE email='$e'"; 
      $re=mysql_query($query); 
      $numm=mysql_numrows($re); 
      if($numm>=1){ 
       $js="alert('Sorry but your email is currently in use. Please try again with a different email address.');"; 
       $url="./"; 
       exit(); 
      } 
      else{ 
       $_SESSION['rEmail']=$e; 
       $_SESSION['rName']=$n; 
      } 
     break; 
... more code... 

<html goes here /> 

我本來以爲exit()會剛剛結束PHP部分,但仍給後面的頁面的其餘部分,但似乎並不如此。

+1

'echo $ content;退出()'?或[flush](http://php.net/manual/en/function.flush.php)? – PeeHaa

+0

@PeeHaa謝謝flush()完美工作。 –

回答

0

exit()正在執行它做的傭人。它從被調用的地方退出您的PHP代碼。

你的概念,它會打印HTML的剩餘是錯誤的。 PHP代碼的整體被視爲一個PHP腳本,用標記了所有的邏輯/ PHP函數中<?php?>和文本之外就像文檔,並原樣輸出。

隨着if語句中退出後,它的代碼/文本完全沒有處理。我建議你使用break來代替。