2011-01-22 3 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

+0

Если $ _SESSION [ 'LoggedIn'] == 1 не удается, их $ courseInfo и $ row никогда не будут созданы. Кстати, вы не должны смешивать PHP и HTML как это. PHP допускает это только по историческим причинам. Никто больше этого не делает. Сначала вам нужно научиться правильно структурировать PHP-программу. Читайте на пироге PHP и zend framework. – Jay

ответ

4

Я думаю, что они уже глобальный характер. "PHP does not have a block-level scope."

+0

Они не могут быть уверены, потому что они не печатают детали. – ritch

+0

Однако, если я помещаю его в ту же область, то он работает. – ritch

+0

@ritch Что вы подразумеваете под «той же областью»? Куда вы его двигали, чтобы заставить его работать? – sdleihssirhc

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(); 

?> 
Смежные вопросы