2016-03-24 9 views
0

私は管理者アカウントにリダイレクトするログインスクリプトを持っており、ログイン機能内で作成されたいくつかのセッション変数をエコーアウトしたいが、私は '未定義変数'通知を受け取り続ける。

この

は私のログインスクリプト

$connect = mysqli_connect('localhost', 'root', '', 'cms1'); 

function login() { 
    global $connect; 
    $email = mysqli_real_escape_string($connect, $_POST['email']); 
    $password = mysqli_real_escape_string($connect, $_POST['password']); 
    $result = mysqli_query($connect, "SELECT * FROM users WHERE email='$email'"); 
    $row = mysqli_fetch_array($result, MYSQLI_BOTH); 

    if (password_verify($password, $row['password'])) { 
     session_start(); 
     $_SESSION["id"]    = $row['user_id']; 
     $_SESSION["name"]  = $row['name']; 
     $_SESSION["email"]  = $row['email']; 
     $_SESSION["gender"]  = $row['gender']; 
     $_SESSION["role"]  = $row['role']; 

     header('Location: admin/index.php#/dashboard'); 

    } else { 
     header('Location: index.php#/posts/WrongPassword'); 
    } 
} 

これは、あなたのセッションを開始していない可能性がありますように

<div class="pcard"> 
    <img src="../images/T1.jpg" width="100%" alt="..."> 
    <div class="body"> 
     <h4><?php echo $_SESSION["name"]; ?></h4> 
     <h5>Admin</h5> 
    </div> 
</div> 
+2

あなたは 'session_start();'でセッションを開始しましたか? – Henders

+1

session_start()がどこかにありません。 index.phpのhtmlがレンダリングされる前にどこかで必要と思うと思います。 – Steven1978

+0

ちょうどそれらを試して、それは感謝を働いた。私は新しい何か小さいものを逃していたが、私は何を知っていなかった。私がPHPセッションで作業して以来、しばらく経っています。 – sidlack

答えて

0

が見える私のadminディレクトリ内の私のindex.phpファイルからの抜粋です。

E_NOTICE : type 8 -- Undefined variable: _SESSION -- at line 3

:あなたはあなたに $_SESSION変数を使用する必要があり、各ページのセッションは、このようなエラーになります起動しない場合は

session_start();

:あなたはこのようにそれを起動する必要があります

PHPを使用する方法が不明な場合は、the docs for sessionsをPHPで調べる価値があります。