2012-11-04 21 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来代替。