2016-05-12 46 views
0

当前正在尝试做一个登录系统。用户有3个属性:id,密码和用户级别。一个不同的网页将打开不同的用户级别(有3个用户级别)。我无法实现第三个功能,我可以单独使用ID和密码进行登录。下面的代码我有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 。密码-hash.php)。您的代码面向多个安全漏洞。 – Keiji

+0

为什么人们总是推荐使用mysqli over PDO?与PDO相比,mysqli就像差劲。 – Mikey

回答

-1

你需要从数据库中获取用户级别,然后做一个if语句,就像这样:

$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

@凯吉是对的。开始使用mysqli。 mysql函数在PHP7中不推荐使用。 –

+0

['switch'](http://php.net/manual/en/control-structures.switch.php)声明已被调用,并且希望与您联系。 – tadman