Hi,
I'm trying to create a separate usernames with the same login page using php and MySQL. I have tried adding different things to my login code for it to work but no progress. Basically i want to create something like this:
A staff would be able to have a username and password and be directed to the staff page and the student would be able to have a username and password and be directed to the student page and the admin would be able to have a username and password and be directed to the admin page. But what i'm getting right now is everyone that is a staff, admin or student is being directed to only the student page.

This is my code if anyone can help me out please that would be really nice..

main_login.php

<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="form1" method="post" action="checklogin.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Member Login </strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input name="mypassword" type="text" id="mypassword"></td>

</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>

checklogin.php

<?php
ob_start();
$host="localhost"; // Host name
$username="root"; // Mysql username
$password="ammie"; // Mysql password
$db_name="pa"; // Database name
$tbl_name="user"; // Table name
 // Get info from the session

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// Define $myusername and $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];


$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}

ob_end_flush();
?>

login_success.php

<?
// Check if session is not registered , redirect back to main page.
// Put this code in first line of web page.
session_start();
if(!session_is_registered(myusername)){
header("location:http://www.yahoo.com");
}
else  {
header("location:admin/index.php");
}
?>

<html>
<body>
Login Successful
</body>
</html>

How do you make out whether a user is an admin, a student or a staff member ?

Hi dami06,

You will need to implement a system that checks for access levels by giving users a specific access level (user, staff, admin etc). This will require you to modify your users table in the database and change your code dramitacally, as I have done this numerous times. The code is fairly complex, if you can give me a day or two, i will write up the code for you, unless you are up to the challenge of doing it yourself. Unfortunitly this is the only way you can do what you are trying to achieve. The only other way to do this, is to have three login pages, one for each access level. The choice is yours, but we are here to help you in any way we can:)

Hi Richie,
If it's possible for you to help me out with the code that would be fantastic. I can wait a day or two. Thank you so much for your help..Looking forward to hearing from you sooonnnnnnnnnnnn

No worries dami06, it will be my pleasure, I will private message you when I have the code written up:)

thank you so much richie..U r awesomeee...Hope to hear from you real soon..

I just want to add something simple...

Your table could look like this;

user | pass | memb_level |

When you start your session, you will simply add this: to a
$_SESSION["level"] = $row["memb_level"] ;

After that you will need to have some switch construction like this:
switch($_SESSIO["level"])
case(0): // regular user
CODE HERE
case(1): // some othher type
CODE HERE
etc.

..... and in every case block there will be some include();... and you are ready with the system.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.