Var.$ Logged определен в global.php, а не index.php

Я пытался следовать вместе с учебником на канале YouTube

Помогаем развивать

когда я столкнулся с несколькими проблемами. Во-первых, его код выхода из урока № 5 больше не работает из-за изменения

    if(session_is_registered()  

Я думаю, что заменил это должным образом

    if( isset($_SESSION[$username])){

Но теперь я получаю сообщение об ошибке "Примечание: неопределенная переменная: вошел в C:\xampp\htdocs\members \index.php в строке 2"

Когда я проверяю строку 2 индекса, это показывает, что я в первую очередь включаю global.php

    <?php include_once('scripts/global.php');
     if($logged==1){
    header("Location:home.php");
        exit();
    }
    ?>

Затем я проверяю global.php, у которого $logged=1, так что он должен быть определен... если я не пропустил что-то. Я действительно пытаюсь узнать больше здесь, поэтому любая помощь будет полезна в объяснении, что не так и почему.... Спасибо.

    <?php
    session_start();
    include_once('scripts/connect.php');

     //checking if the sessions are set
    if(isset($_SESSION['username'])){
               $session_username=$_SESSION['username'];
               $session_pass=$_SESSION['pass'];
               $session_id=$_SESSION['id'];

               //checking the member data
               $query=mysql_query("SELECT * FROM members WHERE
     id='id' AND password='pass' LIMIT 1")or die("Could not check member");
               $count_count=mysql_num_rows($query);
               if(count_count>0){
                //logged in stuff here
                $logged=1;

               }else{
                   header('Location:logout.php');
                   exit();
               }

               }elseif(isset($_COOKIE['id_cookie'])){
                $session_id=$_COOKIE['id_cookie'];
                $session_pass=$_COOKIE['pass_cookie'];

                //checking the member data
               $query=mysql_query("SELECT * FROM members WHERE    
    id='$session_id' AND password='$session_pass' LIMIT 1")or die("Could not check member");
               $count_count=mysql_num_rows($query);
               if(count_count>0){
                    while($row=mysql_fetch_array($query)){


    $session_username=$row['username'];
                    }
                   //create sessions
                   $_SESSION['username']=$session_username;
                   $_SESSION['id']=$session_id;
                   $_SESSION['pass']=$session_pass;

                //logged in stuff here
                    $logged=1;

               }else{
                   header('Location:logout.php');
                   exit();
                   }
               }



    ?>

1 ответ

Решение

$logged установлен в условном выражении, поэтому проследите, чтобы вы не столкнулись со случайным перенаправлением (напоминает мне о сумасшедших "переходных" днях, через которые я прошел), и в итоге $logged не устанавливается. Или инициализируйте $logged в начале включенного скрипта.

Другие вопросы по тегам