| Line 18... |
Line 18... |
| 18 |
</code>
|
18 |
</code>
|
| 19 |
My working copy is at
|
19 |
My working copy is at
|
| 20 |
http://svn.dailydata.net/svn/php_users/trunk
|
20 |
http://svn.dailydata.net/svn/php_users/trunk
|
| 21 |
but I recommend NOT using that as I use trunk as my personal playground and will commit broken code to it regularly
|
21 |
but I recommend NOT using that as I use trunk as my personal playground and will commit broken code to it regularly
|
| 22 |
|
22 |
|
| - |
|
23 |
An extension of this basic class which adds boolean permissions is the [[software:dailydata:libraries:php_user_permissions|UsersPermissions]] class. It is part of the same library.
|
| - |
|
24 |
|
| 23 |
==== Basic System ====
|
25 |
==== Basic System ====
|
| 24 |
|
26 |
|
| 25 |
With no modification, the system will store username, password and two booleans, isAdmin and enabled. The default table is created as
|
27 |
With no modification, the system will store username, password and two booleans, isAdmin and enabled. The default table is created as
|
| 26 |
|
28 |
|
| 27 |
<code sql>
|
29 |
<code sql>
|
| Line 51... |
Line 53... |
| 51 |
<code php>
|
53 |
<code php>
|
| 52 |
<?php
|
54 |
<?php
|
| 53 |
include_once( 'UsersDataSourceMySQLi.class.php' );
|
55 |
include_once( 'UsersDataSourceMySQLi.class.php' );
|
| 54 |
include_once( 'Users.class.php' );
|
56 |
include_once( 'Users.class.php' );
|
| 55 |
session_start();
|
57 |
session_start();
|
| 56 |
$connection = new usersDataSource(
|
58 |
$connection = new UsersDataSourceMySQLi(
|
| 57 |
null,
|
59 |
null,
|
| 58 |
null,
|
60 |
null,
|
| 59 |
array( 'username' => 'test', 'password' => 'test', 'database' => 'test' )
|
61 |
array( 'username' => 'test', 'password' => 'test', 'database' => 'test' )
|
| 60 |
);
|
62 |
);
|
| 61 |
//$connection->buildTable( 'admin', 'admin' ); die;
|
63 |
//$connection->buildTable( 'admin', 'admin' ); die;
|
| Line 74... |
Line 76... |
| 74 |
</div>
|
76 |
</div>
|
| 75 |
</body>
|
77 |
</body>
|
| 76 |
</html>
|
78 |
</html>
|
| 77 |
</code>
|
79 |
</code>
|
| 78 |
|
80 |
|
| 79 |
This example is using the usersDataSource definition of data access (included)
|
81 |
This example is using the UsersDataSourceMySQLi definition of data access (included)
|
| 80 |
|
82 |
|
| 81 |
If you run it the first time with <code php>$connection->buildTable( 'admin', 'admin' ); die;</code> uncommented, it will build the table. Comment that line out on the next run and you will be presented with a login screen.
|
83 |
If you run it the first time with <code php>$connection->buildTable( 'admin', 'admin' ); die;</code> uncommented, it will build the table. Comment that line out on the next run and you will be presented with a login screen.
|
| 82 |
|
84 |
|
| 83 |
Class function HTML() displays various things to allow login, then quits displaying anything. Setting $_REQUEST['logout'] = 1 before calling HTML() will initiate a log out which will destroy the session variable
|
85 |
Class function HTML() displays various things to allow login, then quits displaying anything. Setting $_REQUEST['logout'] = 1 before calling HTML() will initiate a log out which will destroy the session variable
|
| 84 |
|
86 |
|
| Line 139... |
Line 141... |
| 139 |
)
|
141 |
)
|
| 140 |
);
|
142 |
);
|
| 141 |
?>
|
143 |
?>
|
| 142 |
</code>
|
144 |
</code>
|
| 143 |
|
145 |
|
| 144 |
Now, when we instantiate a new object of class Users AND class usersDataSource, we simply pass this array in.
|
146 |
Now, when we instantiate a new object of class Users AND class UsersDataSourceMySQLi, we simply pass this array in.
|
| 145 |
|
147 |
|
| 146 |
<code php>
|
148 |
<code php>
|
| 147 |
$connection = new usersDataSource(
|
149 |
$connection = new UsersDataSourceMySQLi(
|
| 148 |
null,
|
150 |
null,
|
| 149 |
$customFields,
|
151 |
$customFields,
|
| 150 |
array( 'username' => 'test', 'password' => 'test', 'database' => 'test' )
|
152 |
array( 'username' => 'test', 'password' => 'test', 'database' => 'test' )
|
| 151 |
);
|
153 |
);
|
| 152 |
if ( ! isset( $_SESSION['user'] ) ) {
|
154 |
if ( ! isset( $_SESSION['user'] ) ) {
|
| Line 211... |
Line 213... |
| 211 |
== default ==
|
213 |
== default ==
|
| 212 |
For database creation, sets the DEFAULT attribute for the column
|
214 |
For database creation, sets the DEFAULT attribute for the column
|
| 213 |
|
215 |
|
| 214 |
==== usersDataSource ====
|
216 |
==== usersDataSource ====
|
| 215 |
|
217 |
|
| 216 |
This is our data access class. It really doesn't matter what it is called, though I plan to call it the same when I add more data access objects.
|
218 |
This is our data access class. As stated earlier, it is an abstract class, with UsersDataSourceMySQLi a class built on it.
|
| 217 |
|
219 |
|
| 218 |
This code accesses the data (duh), and is consistently called $connection in the Users class. The only requirement is that it must be able to implement the following functions
|
220 |
This code accesses the data (duh), and is consistently called $connection in the Users class. The only requirement is that it must be able to implement the following functions
|
| 219 |
|
221 |
|
| 220 |
getPassword( $username ) returns encrypted password
|
222 |
getPassword( $username ) returns encrypted password
|
| 221 |
getRecord( $username ) returns array containing the values for a user
|
223 |
getRecord( $username ) returns array containing the values for a user
|