0

YouTube シャネルのチュートリアルに沿って進めようとしていました。

開発の支援

いくつかの問題に出くわしたとき。最初は、チュートリアル #5 のログアウト コードが変更されたため、機能しなくなりました。

    if(session_is_registered()  

私はそれを適切に置き換えたと思います

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

しかし、「通知: 未定義の変数: C:\xampp\htdocs\membership\index.php 2 行目にログインしました」というエラーが表示されます。

インデックスの 2 行目を確認すると、最初に global.php をインクルードしていることがわかります

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

それで、 $logged=1 を持つ global.php をチェックするので、定義する必要があります...何か不足していない限り。私は本当にここでもっと学ぼうとしているので、何が間違っているのか、そしてその理由を説明するのに助けていただければ幸いです....ありがとう。

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



    ?>
4

1 に答える 1

0

$logged は条件内に設定されているため、ランダムなリダイレクトにヒットしない可能性があることを理解するためにトレースバックし (私が過去に進めたクレイジーな「goto」の日々を思い出します)、最終的に $logged が設定されていません。または、含まれているスクリプトの先頭で $logged を初期化します。

于 2013-02-15T17:33:05.200 に答える