2016-03-10 3 views
-2

Я пытаюсь проверить, является ли тот, кто вошел в систему, пользователем или администратором, я создал столбец в моей БД с именем «pin» и поместил значение 0 или 1. , если контакт в 0, поэтому вошедший в систему администратор и пользователь в противном случае. вот мой код, но он не работал со мной, пожалуйста, помогите, я полностью новичокпроверить вход в систему, если пользователь или администратор с php

$query = mysql_query("SELECT ID, password FROM facultymember ". 
    "WHERE password='$password' AND ID='$ID'", $connection); 
$query2 = mysql_query("SELECT pin FROM facultymember ". 
    "WHERE password='$password' AND ID='$ID'", $connection); 
$row2 = mysql_fetch_assoc($query2); 
$check = $row2['pin']; 
$rows = mysql_num_rows($query); 
if ($rows == 1 && $check == 1) { 
    $_SESSION['login_user']=$ID; // Initializing Session 
    header("location: homeFM.php"); // Redirecting To Other Page 

} 
else if($rows == 1 && $check == 0) { 
    $_SESSION['login_user']=$ID; // Initializing Session 
    header("location: homeA.php"); // Redirecting To Other Page 
} else { 
    $error = "Username or Password is invalid"; 
} 
mysql_close($connection); // Closing Connection 
} 
+2

* «но это не сработало со мной» * - Значение? –

+0

страница homeFM.php открывается в каждой ситуации, для администратора и пользователя –

+1

Почему вы не запрашиваете 'pin' с первым запросом? Зачем запускать совершенно другой? – Jon

ответ

1

Хорошо, поэтому я переписал то, что вам нужно попробовать, и понять это для вас, с комментариями.

$query = mysql_query("SELECT ID, password, pin FROM facultymember ". 
    "WHERE password='$password' AND ID='$ID'", $connection); 

$row = mysql_fetch_assoc($query); 

if(false != $row){ // user info exists/correct 
    $_SESSION['login_user'] = $row['ID']; 
    if('1' == $row['pin']) { //not admin  
     header("location: homeFM.php"); // Redirecting To Other Page 
     die; 
    } else { //admin 
     header("location: homeA.php"); // Redirecting To Other Page 
     die; 
    } 
} else { //login doesn't exist 
    $error = "Username or Password is invalid"; 
} 

mysql_close($connection); // Closing Connection 

И это должно сработать для вас, надеюсь, комментарии объясняют это. Если это не сработает, сообщите мне, но это должно быть в соответствии с предоставленной вами информацией.

Это, как говорится ....

Я надеюсь, что ваши пароли хэшируются, вход продезинфицировать, и что вы смотрите, чтобы с помощью PDO или MySQLi классов вместо старой устаревшей mysql_ функции.

В качестве побочного примечания session_start(); необходим для запуска сеанса, а не просто назначения переменной в суперглобальном.

+0

Я очень ценю ваш ответ, но это не так, t на самом деле –

+0

Тогда мне нужно больше информации, чтобы помочь. Можете ли вы дать некоторые фактические данные из базы данных? Когда вы говорите «это не работает», что вы имеете в виду? – Jon

+0

страница вообще не работает –

0
Error: There is 1 more closing curly braces '}' found 

Я предполагаю, что это последняя фигурная скобка, которая нуждается в удалении

$query = mysql_query("SELECT ID, password FROM facultymember WHERE password='".$password."' AND ID=".$ID, $connection); 

$query2 = mysql_query("SELECT pin FROM facultymember WHERE password='".$password."' AND ID=".$ID, $connection); 

Ваши запросы имели странную конкатенацию

+0

эта скобка, если для другого оператора, выше которого я не копировал –

+0

Обновлено мой ответ –

+0

ваше изменение вызвало проблему, страница больше не работает –

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