2016-12-07 10 views
-1

ログイン情報&を有効にするためのコードを書いていました。有効な場合は、別のページにジャンプします。しかし、なぜそれはいつもログインページにとどまっていますか? のindex.php:認証はクエリから有効な結果を返しません。

<?php 
session_start(); 
require('../model/database.php'); 
require('../model/admin_db.php'); 

$action = filter_input(INPUT_POST, 'action'); 

if ($action === NULL) { 

    $action = filter_input(INPUT_GET, 'action'); 

    if ($action === NULL) { 
     $action = ''; 
    } 
} 

if(!isset($_SESSION['is_valid_admin'])){ 
    $action = 'get_admin'; 
} 
switch($action){ 
    case 'get_admin': 
     $username = filter_input(INPUT_POST, 'username'); 
     $password = filter_input(INPUT_POST, 'password'); 
     echo $username; 
     echo $password; 
     echo is_valid_admin_login($username, $password); 

     if (is_valid_admin_login($username, $password)){ 
      $_SESSION['is_valid_admin']=true; 
      include ('admin_menu.php'); 
     } 
     else { 
      $login_message = 'you must login to view this page.'; 
      include ('adminlogin.php'); 
     } 

    break; 

admin_db.php:

<?php 
function is_valid_admin_login($username, $password) { 
    global $db; 
    $password = sha1($username . $password); 
    $query = 'SELECT username FROM administrators 
      WHERE username = :username 
          AND password = :password'; 

    $statement = $db->prepare($query); 
    $statement->bindValue(':username', $username); 
    $statement->bindValue(':password', $password); 
    $statement->execute(); 
    $valid = ($statement->rowCount() == 1); 
    $statement->closeCursor(); 
    return $valid; 
} 
?> 

とデータベースを接続すると何も問題はありません。

+0

私はあなたにリダイレクトされていません。ああ、そして*最終的には、 'prepared statements'を使う人。 – Nytrix

+0

あなたは 'adminlogin.php'をもう一度includeする必要があります。 – Jeff

+0

私は接続するapiを知らない。 'mysqli_'はあなたの質問の別のものです。実際にはPDOですか?このためのHTMLフォームはどこですか?あまりにも多くの未知数、受け入れられていない回答があまりにも多くの過去の質問。 –

答えて

0

include ('adminlogin.php');if elseステートメントの後に使用しています。だから毎回これが開きますadminlogin.php

ページをリダイレクトするには、Headerも使用できます。

+0

おっと、それはタイプミスです。ごめんなさい。そこにはいけません。 – Jasmine

+0

このadmin.phpを$ password = sha1($ username。$ password)とコメントアウトしました。それは同様のフォーマットを使用する顧客のログインページでは機能しません。 – Jasmine

+0

とヘッダーが機能しません。 – Jasmine

関連する問題