2017-12-04 4 views
1

パスワードとユーザー名が挿入されていると、コードで変数を設定することが想定されています。しかし、$ _SESSION変数は決して設定されず、私は理由を知らず、ログインページにリダイレクトしています。

loginform.php:

<?php 
    $server = 'hiddenforthispost'; 
    $username = 'hiddenforthispost'; 
    $password = 'hiddenforthispost'; 
    $schema = 'hiddenforthispost'; 
    $pdo = new PDO('mysql:dbname=' . $schema . ';host=' . $server, $username, $password, 
    [ PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION]); 

       if (isset($_POST['Submit'])) { 
        if(empty($_POST['Username']) || empty($_POST['Password'])) { 

          echo '<p> You must insert all of the fields! </p>'; 
         } 
         else { 
          $stmt = $pdo->prepare('SELECT * FROM logins 
           WHERE login_name = :username'); 
          $criteria = [ 
             'username' => $_POST['Username'] 
             ]; 
          $stmt->execute($criteria); 
          $user = $stmt->fetchColumn(1); 
          echo $user; 
          if (password_verify($_POST['Password'], $user)) { 
           session_start(); 
           $_SESSION['loggedin']; 
           header('location: adminpage.php'); 
           } 
           else { 
            echo '<p> Wrong password </p>'; 
           } 
          } 
         } 
     ?> 

私は唯一のアクセスにユーザーにログインするページ: adminpage.php:

<?php 
session_start(); 
if(!isset($_SESSION['loggedin'])){ 
    header('location: loginpage.php'); 
} 
else { 
} 
?> 
+0

そして、はい、私はこの問題について無数の記事をチェックしましたし、それらのどれも動作しません。私は何が間違っているのか分かりません。 – xafierz

+0

エラー報告をオンにします。おそらく、セッションが開始される前にヘッダーを送信するような出力があります。これを解決するには、session_start()をすべてのファイルの先頭に移動します。 –

+0

@JohnConde私の答えを見て、私はそれがその質問には何もないと思います。 – Barmar

答えて

0

あなたはセッション変数には何も入れていません。行に変数を単独で書き込んでも、何も割り当てられません。 loginform.php

、ライン:

$_SESSION['loggedin']; 

のようなものでなければなりません:

$_SESSION['loggedin'] = true; 
+0

= $ userのようなものを置くことができますか? @Barmar – xafierz

+0

あなたは好きなものを置くことができます。他のスクリプトは設定されているかどうかをチェックするだけで、何が入っているか気にしません。 – Barmar

+0

別の質問でも、私はsession_start()を置くことができます。 if(password_verify($ _ POST ['Password']、$ user))?私はsession_start()がすべてのコードの上になければならないことを知っていますが、if文の条件が満たされていなければ何も開始したくありません@Barmar – xafierz

関連する問題