IF statement header redirect error...
Posted: Thu Dec 16, 2004 7:33 pm
ok i'm using this code now to redirect the site to a certain page depending on the user's role which is calculated from the username using a SQL query.
But its doing nothing. Just sitting on roles.php. I'm thinking it may not know what $role is as it is a result of a SQL query and I can't think how to declare it as the result from the sql???
Too tired to think, been sat at a computer for about 14 hours straight now and my brains not working anymore, this is due in tomorrow though, so any help will be much appreciated! cheers.
Si.
Code: Select all
<?php
$username = $_POST['username'];
$self = $_SERVER['PHP_SELF'];
$refer = $_SERVER['HTTP_REFERER'];
#if either form field is empty return to the login page
if( ( !$username ) )
{ header( "Location:$referer" ); exit(); }
#connect to MYSQL
$conn = @mysql_connect( "linuxproj", "***", "****" )
or die( "could not connect" );
#select the specified database
$rs = @mysql_select_db ( "db_sn202", $conn )
or die( "could not select database" );
#create the sql query
$sql="select role from users where username='$username'";
#exercute the query
$rs = mysql_query( $sql, $conn )
or die( mysql_error() );
#get number of rows that match username and password
$num = mysql_numrows( $rs );
#if there is a match the login is authenticated
if( $num > 0 )
{ $msq = "Welcome $username - your log-in succeeded"; }
else #or return to login page
{ header( "Location:$referer" ); exit(); }
if ($role == "admin") {
header("HTTP/1.1 301 Moved Permanently");
header ("Location: http://www.ecs.soton.ac.uk/~sn202/admin.php");
header("Connection: close");
}
if ($role == "tech") {
header("HTTP/1.1 301 Moved Permanently");
header ("Location: http://www.ecs.soton.ac.uk/~sn202/tech.php");
header("Connection: close");
}
if ($role == "student") {
header("HTTP/1.1 301 Moved Permanently");
header ("Location: http://www.ecs.soton.ac.uk/~sn202/student.php");
header("Connection: close");
}
if ($role == "test") {
header("HTTP/1.1 301 Moved Permanently");
header ("Location: http://www.ecs.soton.ac.uk/~sn202/test.php");
header("Connection: close");
}
?>But its doing nothing. Just sitting on roles.php. I'm thinking it may not know what $role is as it is a result of a SQL query and I can't think how to declare it as the result from the sql???
Too tired to think, been sat at a computer for about 14 hours straight now and my brains not working anymore, this is due in tomorrow though, so any help will be much appreciated! cheers.
Si.