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
escort Bursa Bursa escort Antalya eskort
   

PHP ARTICLES

- Hackers Compromise PHP Sites to Launch Attac...
- Red Hat, Zend Form OpenShift PaaS Alliance
- PHP IDE News
- BCD, Zend Extend PHP Partnership
- PHP FAQ Highlight
- PHP Creator Didn't Set Out to Create a Langu...
- PHP Trends Revealed in Zend Study
- PHP: Best Methods for Running Scheduled Jobs
- PHP Array Functions: array_change_key_case
- PHP array_combine Function
- PHP array_chunk Function
- 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...

Developer Shed Affiliates

 


Dev Shed Tutorial Topics: