2016-05-12 2 views
0

im в настоящее время пытается сделать систему входа в систему. Пользователь имеет 3 атрибута: id, пароль и пользовательский уровень. Другая страница будет открыта для разных уровней пользователей (имеется 3 уровня пользователя). Я не могу реализовать третью функцию, я могу войти в систему, используя только идентификатор и пароль. Вот код, у меня естьmySQL Результат запроса для перенаправления на другую веб-страницу

<?php 
error_reporting(E_ALL^E_DEPRECATED); 
$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="user"; // Database name 
$tbl_name="test"; // Table name 

$dbcon=mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 

$myid=$_POST['id']; 
$mypassword=$_POST['pw']; 

$myid = stripslashes($myid); 
$mypassword = stripslashes($mypassword); 
$myid = mysql_real_escape_string($myid); 
$mypassword = mysql_real_escape_string($mypassword); 
$sql="SELECT * FROM $tbl_name WHERE id='$myid' and password='$mypassword'"; 
$result=mysql_query($sql); 

$count=mysql_num_rows($result); 

if($count==1){ 

header("location:login_success.php"); 
} 
else { 
echo "Wrong Username or Password"; 
} 

?> 
+0

Я не совсем уверен, я понимаю вашу проблему. – WillardSolutions

+0

Оцените безопасность своих пользователей и начните использовать [mysqli] (http://php.net/manual/en/book.mysqli.php) и [password_hash] (http://php.net/manual/en/function .password-hash.php). Ваш код открыт для нескольких дыр в безопасности. – Keiji

+0

Почему люди всегда рекомендуют mysqli над PDO? mysqli подобен подпарам по сравнению с PDO. – Mikey

ответ

-1

Вы должны получить уровень пользователя из базы данных, а затем сделать, если заявление, например, так:

$sql="SELECT * FROM $tbl_name WHERE id='$myid' and password='$mypassword'"; 
$result=mysql_query($sql); 
$row = mysql_fetch_array($result); 

if ($row['userlevel'] == 1) { 
.... 
} elseif ($row['userlevel'] == 2) { 
.... 
} elseif ($row['userlevel'] == 3) { 
.... 
} 
+0

@ Keiji является правильным. Начните использовать mysqli. Функции mysql устарели в PHP7. –

+0

Оператор ['switch'] (http://php.net/manual/en/control-structures.switch.php) вызвал и хотел поговорить с вами. – tadman

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