2011-01-22 2 views
0

Nécessité de faire $ courseInfo et $ row global afin qu'ils puissent être utilisés pour imprimer les détails des lignes dans l'en-tête DIV.Rendre les variables globales en PHP?

Vous ne savez pas comment faire. Toute aide est la bienvenue.

<?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

+0

Si $ _SESSION [ 'LoggedIn'] == 1 échoue, les $ courseInfo et $ row ne seront jamais créés. BTW, vous n'êtes pas censé mélanger PHP et HTML comme ça. PHP ne le permet que pour des raisons historiques. Personne ne le fait plus. Vous devez d'abord apprendre à structurer correctement un programme PHP. Lisez sur le gâteau PHP et le cadre zend. – Jay

Répondre

4

Je pense qu'ils sont déjà mondiale. "PHP does not have a block-level scope."

+0

Ils ne peuvent pas être sûrs parce qu'il n'imprime pas les détails. – ritch

+0

Cependant, si je le mets dans la même portée, alors cela fonctionne. – ritch

+0

@ritch Que voulez-vous dire par «la même portée»? Où avez-vous déménagé pour le faire fonctionner? – sdleihssirhc

1

Vous pouvez les stocker dans des variables de session, de même à votre $_SESSION['LoggedIn']

0

Vous pouvez également utiliser la variable php GLOBALS de $ pour faire vos variables visibles dans tous les champs, mais je ne le recommanderais pas pour ce genre de tâche. Aussi, méfiez-vous - $ GLOBALS contient superglobals comme $ _POST et $ _GET, vous devriez garder cela à l'esprit, quand ie. itérer sur elle. De plus, lorsque vous pouvez accéder aux fonctions $ _GET et $ _POST, qui ont une portée plus petite, vous devez toujours utiliser $ GLOBALS pour accéder aux fonctions personnalisées.

Exemple de ce comportement de type:

<?php 
error_reporting(-1); 

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

    function myFnc() { 
    echo $_customVar; 
    } 

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

myFnc(); 
myFnc2(); 

?>