#native_company# #native_desc#
#native_cta#

HTTP Authentication using mysql

By Scott Coyle
on June 2, 2004

Version: 1

Type: Full Script

Category: HTTP

License: GNU General Public License

Description: This is the basic code that I have used that allows users to authenticate using HTTP, PHP and simple mysql. This allows you to utilize your database without having to hard code your user/pass in the script or use the .htaccess or another flat/text file.

<?
header("Cache-control: private"); 

// turn off any unwanted errors for the users
error_reporting(0);

if (isset($PHP_AUTH_USER) && $PHP_AUTH_USER != ''){

// the database information can inserted into another file and 
// then inserted using the require(); statement
// ex) require("db_info.inc");

	$database="database";
	$username=strtolower($PHP_AUTH_USER);
	$password=strtolower($PHP_AUTH_PW);
	
	if (!mysql_connect(localhost,$username,$password))
		{ 
		  header('WWW-Authenticate: Basic realm="basic"');
		  header('HTTP/1.0 401 Unauthorized');
		  echo "Sorry, but you need to enter your <a href='login.php'>login information</a>.";
		}
	else {
		$redirect_to =  $_SERVER['HTTP_HOST'] . 
		dirname($_SERVER['PHP_SELF']) . "main.php" ;
			if( $_SERVER['SERVER_PORT'] == 43 ) // set to secure port #
				{
				$server = 'https';
				}
			else
				{ 
				$server = 'http';
				}
		print "<meta http-equiv="refresh" content="0;URL=$server://$redirect_to"> ";
		//echo "<P>You're authorized!</p>"; // for testing purposes
		mysql_close();
		}
		
	} //close the if isset
else if (!isset($PHP_AUTH_USER))
	{
   header('WWW-Authenticate: Basic realm="basic"');
   header('HTTP/1.0 401 Unauthorized');
   echo "Please enter your <a href='login.php'>login information</a>";
    exit;
  }
	 

?>