2016-05-22 11 views
0

私のリダイレクトが機能しないようです。ファーストクラスである:リダイレクトするヘッダーの場所を取得できません

public function LoginUser($username, $password){ 
    // Check if user adn password matches an user in database 
    if(isset($_POST['username'])){ 
     $username = mysqli_real_escape_string($this->db, $username); 
     $password = mysqli_real_escape_string($this->db, $password); 

     $sql = "SELECT * FROM users WHERE name='$username'"; 
     $result = mysqli_query($this->db, $sql) or die('Fel vid SQL-fråga - inloggning'); 

     if(mysqli_num_rows($result)){ 
      $row = mysqli_fetch_array($result); 
      $stored_password = $row['password']; 
      // check if hash_equals-function exists 
      if(function_exists("hash_equals")) { 
       //If excists 
       if(hash_equals($stored_password, crypt($password, $stored_password))) { 
        // create session 
        header("location: user/loggedin.php"); 
        $_SESSION['login'] = $username; 
       }else{ 
        echo '*WRONG!*'; 
       } 
      }else{ 
       //if not exists, use alternate method 
       if($stored_password == crypt($password, $stored_password)){ 
        // create session that tells that we're logged in 
        header("location: ../user/loggedin.php"); 
        $_SESSION['name'] = $username; 
       }else{ 
        echo 'WRONG!'; 
       } 
      } 
     } 
    } 
} 

とクラスのための私のコール:

<?php 
// call class User.php, LoginUser 
$users = new User(); 
if(isset($_POST['loginButton'])){ 
    if($users->LoginUser($_POST['username'],  $_POST['password'])){ 
     //header("location: admin/admin.php"); 
    }else{ 
     echo 'wrong username or password'; 
    } 
} 
+0

このような行に2 elsesを持つことはできません。もちろん、 –

+0

です。最後には何とかしてくつろいだ。削除して編集しましたが、まだ動作していません。 – Kalabalik

+0

何が起こりますか?あなたは何を得ますか? –

答えて

0

あなたが試すことができます。

if(hash_equals($stored_password, crypt($password, $stored_password))) { 
     // create session 
        header("location: user/loggedin.php");     
     $_SESSION['login'] = $username; 

    }else if($stored_password == crypt($password, $stored_password)){ 
     // create session that tells that we're logged in 
     header("location: ../user/loggedin.php"); 
     $_SESSION['name'] = $username; 
    }else{ 
     echo 'WRONG!'; 
    } 

を、それが

location: user/loggedin.php 

ORである場合にも確認してください

location: ../user/loggedin.php 
+0

回答ありがとうございましたが、ひどく助けにならないようでした。私はJonが何かが間違っていることが正しいと思う。 – Kalabalik

関連する問題