Home arrow PHP arrow Page 3 - User Authentication With patUser (part 2)

Asking For More - PHP

In this second part, find out how you can use the patUser API toview, add, edit and delete users (and user attributes) from your userdatabase.

TABLE OF CONTENTS:
  1. User Authentication With patUser (part 2)
  2. Meeting The Family
  3. Asking For More
  4. Drilling Deeper
  5. All For One, And One For All
  6. Accounting For Change
  7. California Calling
  8. Making New Friends
  9. A Fast Edit
  10. Here Today, Gone Tomorrow
  11. Connecting The Dots
  12. A Well-Formed Plan
  13. Slice And Dice
By: icarus, (c) Melonfire
Rating: starstarstarstarstar / 7
May 01, 2003

print this article
SEARCH DEV SHED

TOOLS YOU CAN USE

advertisement
Now, let's make some additions to the patUser-provided schema for the "users" table. You might remember that the original schema looked like this:



# # Table structure for table 'users' # CREATE TABLE users ( uid int(10) unsigned NOT NULL auto_increment, username varchar(20) NOT NULL default '', passwd varchar(20) NOT NULL default '', email varchar(200) default NULL, nologin tinyint(1) NOT NULL default '0', first_login datetime default NULL, last_login datetime default NULL, count_logins int(10) unsigned NOT NULL default '0', count_pages int(10) unsigned NOT NULL default '0', time_online int(11) NOT NULL default '0', PRIMARY KEY (uid), KEY username (username) ) TYPE=MyISAM;
Let's alter this to include some additional fields, for age, sex and telephone number:

CREATE TABLE users ( uid int(10) unsigned NOT NULL auto_increment, username varchar(20) NOT NULL default '', passwd varchar(20) NOT NULL default '', email varchar(200) default NULL, age tinyint(4) NOT NULL default '0', sex char(1) NOT NULL default '', tel varchar(50) NOT NULL default '', nologin tinyint(1) NOT NULL default '0', first_login datetime default NULL, last_login datetime default NULL, count_logins int(10) unsigned NOT NULL default '0', count_pages int(10) unsigned NOT NULL default '0', time_online int(11) NOT NULL default '0', PRIMARY KEY (uid), KEY username (username) ) TYPE=MyISAM;
While we're at it, let's also insert a few records into the new table:

INSERT INTO users (uid, username, passwd, email, age, sex, tel) VALUES (1, 'joe', 'joe', NULL, 19, 'M', '123 4567'); INSERT INTO users (uid, username,passwd, email, age, sex, tel) VALUES (2, 'sarah', 'sarah', NULL, 35, 'F','543 18238'); INSERT INTO users (uid, username, passwd, email, age, sex,tel) VALUES (3, 'john', 'john', 'john@some.domain.com', 22, 'M', '8532377'); INSERT INTO users (uid, username, passwd, email, age, sex, tel)VALUES (4, 'william', 'william', 'william@somewhere.com', 31, 'M', '1232372');
As before, I can retrieve this information via an SQL query,

mysql> SELECT uid, username, age, sex, tel FROM users; +-----+----------+-----+-----+-----------+| uid | username | age | sex | tel |+-----+----------+-----+-----+-----------+| 1 | joe | 19 | M | 123 4567 || 2 | sarah | 35 | F | 543 18238 || 3 | john | 22 | M | 853 2377 || 4 | william | 31 | M | 123 2372 |+-----+----------+-----+-----+-----------+4 rows in set (0.00 sec)
or have patUser do it for me via its getUsers() function:

<?php // include classesinclude("../include/patDbc.php");include("../include/patUser.php");// initialize database layer$db = new patMySqlDbc("localhost", "db211", "us111", "secret");// initialize patUser$u = new patUser(true);// connect patUser to database$u->setAuthDbc($db);// set table$u->setAuthTable("users");// get user list$list = $u->getUsers(array("uid", "username", "age", "sex", "tel"));// print as tableecho "<h2>Users</h2>";echo "<table border=1>";echo "<tr>";echo "<td><b>UID</b></td>";echo "<td><b>Username</b></td>";echo "<td><b>Age</b></td>";echo "<td><b>Sex</b></td>";echo "<td><b>Tel</b></td>";echo "</tr>";// iterate over listforeach ($list as $l){ echo "<tr>"; echo "<td>" . $l['uid'] . "</td>"; echo "<td>" . $l['username'] . "</td>"; echo "<td>" . $l['age'] . "</td>"; echo "<td>" . $l['sex'] . "</td>"; echo "<td>" . $l['tel'] . "</td>"; echo "</tr>";}echo "</table>";?>
In this case, I've told getUsers() to retrieve a few extra fields from the database - specifically, the "age", "sex" and "tel" fields. You'll remember these are not standard patUser fields, but have been added by me for illustrative purposes.

Here's the output:



 
 
>>> More PHP Articles          >>> More By icarus, (c) Melonfire
 

blog comments powered by Disqus
   

PHP ARTICLES

- PHP Closures as View Helpers: Lazy-Loading F...
- Using PHP Closures as View Helpers
- PHP File and Operating System Program Execut...
- PHP: Effects of Wrapping Code in Class Const...
- PHP: Building Concrete Validators
- Sanitizing Input with PHP
- Executing Shell Commands with PHP
- Handling File Data with PHP
- File Security and Resources with PHP
- ArrayObject PHP Class Examples
- ArrayObject PHP Class: An Introduction
- Getting File System Data with PHP
- PHP Tools for Working with the File and Oper...
- Working with the File and Operating System w...
- PHP Proxy Patterns: Completing a Blog


© 2003-2012 by Developer Shed. All rights reserved. DS Cluster 5 - Follow our Sitemap

Dev Shed Tutorial Topics: