Сделать переменные глобальными в PHP? - PullRequest
0 голосов
/ 22 января 2011

Необходимо сделать глобальные $ courseInfo и $ row, чтобы их можно было использовать для печати деталей строки в заголовке DIV.

Понятия не имею, как это сделать. Любая помощь будет великолепна.

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

Ответы [ 3 ]

4 голосов
/ 22 января 2011

Я думаю, что они уже глобальные. "PHP не имеет области действия уровня блока."

1 голос
/ 22 января 2011

Вы можете хранить их в переменных сеанса, аналогично вашему $_SESSION['LoggedIn']

0 голосов
/ 22 января 2011

Вы также можете использовать переменную 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();

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...