User Authentication with patUser (part 1) - A Different Realm (
Page 6 of 7 )
If
you'd prefer not to futz around with templates, patUser also supports
plain-vanilla HTTP authentication. In this case, the browser takes care of
displaying a login box; patUser merely verifies the credentials entered by the
user into that box.
In order to enable this type of authentication, all
you need to do is forget to connect patUser to a patTemplate object. Since
patUser will not have a template to use for the login box, it will automatically
fall back to using HTTP authentication. Consider the following script, which
illustrates:
<?php
// include classes
include("../include/patDbc.php"); include("../include/patUser.php");
// initialize database layer
$db = new patMySqlDbc("localhost", "db111", "us111", "secret");
// initialize patUser
$u = new patUser(true);
// connect patUser to database
$u->setAuthDbc($db);
// set realm for display
$u->setRealm("Highly Secure Zone");
// check credentials before displaying page
$uid = $u->requireAuthentication("displayLogin");
// restricted page goes here
?>
<html>
<head>
<basefont face="Arial">
</head>
<body>
<center>
<h2>Welcome to Zone 6!</h2>
<u>This is a restricted zone. Trespassers will be vaporized.</u> </center>
<p align="right">
Your user ID is <?=$uid?>
<br>
<a href="logout.php">Log out</a>
</body>
</html>
Here's what the result might look like:

Note my introduction of a new method in the script
above, the setRealm() method. This method is used to set the name of the realm
for HTTP authentication, and appears in the login box displayed by the
browser.