<html>
<head>
<title>DBUM - Doc</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Author" content="Steffen Stollfuß">
<meta name="Email" content="hide@address.com">
<meta name="description" content="Documentation for DataBase User Managment">
</head>
<style type="text/css">
<!--
body {
font-family: "Times New Roman", Times, serif;
}
td {
text-align: center;
}
h1 {
text-align: center;
}
h3,h2 {
text-decoration: underline;
}
p {
font-size: 14px;
}
div.code {
text-align: left;
background-color: #CCCCCC;
}
div.mixed {
background-color: #33CCFF;
}
-->
</style>
<body bgcolor="">
<h1>DataBase User Managment Documentation</h1>
<p> </p>
<h2>Introduction</h2>
<p><strong>What can DBUM do for you ??</strong></p>
<p>DBUM should help you to managment your users and session data for your website.
<br>
It based on PEAR DB class so you can use many db types like (mysql , mssql,
postgre7 and more )<br>
You can use this class only with php above version 4.3.0. </p>
<p>Questions ??</p>
<p>Can i change the db Table names ??? </p>
<p>Answer !!</p>
<p>Yes you can !</p>
<div class="code">/********************************************************<br>
define( "DBUM_SESSION_TABLE" , "yourtablename" ); <br>
define( "DBUM_USERS_TABLE" , "yourtablename" );<br>
define( "DBUM_GROUPS_TABLE" , "yourtablename" ); <br> <br>
require("./dbum_class.inc"); <br>
********************************************************/</div>
<p>Question ??</p>
<p>Can i change DBUM_MAX_FAILED_LOGINS ?</p>
<p>Answer !!</p>
<p>Yes how like tablenames !!! but you can't take no more as 98 failed logins...if
you use more i can't garanted that the script will run !!!<br>
because the field in db is an smallint(2) field</p>
<div class="code">define("DBUM_MAX_FAILED_LOGINS" , "xx" );</div>
<p> </p>
<p> </p>
<h2>Tested DB Types</h2>
<p>Have you tested another DB Types as MySQL, please can you send me a little
statement. thx :)</p>
<table width="50%" border="1">
<tr>
<td> DB Type</td>
<td>Result</td>
<td>Tester</td>
</tr>
<tr>
<td>MySQL</td>
<td><font color="#009933"> dev platform </font></td>
<td>Steffen Stollfuß</td>
</tr>
<tr>
<td>MySQL4</td>
<td><font color="#009933">tested</font></td>
<td>Steffen Stollfuß</td>
</tr>
<tr>
<td> Mini SQL </td>
<td><font color="#FF0000">not tested</font></td>
<td>--</td>
</tr>
<tr>
<td>MSSQL</td>
<td><font color="#FF0000">not tested</font></td>
<td>--</td>
</tr>
<tr>
<td>PostgreSQL</td>
<td><font color="#FF0000">not tested</font></td>
<td>--</td>
</tr>
<tr>
<td> Oracle 7/8/8i</td>
<td><font color="#FF0000">not tested</font></td>
<td>--</td>
</tr>
<tr>
<td> InterBase</td>
<td><font color="#FF0000">not tested</font></td>
<td>--</td>
</tr>
<tr>
<td> ODBC (Open Database Connectivity)</td>
<td><font color="#FF0000">not tested</font></td>
<td>--</td>
</tr>
<tr>
<td> SyBase</td>
<td><font color="#FF0000">not tested</font></td>
<td>--</td>
</tr>
<tr>
<td> Informix</td>
<td><font color="#FF0000">not tested</font></td>
<td>--</td>
</tr>
<tr>
<td> Frontbase</td>
<td><font color="#FF0000">not tested</font></td>
<td>--</td>
</tr>
</table>
<p> </p>
<h2>Error Handling</h2>
<p><table width="75%" border="1">
<colgroup>
<col width="35%">
<col width="5%">
<col width="60%">
</colgroup>
<tr>
<th colspan="3"> Error Constans </th>
</tr>
<tr>
<td> Constans </td> <td> Code </td> <td> Desciption </td>
</tr>
<tr>
<td>DBUM_HACKER_ATTEMPT</td><td> 1000 </td>
<td>returned when anyone is try to send a string that is longer as allowed,
so you should always give by your input field in html (maxlength) so the
normal user can't send longer strings, but hacker using his own length because
they maniplulate the get or post fields </td>
</tr>
<tr>
<td>DBUM_INPUT_ERROR</td><td> 1001 </td>
<td>returned if in the given string invalid chars</td>
</tr>
<tr>
<td>DBUM_SQL_ERROR</td><td> 1002 </td>
<td> returned when a sql command goes failed</td>
</tr>
<tr>
<td>DBUM_LOGIN_FAILED</td><td> 1003 </td>
<td>return if username or password wrong </td>
</tr>
<tr>
<td>DBUM_USER_NOT_ACTIVATED</td><td> 1004 </td>
<td> returned if user not activated</td>
</tr>
<tr>
<td>DBUM_USER_EXISTS</td><td> 1005 </td>
<td> returned if you try to create a user that exists ( username field = unique
id </td>
</tr>
<tr>
<td>DBUM_CREATE_USER_FAILED</td><td> 1006 </td> <td> returned (affectedRows() != 1) when you try to create a user</td>
</tr>
<tr>
<td>DBUM_SESSION_START_FAILED</td><td> 1007 </td>
<td> returned when session_start() return FALSE ( run without "@")</td>
</tr>
<tr>
<td>DBUM_USER_LOCKED</td><td> 1008 </td>
<td>returned if a user try to login and he is locked </td>
</tr>
<tr>
<td>DBUM_INSERT_SESSION_FAILED</td><td> 1009 </td> <td> returned if (affectedRows() != 1) after input session data </td>
</tr>
<tr>
<td>DBUM_UPDATE_SESSION_FAILED</td><td> 1010 </td> <td> !!! is taken out !!! </td>
</tr>
<tr>
<td>DBUM_MAX_FAILED_LOGINS_REACHED</td><td> 1011 </td>
<td> thats a very important error code he comes when a user have reached his
failed login border...but only onetime after then the user get his locked
message, so you imediatly should send the user an email with his unlock
data or what ever you think todo... :)</td>
</tr>
<tr>
<td>DBUM_GROUP_NOT_ACTIVATED</td><td> 1012 </td> <td> login error code if group not activated </td>
</tr>
<tr>
<td>DBUM_GROUP_NOT_EXISTS</td><td> 1013 </td> <td> login error code if group not exists </td>
</tr>
<tr>
<td>DBUM_NOT_LOGGED</td><td> 1014 </td>
<td> is_login error code is user not logged</td>
</tr>
<tr>
<td>DBUM_LOGIN_TIMEOUT_REACHED</td><td> 1015 </td><td> is_login error code if user login timeout reached </td>
</tr>
<tr>
<td>DBUM_UNLOCK_USER_FAILED</td><td> 1016 </td> <td> unlock_user error code if unlock goes failed </td>
</tr>
<tr>
<td>DBUM_ACTIVATED_USER_FAILED</td><td> 1017 </td> <td> activate_user error code if activation goes failed </td>
</tr>
<tr>
<td>DBUM_USER_NOT_EXISTS</td><td> 1018 </td>
<td>error code if user not exists</td>
</tr>
<tr>
<td>DBUM_CHANGE_PASSWORD_FAILED</td><td> 1019 </td> <td> error code goes change password failed </td>
</tr>
<tr>
<td>DBUM_CHANGE_EMAIL_FAILED</td><td> 1020 </td> <td> error code goes change email failed <br> ( !!! after email is changed user is deactivated !!! ) </td>
</tr>
<tr>
<td>DBUM_ACCESS_DENIED</td><td> 1021 </td> <td> is_authorized error code </td>
</tr>
<tr>
<td>DBUM_GROUP_EXISTS</td><td> 1022 </td> <td> returned if you try to create an exists group </td>
</tr>
<tr>
<td>DBUM_USER_DELETE_FAILED</td><td> 1023 </td>
<td> returned if you try to delete a not exists user</td>
</tr>
<tr>
<td>DBUM_GROUP_DELETE_FAILED</td><td> 1024 </td>
<td> returned if you try to delete a not exists group</td>
</tr>
<tr>
<td>DBUM_GROUP_ACTIVATE_FAILED</td><td> 1025 </td> <td> returned if activation of group goes failed </td>
</tr>
<tr>
<td>DBUM_GROUP_DEACTIVATE_FAILED</td><td> 1026 </td> <td> return if deactivation goes failed </td>
</tr>
<tr>
<td>DBUM_EDIT_USER_FAILED</td><td> 1027 </td> <td> returned if edit user goes failed (affectedRows() != 1) </td>
</tr>
<tr>
<td>DBUM_GROUP_EDIT_FAILED</td><td> 1028 </td> <td> returned if edit group goes failed (affectedRows() != 1) </td>
</tr>
<tr>
<td>DBUM_ACTION_FAILED</td><td> 1029 </td> <td> action error code returned
if action goes failed
</td>
</tr>
<tr>
<td>DBUM_EMAIL_EXISTS</td>
<td> 1030 </td>
<td>This error is occured if you try to change an email address with a new
that is already in db....and with user creatíng it is the same</td>
</tr>
<tr>
<td>DBUM_FORGOT_PASSWORD_FAILED</td>
<td>1031</td>
<td>return if change password goes failed (affectedRows() != 1)</td>
</tr>
</table>
<p>Error Hanling Example !!!</p>
<div class="code">
<?php<br>
/* Only an Example */<br>
/* How do you want to make your error handling is your turn , not my job..sry !!!<br>
<br>
*/<br>
<br>
if( isset( $_COOKIE["DBUM_SID"] ) )<br>
{<br>
$sess_id = $_COOKIE["DBUM_SID"];<br>
}<br>
else<br>
{<br>
$sess_id = NULL;<br>
}<br>
<br>
if( !$dbum->load_session( $sess_id ) )<br>
{<br>
message_die( $dbum->err_code );<br>
}<br>
<br>
// and soon !!!<br>
<br>
<br>
/* Function Message Die very helpfull....you can use for your scripts, too */<br>
function message_die( $err_code , $err_title = "", $err_msg = "", $line = "", $file = "", $query = "")<br>
{<br>
global $dbum, $db;<br>
<br>
if( $err_code == DBUM_SQL_ERROR )<br>
{<br>
if( !$debug )<br>
{<br>
echo "Error Code: ". $err_code ."<br>";<br>
echo "Error Title: !!! SQL Error !!! <br>";<br>
echo "Error Message: ". $dbum->err_title ."<br>";<br>
}<br>
else<br>
{<br>
echo "Error Code: ". $err_code ."<br>";<br>
echo "Error Title: ". $dbum->err_title ."<br>";<br>
echo "Error Message: ". $dbum->err_msg ."<br>";<br>
echo "Query: ". $dbum->query ."<br>";<br>
echo "Error was in File: ". $dbum->err_file ". at line: ". $dbum->err_line ." <br>";<br>
}<br>
}<br>
<br>
if( $err_code >= DBUM_HACKER_ATTEMPT && $err_code <= DBUM_ACTION_FAILED && $err_code != DBUM_SQL_ERROR )<br>
{<br>
if( !$debug )<br>
{<br>
echo "Error Code: ". $err_code."<br>";<br>
echo "Error Title: ". $dbum->err_title ."<br>";<br>
echo "Error Message: ". $dbum->err_msg ."<br>";<br>
}<br>
else<br>
{<br>
echo "Error Code: ". $err_code."<br>";<br>
echo "Error Title: ". $dbum->err_title ."<br>";<br>
echo "Error Message: ". $dbum->err_msg ."<br>";<br>
<br>
if( $dbum->err_line != "" || $dbum->err_file != "" )<br>
{<br>
echo "Error was in File: ". $dbum->err_file ". at line: ". $dbum->err_line ." <br>";<br>
}<br>
}<br>
}<br>
<br>
/*<br>
Your scripts error handling !!!<br>
*/<br>
<br>
$db->disconnect();<br>
exit;<br>
}<br>
<br>
?>
</div>
<p> </p>
<p> </p>
<h2>DBUM Functions</h2>
<p>// Constructor <br>
<a href="#"> $object = new DBUM( $db , $sql_layer , $debug = FALSE )</a></p>
<p>// Public<br>
<a href="#login" >$object->login( $username , $password )</a></p>
<p><a href="#is_login">$object->is_login( $session_id = NULL )</a></p>
<p><a href="#logout">$object->logout( $session_id = NULL )</a></p>
<p><a href="#is_autorized">$object->is_authorized( $need_level )</a></p>
<p><a href="#action">$object->action( $session_id = NULL )</a></p>
<p><a href="#create_user">$object->create_user( $user )</a></p>
<p><a href="#activated_user">$object->activated_user( $username , $activ_id )</a></p>
<p><a href="#lock_user">$object->lock_user( $username )</a></p>
<p><a href="#unlock_user">$object->unlock_user( $username , $unlock_id )</a></p>
<p><a href="#change_password">$object->change_password( $username , $old_pwd , $new_pwd , re_new_pwd )</a></p>
<p><a href="#change_email">$object->change_email( $username , $new_email )</a></p>
<p><a href="#edit_user">$object->edit_user( $user )</a></p>
<p><a href="#return_user">$object->return_user( $user_id )</a></p>
<p><a href="#delete_user">$object->delete_user( $user_id )</a></p>
<p><a href="#create_group">$object->create_group( $group )</a></p>
<p><a href="#activate_group">$object->activate_group( $group_name )</a></p>
<p><a href="#deactivate_group">$object->deactivate_group( $group_name )</a></p>
<p><a href="#edit_group">$object->edit_group( $group )</a></p>
<p><a href="#delete_group">$object->delete_group( $group_name )</a></p>
<p><a href="#load_session">$object->load_session( $sess_id , $sess_name , $sess_cache_limiter , $sess_cache_expire , $sess_cookie_params )</a></p>
<p><a href="#destroy_session">$object->destroy_session()</a></p>
<p><a href="#destroy_session">$object->install_tables( $options )</a></p>
<p> </p>
<h2>DBUM Fucntion Description</h2>
<h3>Constructor</h3>
<div class="code">
<?php<br>
<br>
// This should show you what you have todo, befor you use dbum !<br>
////////////////////////////////////////////////////////////////////////////////<br>
// Part in your config.php<br>
$debug = TRUE; // or false if your site is running public...<br>
// i use TRUE only for delevopment, so the pub user didn't know my sqldata<br>
<br>
// Open PEAR DB Connection<br>
// for more information about PEAR have a look at "pear.php.net"<br>
require_once("DB.php");<br>
require_once("./dbum_class.inc");<br>
<br>
$dsn = "dbtype://username:hide@address.com/database_name";<br>
<br>
$db = DB::connect( $dsn );<br>
<br>
if( DB::isError( $db ) )<br>
{<br>
if( !$debug )<br>
{<br>
die( $db->getMessage() );<br>
}<br>
printf( "Error Title: %s. <br> Error Message: %s" , $db->getMessage() , $db->UserInfo());<br>
exit;<br>
}<br>
////////////////////////////////////////////////////////////////////////////////<br>
<br>
// Now you can open the constructor<br>
<br>
$dbum = new DBUM( $db , "mysql" , $debug );<br>
<br>
?>
</div>
<p> </p>
<p><font size="4">mixed <a name="login"><b>$object->login(</b> string <b>$username</b>
, string <b>$password )</b></a></font></p>
<p> - check are username and password are correct strings <br>
- make all needed entries in database <br>
- valid chars for username are: [A-Za-z0-9] and [ _- ] <br>
- for password are all chars valid !!! <br>
- if max_failed_logins reached user will locked, get new password and at this
time [ array <strong>$object->unlock</strong> ] is set <br>
- !!! the error "DBUM_MAX_FAILED_LOGINS_REACHED" will only come one
time, then user is locked and this error will return !!!</p>
<p> $username - Username String</p>
<p> $password - Password String</p>
<p> $mixed - if all right return an array() else bool (FALSE)</p>
<div class="mixed"> $mixed = Array<br>
(<br>
[username] => <br>
[password] =><br>
[user_id] => <br>
[group_id] => <br>
[first_name] =><br>
[last_name] =><br>
[email] => <br>
[created] => <br>
[failed_logins] => <br>
[group_name] => <br>
[group_desc] => <br>
[last_action] => <br>
)<br></div>
<b>Example:</b><br>
<div class="code"><?php<br>
<br>
if( !$_SESSION["user_data"] = $dbum->login( $_POST["username"] , $_POST["password"] ) )<br>
{<br>
/*<br>
Have a look at DBUM Error Handling !!!<br>
*/<br>
}<br>
<br>
/*<br>
Your code if all right !!!<br>
*/<br>
<br>
?></div>
<p> </p>
<p><font size="4">bool <a name="is_login"><b>$object->is_login(</b> mixed <b>
session_id = NULL )</b></a></font></p>
<p>- check is User logged ! <br>
- if $timeout reached user will logout and session will destroy !!!</p>
<p><b>Example: </b> </p>
<div class="code" >
<p><?php<br>
// Check is user logged and isn't stored login timeout reached<br>
// <br>
$_SESSION["is_login"] = FALSE;<br>
<br>
if( $dbum->is_login( ) ) // optional you can
give session_id() // <br>
{<br>
$_SESSION["is_login"] = TRUE;<br>
}<br>
else<br>
{<br>
/* Reaction can be !!!<br>
echo "Error Code: ". $dbum->err_code ." <br> ";<br>
echo "Error Title: ". $dbum->err_title ." <br> ";<br>
echo "Error Message: ". $dbum->err_msg ." <br> ";<br>
*/<br>
}<br>
<br>
/*<br>
Your code !!!<br>
*/<br>
?></p>
</div>
<p> </p>
<p>
<p><font size="4">bool <a name="logout"><b>$object->logout(</b> <b> )</b></a></font></p>
<p>- set "session_stop" , "last_action" and "user_id"
= ''</p>
<div class="code"><?php<br>
// - set "session_stop" , "last_action" and "user_id" = ''<br>
// - optional you can give session_id()<br>
if( !$dbum->logout() )<br>
{<br>
echo "Error Code: ". $dbum->err_code ." <br> ";<br>
echo "Error Title: ". $dbum->err_title ." <br> ";<br>
echo "Error Message: ". $dbum->err_msg ." <br> ";<br>
if( $dbum->query != '' )<br>
{<br>
echo "Query: ". $dbum->query ."<br>";<br>
}<br>
}<br>
?></div>
<p></p>
<p></p>
<p><font size="4">bool <a name="is_authorized"><b>$object->is_authorized(</b>int
<b>$need_level )</b></a></font></p>
<p>- user must be logged , befor you can use this function !!!</p>
<div class="code"><?php<br>
// befor you use it be sure user is login, if user not logged he get "FALSE"<br>
// check is stored group level ">" given need level you get false<br>
// is it "<=" you get TRUE<br>
// max levels "999"<br>
define("AUTH_ADMIN" , 100 );<br>
define("AUTH_USER" , 900 );<br>
<br>
<br>
if( !$dbum->is_authorized( AUTH_USER ) )<br>
{<br>
if( $dbum->err_code != DBUM_ACCESS_DENIED )<br>
{<br>
echo "Error Code: ". $dbum->err_code ." <br> ";<br>
echo "Error Title: ". $dbum->err_title ." <br> ";<br>
echo "Error Message: ". $dbum->err_msg ." <br> ";<br>
if( $dbum->query != '' )<br>
{<br>
echo "Query: ". $dbum->query ."<br>";<br>
}<br>
}<br>
else<br>
{<br>
echo "Access denied";<br>
}<br>
exit;<br>
}<br>
<br>
<br>
?></div>
<p> </p>
<p><font size="4">bool <a name="action"><b>$object->action(</b> string
<b>$session_id = NULL )</b></a></font></p>
<p>- set "last_action" in SESSIONS Table with Unix Timestamp</p>
<div class="code"><?php<br>
// Set "last_action" in Session Table with Unix Timestamp<br>
// You can give optional another session_id, else it will take the func session_id()<br>
<br>
if( !$dbum->action() )<br>
{<br>
echo "Error Code: ".$dbum->err_code." <br>";<br>
echo "Error Title: ". $dbum->err_title ." <br>";<br>
echo "Error Message: ". $dbum->err_msg ." <br>";<br>
if( $dbum->query != "" )<br>
{<br>
echo "Query: ". $dbum->query;<br>
}<br>
exit;<br>
}<br>
?><br>
</div>
<p> </p>
<p><font size="4">string<a name="create_user"><b>$object->create_user(</b>
array <b>$user )</b></a></font></p>
<div class="mixed">
<p> /************************************************************<br>
* User Array build up<br>
* - the key are constans, you can't rename it<br>
<br><br>$user = array( "group_id" => "",<br>
"timeout" => "60", // minutes<br>
"activated" => "0",<br>
"username" => "",
// can't be empty<br>
"password" => "",
// can't be empty<br>
"first_name" => "",<br>
"last_name" => "",<br>
"street" => "",<br>
"postcode" => "",<br>
"hometown" => "",<br>
"email" => "",
// can't be empty<br>
"website" => "",<br>
"telephone" => "",<br>
"fax" => "",<br>
"mobil" => "",<br>
"signature" => "",<br>
"icq" => "",<br>
"msn" => "",<br>
"aim"
=> "" );<bR> </p>
</div>
<div class="code">
<p><?php<br>
/***************************************************************************<br>
* - check if all input data are valid !!!<br>
* - check is User already exists !!!<br>
* - generate an activation id that will return if all right<br>
* - create user<br>
**************************************************************************/<br>
<br>
<br>
if( !$activ_id = $dbum->create_user( $user ) )<br>
{<br>
echo "Error Code: ".$dbum->err_code." <br>";<br>
echo "Error Title: ". $dbum->err_title ." <br>";<br>
echo "Error Message: ". $dbum->err_msg ." <br>";<br>
if( $dbum->query != "" )<br>
{<br>
echo "Query: ". $dbum->query;<br>
}<br>
exit;<br>
}<br>
</p>
<p>! Your Code if alright !</p>
<p> ?><br>
</p>
</div>
<p> </p>
<p><font size="4">bool<a name="activated_user"><b>$object->activated_user(</b>
string <b>$username , </b>string<b> $activ_id )</b></a></font></p>
<div class="code"> <?php<br>
/***************************************************************************<br>
* - check input data<br>
* - activate user<br>
**************************************************************************/<br>
<br>
if( $dbum->activated_user( $_GET["username"] , $_GET["activ_id"] ) )<br>
{<br>
// Error Handling<br>
}<br>
// Your Code if alright<br>
?></div>
<p> </p>
<p><font size="4">bool<a name="lock_user"><b>$object->lock_user(</b> string
<b>$username )</b></a></font></p>
<div class="code">
<?php<br>
/***************************************************************************<br>
* set the unlock array<br>
* generate new password and set it<br>
* set in table users<br>
**************************************************************************/<br>
<br>
if( !$dbum->lock( $username ) )<br>
{<br>
// Error Handling<br>
}<br>
<br>
// Now unlock array is set.<br>
// "id" and "username" you need to unlock user...and new "password" is need by user<br>
// Unlock ID<br>
$dbum->unlock["id"]<br>
// Username<br>
$dbum->unlock["username"]<br>
// New Password for user<br>
$dbum->unlock["password"]<br>
<br>
// Your Code if alright.<br>
?>
</div>
<p> </p>
<p><font size="4">bool<a name="unlock_user"><b>$object->unlock_user(</b>
string <b>$username , </b>string<b> $unlock_id )</b></a></font></p>
<div class="code">
<?php<br>
/***************************************************************************<br>
* - check input data<br>
* - set locked in DB "0" false !!!<br>
**************************************************************************/<br>
<br>
if( !$dbum->unlock_user( $_GET["username"] , $_GET["unlock_id"] ) )<br>
{<br>
// Error Handling<br>
}<br>
<br>
// Your code if alright.<br>
?>
</div>
<p> </p>
<p><font size="4">bool<a name="change_password"><b>$object->change_password(</b>
string <b>$username , </b>string<b> $old_pwd , </b>string <b>$new_pwd , </b>string <b>$re_new_pwd
)</b></a></font></p>
<div class="code">
<?php<br>
/***************************************************************************<br>
* - check are all given string valid<br>
* - check is new_pwd == retyp_pwd<br>
* - change password when old pwd is correct<br>
**************************************************************************/<br>
<br>
if( !$dbum->change_password($_SESSION["user_data"]["username"] , $_POST["old_pwd"] , $_POST["new_pwd"] , $_POST["retype_pwd"]) )<br>
{<br>
/*<br>
Error Handling<br>
*/<br>
}<br>
// Code if alright<br>
?>
</div>
<p> </p>
<p><font size="4">bool<a name="change_email"><b>$object->change_email(</b> string
<b>$username , </b>string<b> $new_email </b><b> )</b></a></font></p>
<div class="code">
<?php<br>
/***************************************************************************<br>
* - check is new email format valid<br>
* - generate new activation_id and set it in db<br>
* - change email , if not exists because email field is "unique_id"<br>
* and set activated = FALSE<br>
* - return activation_id<br>
**************************************************************************/<br>
<br>
if( !$activ_id = $dbum->change_email( $_SESSION["user_data"]["username"] , $_POST["new_email"] )<br>
{<br>
/*<br>
!!! Error Handling !!!<br>
*/<br>
}<br>
// !!! Code if alright !!!<br>
?>
</div>
<p> </p>
<p><font size="4">bool<a name="edit_user"><b>$object->edit_user(</b> array
<b>$user</b><b> )</b></a></font></p>
<div class="code">
<p><?php<br>
/***************************************************************************<br>
* - check all data !!!<br>
* - all data must be given.... so you must use return_user() and give
it to user then he must submit it with his changes the you can call edit_user()<br>
* - update User data in Database<br>
**************************************************************************/<br>
<br>
$user = array ("timeout" => "",<br>
"first_name" => "",<br>
"last_name" => "",<br>
"street" => "",<br>
"postcode" => "",<br>
"hometown" => "",<br>
"website" => "",<br>
"telephone" => "",<br>
"fax" => "",<br>
"mobil" => "",<br>
"signature" => "",<br>
"icq" => "",<br>
"msn" => "",<br>
"aim" => "" );<br>
<br>
if( !$dbum->edit_user( $user ) )<br>
{<br>
/*<br>
Error Handling<br>
*/<br>
}<br>
// Code if alright<br>
?> </p>
</div>
<p> </p>
<p><font size="4">array <a name="return_user"><b>$object->return_user(</b>
int <b>$user_id )</b></a></font></p>
<div class="code">
<?php<br>
/***************************************************************************<br>
* - check is user_id valid<br>
* - return all found able user data<br>
**************************************************************************/<br>
<br>
if( !$user_data = $dbum->return_user( $user_id ) )<br>
{<br>
/*<br>
!!! Error Handling !!!<br>
*/<br>
}<br>
// Code if alright<br>
<br>
?>
</div>
<p> </p>
<p><font size="4">bool <a name="delete_user"><b>$object->delete_user(</b> string
<b>$username )</b></a></font></p>
<div class="code">
<?php<br>
/***************************************************************************<br>
* - check are given username valid<br>
* - delete all userdata for given username<br>
***************************************************************************/<br>
<br>
if( !$dbum->delete_user($_SESSION["user_data"]["username"]) )<br>
{<br>
/*<br>
Error Handling<br>
*/<br>
}<br>
<br>
// Code if alright<br>
?>
</div>
<p> </p>
<p><font size="4">bool <a name="create_group"><b>$object->create_group(</b>
mixed <b>$group )</b></a></font></p>
<div class="code">
<?php<br>
/***************************************************************************<br>
* - check are given datas correct<br>
* - check is group already exists<br>
* - create group<br>
**************************************************************************/<br>
<br>
$group = array( "group_name" => "", // Group Name<br>
"group_desc" => "",
// Group Description<br>
"activated" => "", // "0" = false "1" = true<br>
"level" => "" );
// Level for Authorization max "999"<br>
<br>
if( !$dbum->create_group( $group ) )<br>
{<br>
/*<br>
Error Handling<br>
*/<br>
}<br>
// Code if alright<br>
?>
</div>
<p> </p>
<p><font size="4">bool <a name="activate_group"><b>$object->activate_group(</b> string
<b>$group_name )</b></a></font></p>
<div class="code">
<?php<br>
/***************************************************************************<br>
* - check is given group name valid<br>
* - activate group if exists<br>
**************************************************************************/<br>
<br>
if( !$dbum->activate_group( $group_name ) )<br>
{<br>
/*<br>
Error Handling<br>
*/<br>
}<br>
// Code if alright<br>
?>
</div>
<p> </p>
<p><font size="4">bool <a name="deactivate_group"><b>$object->deactivate_group(</b> string
<b>$group_name )</b></a></font></p>
<div class="code">
<?php<br>
/***************************************************************************<br>
* - check is group_name valid<br>
* - deactivate group if exists<br>
**************************************************************************/<br>
<br>
if( !$dbum->deactivate( $group_name ) )<br>
{<br>
/*<br>
Error Handling<br>
*/<br>
}<br>
// Code if alright<br>
?>
</div>
<p> </p>
<p><font size="4">bool <a name="edit_group"><b>$object->edit_group(</b>
mixed <b>$group )</b></a></font></p>
<div class="code">
<?php<br>
/***************************************************************************<br>
* - if you not set level it will set to default "999"<br>
**************************************************************************/<br>
<br>
$group = array( "group_name" => "",<br>
"group_desc" => "",<br>
"activated" => "",<br>
"level" => "" );<br>
<br>
if( !$dbum->edit_group( $group ) )<br>
{<br>
/*<br>
Error Handling<br>
*/<br>
}<br>
// Code if alright<br>
?>
</div>
<p> </p>
<p><font size="4">bool <a name="delete_group"><b>$object->delete_group(</b>
mixed <b>$group )</b></a></font></p>
<div class="code">
<?php<br>
/***************************************************************************<br>
* - check is given group_name valid<br>
* - delete all groupdata<br>
**************************************************************************/<br>
<br>
if( !$dbum->delete( $group_name ) )<br>
{<br>
/*<br>
Error Handling<br>
*/<br>
}<br>
// Code if alright<br>
?>
</div>
<p> </p>
<p><font size="4">bool <a name="load_session"><b>$object->load_session(</b>
mixed <b>$sess_id = NULL , </b>string <b> $sess_name = "DBUM_SID"
, </b>string <b>$sess_cache_limiter = "private_no_expire" , </b>int
<b>$sess_cache_expire = "0" ,</b> mixed <b>$cookie_params = array()
)</b></a></font></p>
<div class="code">
<?php<br>
// Will load the session is given by sess_id ,<br>
// else it will start a new one and put this data to sessions table !!!<br>
//<br>
<br>
////////////////////////////////////////////////////////////////////////////////<br>
// Part in your config.php !!! Only Example !!!<br>
$sess_name = "PAGE_SESSION_NAME";<br>
$sess_cache_expire = 1; // Browser Cache Time in min !!<br>
$sess_cache_limiter = "private_no_expire";<br>
$sess_cookie_params["ttl"] = 0; // Cookie Live Time in seconds ( 0 = browser restated )<br>
$sess_cookie_params["path"] = "/";<br>
$sess_cookie_params["domain"] = $_SERVER["HTTP_HOST"]. dirname($_SERVER['PHP_SELF']);<br>
$sess_cookie_params["secure"] = FALSE; // Should Cookie only send by SSL Connections !!!<br>
//<br>
////////////////////////////////////////////////////////////////////////////////<br>
<br>
if( isset( $_COOKIE[$sess_name] ) )<br>
{<br>
$sess_id = $_COOKIE[$sess_name];<br>
}<br>
else<br>
{<br>
$sess_id = NULL;<br>
}<br>
// !!! all option are optional !!!<br>
// this run too ... $dbum->load_session()<br>
// these are default options<br>
// sess_id = NULL<br>
// $sess_name = "DBUM_SID"<br>
// $sess_cache_limiter = "private_no_expire"<br>
// $sess_cache_expire = 0<br>
// $sess_cookie_params["ttl"] = 0;<br>
// $sess_cookie_params["path"] = "/";<br>
// $sess_cookie_params["domain"] = "yourdomainname";
// can be "$_SERVER["HTTP_HOST"]. dirname($_SERVER['PHP_SELF'])"
or when u have your own domain like www.xxx.yyy you can use $_SERVER["HTTP_HOST"];<br>
// $sess_cookie_params["secure"] = FALSE;<br>
<br>
if( !$dbum->load_session( $sess_id , $sess_name , $sess_cache_limiter , $sess_cache_expire , $sess_cookie_params ) )<br>
{<br>
/*<br>
Error Handling<br>
*/<br>
}<br>
// Code if alright<br>
$session_id = session_id();<br>
?>
</div>
<p> </p>
<p><font size="4">bool <a name="destroy_session"><b>$object->destroy_session()</b></a></font></p>
<div class="code">
<?php<br>
/*******************************************************************************<br>
* - unset all $_SESSION Vars<br>
* - destroy session and go secure that sess_file was delete !!!<br>
******************************************************************************/<br>
<br>
$dbum->destroy_session();<br>
?>
</div>
<p> </p>
<p><font size="4">bool <a name="install_tables"><b>$object->install_tables(
</b> mixed <b> options )</b></a></font></p>
<div class="code">
<?php<br>
/*******************************************************************************<br>
* - create needed tables<br>
* - and given groups and user<br>
* - !!! you must create min one group and one user !!!<br>
******************************************************************************/<br>
<br>
<br>
$options = array( "groups" => array( array( "group_name" => "admin",<br>
"group_desc" => "Administrators Group",<br>
"level" => "100",<br>
"activated" => "1" ),<br>
array( "group_name" => "user",<br>
"group_desc" => "Users Group",<br>
"level" => "500",<br>
"activated" => "1" ),<br>
array( "group_name" => "public",<br>
"group_desc" => "Public Group",<br>
"level" => "900",<br>
"activated" => "1" ) ),<br>
"users" => array( array( "username" => "admin",<br>
"password" => "admin",<br>
"email" => "hide@address.com",<br>
"first_name" => "",<br>
"last_name" => "",<br>
"activated" => "1" ) )<br>
);<br>
<br>
if( !$dbum->install_tables( $options ) )<br>
{<br>
/*<br>
Error Handling<br>
*/<br>
}<br>
<br>
echo "all tables ";<br>
<br>
if( is_array( $options["users"] ) )<br>
{<br>
for( $i = 0; $i < count($options["users"]); $i++ )<br>
{<br>
echo "and user: ". $options["users"][$i]["username"] .", ";<br>
}<br>
}<br>
echo "installed."<br>
$db->disconnect();<br>
exit;<br>
?>
</div>
<p> </p>
<p> </p>
<div>
<p align="center">created by Steffen Stollfuß email: hide@address.com <br>
DocVersion: 0.9.5 - 29-08-2003 21:46 -</p>
</div>
<p> </p>
</body>
</html>