2011-01-22 57 views
0

需要制作$ courseInfo和$ row global,以便它们可用于在标题DIV中打印行详细信息。在PHP中使变量全局化?

没有线索如何做到这一点。任何帮助都会很棒。

<?php 


// Get Course ID From Link 
$ID = mysql_real_escape_string($_REQUEST['ID']); 

// Check the Course ID exists 
$courseCheck = mysql_query("SELECT * FROM Courses WHERE CourseID = '".$ID."'"); 

if (mysql_num_rows($courseCheck) == 1) { 

    $checkMember = mysql_query("SELECT * FROM CourseMembers WHERE CourseID = '".$ID."' AND UserID = '".$_SESSION['UserID']."'"); 

    if (mysql_num_rows($checkMember) == 1) { 

     ?> 
     <html> 
     <head> 
      <!-- Style Sheets --> 
      <link rel="stylesheet" href="style/reset.css" type="text/css" media=screen /> 
      <link rel="stylesheet" href="style/style.css" type="text/css" media=screen /> 
     </head> 
     <body> 

     <?php 
     if ($_SESSION['LoggedIn'] == 1){ 

      $courseInfo = mysql_query("SELECT * FROM Courses WHERE CourseID = '".$ID."'"); 
      $row = mysql_fetch_assoc($courseInfo); 

     ?> 

      <div id="container"> 
       <div id="side"> 
        <?php include("lib/sidebar.php"); ?> 
       </div> 
       <div id="main"> 
        <div id="mainbox"> 
         <div id="header"><b><?php echo $row['CourseName']; ?></b></div> 
         <p>Hello world, this is a test.</p> 
        </div> 
       </div> 
      </div> 
      <div class="clear"></div> 

      <?php 
      } 
     else { 
      echo "Not logged in."; 
     } 

    } 

    else { 
     echo "You are not a member of this Course"; 
    } 

} 

else { 
    echo "No Course Found"; 
} 

?> 
</body> 
+0

http://php.net/manual/en/language.variables.scope.php – marcog 2011-01-22 19:40:56

+0

如果$ _SESSION [ '的loggedIn'] == 1出现故障,他们$ courseInfo和$ row永远不会被创建。顺便说一句,你不应该像这样混合使用PHP和HTML。由于历史原因,PHP只允许这样做。没有人再那样做了。你需要学习如何正确构建一个PHP程序。阅读蛋糕PHP和zend框架。 – Jay 2011-01-22 19:54:48

回答

1

你可以将它们存储在会话变量中,类似于你$_SESSION['LoggedIn']

0

你也可以使用PHP变量$ GLOBALS,让你的变量在所有范围内可见的,但我不会推荐它为这样的任务。另外,要小心 - $ GLOBALS包含像$ _POST和$ _GET这样的超全局变量,你应该记住,当时。迭代它。此外 - 当你可以访问函数中的$ _GET和$ _POST时,它们的范围更小,你仍然需要使用$ GLOBALS来访问自定义函数。

实例为这种行为:

<?php 
error_reporting(-1); 

$GLOBALS['_customVar'] = 'foobar'; 
$GLOBALS['_GET']['id'] = 'myId'; 

    function myFnc() { 
    echo $_customVar; 
    } 

    function myFnc2() { 
    echo $_GET['id']; 
    } 

myFnc(); 
myFnc2(); 

?>