2011-01-22 2 views
0

ヘッダーDIVの行の詳細を印刷するために$ courseInfoと$ row globalを作成する必要があります。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フレームワークを読んでください。 – 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(); 

?> 
関連する問題