guoxin Posted February 14, 2008 Share Posted February 14, 2008 Hi all, I created a userlogin form where it will lead to either an administrator home page or user home page. In MySQL database, i create a table named "Login" where it contains the following: CREATE TABLE Login ( access_level INT NOT NULL, username VARCHAR(20) NOT NULL, password VARCHAR(25) NOT NULL, ); and i inserted the following values as well: INSERT INTO Login VALUES (1, 'guoxin', 'guoxinphilips'); INSERT INTO Login VALUES (2, 'jason', 'jasonphilips'); where access_level 1 represents administrator and access_level 2 represents user and i execute the sql statement in a page called "authenticate.php" which will determine either if the user is an administrator or a user: $sql ="SELECT * FROM $table_name WHERE username = '$_POST[username]' AND password = password('$_POST[password]') AND access_level = 1"; $result = @mysql_query($sql,$connection)or die(mysql_error()); //get the number of rows in the result set $num = mysql_num_rows($result); //print a message or redirect elsewhere,based on result if ($num != 0) { header("Location: http://www.bds-net.info/alan/admin_home.html"); exit; } else { header("Location: http://www.bds-net.info/alan/user-home.php"); exit; } but the result is it just go to the administrator home page regardless of the access_level 1 or 2. So is there anyone that can help me with this problem? Thanks folks Quote Link to comment Share on other sites More sharing options...
peranha Posted February 14, 2008 Share Posted February 14, 2008 $sql ="SELECT * FROM $table_name WHERE username = '$_POST[username]' AND password = password('$_POST[password]')"; $result = @mysql_query($sql,$connection)or die(mysql_error()); //get the number of rows in the result set $num = mysql_fetch_row($result); //print a message or redirect elsewhere,based on result if ($num['access_level'] == 1) { header("Location: http://www.bds-net.info/alan/admin_home.html"); exit; } else { header("Location: http://www.bds-net.info/alan/user-home.php"); exit; } Try the above code. I changed the $num = mysql_num_row($result); Also changed the if ($num !=0) You were counting rows, not actually getting the user level, and if there were more than 0 rows, which is true, it will always to go admin_home.php. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.