Login   Register  
PHP Classes
elePHPant
Icontem

File: sample.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Joshua hatfield  >  floPageLock  >  sample.php  >  Download  
File: sample.php
Role: Example script
Content type: text/plain
Description: Numerous examples in 1 file.
Class: floPageLock
Restrict page access with password authentication
Author: By
Last change: Change in comments
Date: 2005-10-22 02:04
Size: 5,240 bytes
 

Contents

Class file image Download
<?
/*
 - Product name: floPageLock
 - Author: Joshua Hatfield (flobi@flobi.com)
 - Release Version: 1.0.0
 - Release Date: 2005-10-22
 - License: Free for non-commercial use

SAMPLE FILE
 - This sample file demonstrates numerous ways this can be implemented.
 - This SHOULD be before any other code.
*/
include("floPageLock.php");
$locking_method 1;
switch(
$locking_method){
    case 
1:
        
/*
        * Method 1, simple lock.  Username, password, autolock.
        * -- Not setting redirect turns it off.
        * -- That also applies if you set autolock to anything with a strlen of 0 (null, false, "", etc.).
        */
        
$pagelock = new floPageLock("myusername""mypassword"true);
        break;
    case 
2:
        
/*
        * Method 2, simple lock w/ redirect.  Username, password, autolock, redirection location.
        * -- You can override the redirection with ?unlock as your querystring.
        * -- e.g if your url is
        * http://www.flobi.com/test/floPageLock/
        * -- you can override the redirect by going to 
        * http://www.flobi.com/test/floPageLock/?unlock
        */
        
$pagelock = new floPageLock("myusername""mypassword"true"http://www.google.com/");
        break;
    case 
3:
        
/*
        * Method 3, delay lock.  Username, password.
        * -- Not setting autolock requires lock function call later
        * -- That also applys if you set autolock to a false value (null, false, "", 0, etc.).
        * -- In the mean time, we can set an extra key.
        * -- Passwords in keys can be saved as md5 or plain text.  
        */
        
$pagelock = new floPageLock("myusername""mypassword");
        
$pagelock->key_add("myusername2""f13649e3de0a972fa8b0334af9acd23f");
        
$pagelock->key_add("myusername3""mypassword3");
        
// You CAN have 1 username with multiple passwords.
        
$pagelock->key_add("myusername""mypassword4");
        
$pagelock->lock();
        break;
    case 
4:
        
/*
        * Method 4, delay lock with keys from Xoops db.  
        * -- Not setting username and password causes no initial key to be created.
        * -- Let's get some keys from a mysql table.
        * -- I've got Xoops installed, we can use the admin users from that.
        */
        
$pagelock = new floPageLock();
        
$dbmap = array(
            
"db_host" => "localhost",
            
"db_database" => "myxoopsdb",
            
"db_username" => "mydbusername",
            
"db_password" => "mydbpassword",
            
// The default admin group is created 4th, thereby getting an mgroup of 4 by default.
            
"sql" => "SELECT * FROM `xoops_users` WHERE `mgroup` = '4'",
            
"userfield" => "uname",
            
"passfield" => "pass"
        
);
        
$pagelock->key_mysql($dbmap);
        
$pagelock->lock();
        break;
    case 
5:
        
/*
        * Method 4, delay lock with numerous key sources.  
        * -- I've still got Xoops installed.
        * -- I've also got a custom user db, we can add those too.  
        */
        
$pagelock = new floPageLock("myusername""mypassword");
        
$pagelock->key_add("myusername2""f13649e3de0a972fa8b0334af9acd23f");
        
// Xoops keys:
        
$dbmap = array(
            
"db_host" => "localhost",
            
"db_database" => "myxoopsdb",
            
"db_username" => "mydbusername",
            
"db_password" => "mydbpassword",
            
"sql" => "SELECT * FROM `xoops_users` WHERE `mgroup` = '4'",
            
"userfield" => "uname",
            
"passfield" => "pass"
        
);
        
$pagelock->key_mysql($dbmap);
        
// They can be added in any order.
        
$pagelock->key_add("myusername3""mypassword3");
        
// My custom db:
        
$dbmap = array(
            
"db_host" => "localhost",
            
"db_database" => "mycustomsdb",
            
"db_username" => "mydbusername",
            
"db_password" => "mydbpassword",
            
"sql" => "
                SELECT 
                    `users`.`username` as `username`, 
                    `users`.`password` as `password` 
                FROM 
                    `users`, 
                    `user_groups` 
                WHERE 
                    `users`.`username` = `user_groups`.`username` AND
                    `user_groups`.`group` = 'admin'
            "
// Okay, I made up the structure, but you get the point.
            
"userfield" => "username",
            
"passfield" => "password"
        
);
        
$pagelock->key_mysql($dbmap);
        
// Let's redirect too, why not?
        
$pagelock->redirect("http://www.flobi.com/");
        
$pagelock->lock();
        break;
    case 
6:
        
/*
        * Method 6, I just feel like being a bastard.
        * -- The user will have to enter the first password...
        * -- then (without notification), will be required to enter the second.
        * -- but only after entering the first.  
        */
        
$pagelock = new floPageLock("myusername""mypassword"true);
        
$pagelock2 = new floPageLock("myusername2""mypassword2"true);
        break;
    case 
7:
        
/*
        * Method 7, method 1 longhand.
        */
        
$pagelock = new floPageLock();
        
$pagelock->key_add("myusername""mypassword");
        
$pagelock->lock();
        break;
// switch
?>
<html>
<head>
    <title>floPageLock Test (unlocked)</title>
    <style>
        .floPageLock_outertable {
            border: 1px solid #aaaaff;
            background-color: #ffffff;
        }
        p {
            font-family: Verdana, Arial, Helvetica, sans-serif;
            font-size: 10pt;
        }
        h1 {
            font-family: Verdana, Arial, Helvetica, sans-serif;
            font-size: 20pt;
        }
    </style>
</head>
<body bgcolor="f8f8ff">
<table width=100% height=100% class="floPageLock_outertable">
    <tr>
        <td align=center>
            <h1>floPageLock Test (unlocked)</h1>
            <p>The page you are looking at has been unlocked.  </p>
        </td>
    </tr>
</table>
</body>
</html>