2014-12-10 2 views
0

Я создал страницу login.html и скрипт login.php. В скрипте он сначала получит имя пользователя и пароль, которые мы вводим, затем проверяем его с помощью базы данных, если имя пользователя или пароль выходят или нет, если пользователь действителен, то он будет проверять свой идентификатор депатента и открывать свои страницы с правами на их удаление, но проблема заключается в том, что он постоянно открывает страницу администратора независимо от того, что их отдел. Пожалуйста, помогите мне в этом.Ошибка входа в систему PHP, MySQL

вот мой login.html код

<form id="form1" name="form1" method="post" action="login.php"> 
    <div class="form-group col-md-6"> 
     <label class="sr-only" for="exampleInputEmail1">User Name: *</label> 
     <input required type="text" class="form-control" id="username" name="username" placeholder="User Name: *"> 
    </div> 
<div class="form-group col-md-6"> 
     <label class="sr-only" for="exampleInputEmail1">Password: *</label> 
      <input required type="password" class="form-control" id="password"  name="password"   placeholder="Password: *"> 
    </div> 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    <input id="submit" type="submit" class="btn btn-lg btn-primary" value="Submit" style="width: 130px"> 
    Forgot Username or Password ?</form> 

login.php сценарий

<?php 
session_start(); 

ob_start(); 

$conn = mysqli_connect("localhost","root","","hct_db"); 
    if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
     } 
    // Define $username and $password 
    $username=$_POST['username']; 
    $password=$_POST['password']; 


    // To protect MySQL injection (more detail about MySQL injection) 
$username = stripslashes($username); 
$password = stripslashes($password); 
$username = mysqli_real_escape_string($conn, $username); 
$password = mysqli_real_escape_string($conn, $password); 
$sql="SELECT username, password FROM employee where username='".$username."' and  password='".$password."'"; 
$result=mysqli_query($conn,$sql); 

// Mysql_num_row is counting table row 
$count=mysqli_num_rows($result); 

// If result matched $username and $password, table row must be 1 row 
if($count==1){ 
$sql2="SELECT department FROM employee WHERE username='".$username."'"; 
$result2=mysqli_query($conn,$sql2); 
    if($result2==1){ 

$_SESSION['username'] = $username; 
$_SESSION['password'] = $password; 
header("location:admin/index.php"); 
} 
if ($result2==2){ 

$_SESSION['username'] = $username; 
$_SESSION['password'] = $password; 
header("location:developer/index.html"); 
} 
if ($result2==3){ 
$_SESSION['username'] = $username; 
$_SESSION['password'] = $password; 
header("location:sales/index.html"); 
} 

    else { 
    echo "Wrong Username or Password"; 
     } 
    ob_end_flush(); 
    ?> 
+0

Kind вторичный к заданному вопросу, но ваш код, кажется, указывает, что вы храните пароли как открытый текст. Это очень плохая идея. Ваше сопоставление с именем пользователя также должно быть нечувствительным к регистру. –

+0

да, сэр, я сделаю безопасное имя для входа в систему –

ответ

2

Вы не извлечение результата.

$result2=mysqli_query($conn,$sql2); 
    if($result2==1) 

только проверяет Wether в SQL-запрос был sucessfull, что это, возвращает истину, которая также перевести как 1. Выполните следующие действия:

$row = $result2->fetch_assoc(); 
if($row["department"]=="1") 

и так далее ...

+0

спасибо, сэр, спасибо большое :) –

Смежные вопросы