bad.
if you want one user information, never fetch with a while.
its a bad design to select the user + password and admin rights, why is it need to ask $admin?
<?php
$q = sprintf( "SELECT * FROM users WHERE USERNAME = '%s' LIMIT 1" , mysql_real_escape_string( $USERNAME ) );
// Run query
$r = mysql_query( $q ) or die( "error..." );
if ( mysql_num_rows( $r ) == 1 ) {
$row = mysql_fetch_object( $r );
if ( $row->PASSWORD == md5( $PASSWORD ) ) {
$_SESSION["un"] = $row->USERNAME;
$_SESSION["ud"] = $row->userid;
$_SESSION["time"] = time();
$_SESSION["admin"] = $row->ADMIN;
$page=(empty($row->ADMIN) ? "member.php":"admin.php");
header("Location: $page");
} else
die( "access denied/wrong password" );
} else
die( "access denied/no user" );
?>