# HG changeset patch # User rejo # Date 1177226409 0 # Node ID 47dd15d8bb8ca2807c20dc49d1af326dff99f876 # Parent ac0ca51809b1bada79f9ab863b570acbd54762ad [feladat @ 20] - Merged branches/1.3.0 changes r12:19 into the trunk. diff -r ac0ca51809b1 -r 47dd15d8bb8c delete_user.php --- a/delete_user.php Wed Apr 18 22:48:49 2007 +0000 +++ b/delete_user.php Sun Apr 22 07:20:09 2007 +0000 @@ -91,7 +91,7 @@ } $message = _('You are going to delete this user, are you sure?'); - if(($numrows = $db->getOne("select count(id) from zones where owner=$id")) != 0) + if(($numrows = $db->queryOne("select count(id) from zones where owner=$id")) != 0) { $message .= " " . _('This user has access to ') . $numrows . _('domain(s), by deleting him you will also delete these domains'); } diff -r ac0ca51809b1 -r 47dd15d8bb8c docs/CHANGELOG --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/CHANGELOG Sun Apr 22 07:20:09 2007 +0000 @@ -0,0 +1,29 @@ +CHANGES between 1.3.0 and 1.2.7-patched +----------------------------------------------------------------------- + +- Updated the "database abstraction layer" from an outdated version of + the unmaintained PEAR::DB module to the most recent version of + PEAR::MDB2 (which is currently 2.4.0). Please read the README file + for important information about upgrading from 1.2.7-patched. It + will not break anything if you don't, but it won't work either. :) + +- Added multi-language support, using php's gettext functionality. A + first Dutch translation has been added, along with English. See for + more details docs/README.i18n. + +- Removed the so-called "sequence updater". The code has been changed + to use the auto increment functionalitiy in both mysql ang pgsql. It + is only tested on these backends, other backends are untested and + may be unsupported. See docs/README.sequence for more details on + inserting records and zones into the powerdns database when using + other tools than poweradmin as well. + +- Fixed a bug in search.php. When searching for a string it would + return matching records, not the matching domains. + +- Started cleanup code and files. For example, remove code and files + related to "migration from a stone-age version of poweradmin", + removal of the file called "BAKrecords.php", removal of code + comments of already implemented todo's, etc. + + diff -r ac0ca51809b1 -r 47dd15d8bb8c docs/ChangeLog --- a/docs/ChangeLog Wed Apr 18 22:48:49 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,687 +0,0 @@ -2003-05-15 00:49 azurazu - - * inc/footer.inc.php: Changed the version id + did some HTML code - layouting.. a bit just - -2003-05-15 00:48 azurazu - - * edit_record.php: Really stupid bug.. we also have to be able to - modify records... - -2003-05-10 22:21 azurazu - - * inc/record.inc.php: Fixed a bug in the delete_record which didnt - make it update the SOA serial thanks to Dolphin for reporting - -2003-05-10 22:20 azurazu - - * index.php: Fixed a minimum pass length when a user changes his - pass. Min length is chosen to be 4 - -2003-05-10 22:10 azurazu - - * edit.php, edit_record.php: Fixed the bugs as sent in by Mario - Peschel, thanks a lot - -2003-05-04 23:38 azurazu - - * inc/: record.inc.php, error.inc.php: Bug fixes - -2003-03-03 23:14 azurazu - - * inc/record.inc.php: Search modifications to allow wild searches - -2003-02-25 02:46 azurazu - - * docs/README: Cyberkid is our documentation god! Thanks for making - it all perfect! We love you :) - -2003-02-24 17:10 azurazu - - * inc/config-block.inc.php: Small changes to increase the - understandability - -2003-02-24 17:08 azurazu - - * docs/README: Updated for 1.2.4 - -2003-02-24 17:08 azurazu - - * docs/TODO: Minor changes - -2003-02-24 02:46 azurazu - - * inc/toolkit.inc.php: If I say I fixed I should fix it, doh. 4 -> - 6 was left out. Broken - -2003-02-24 00:32 azurazu - - * inc/record.inc.php: SOA Fixed - -2003-02-23 22:32 azurazu - - * edit.php: Removed the add or remove users gimmics for level1 - users - -2003-02-23 22:31 azurazu - - * inc/dns.inc.php: MX Fixme - -2003-02-23 22:30 azurazu - - * inc/record.inc.php: SOA fix - -2003-02-23 22:29 azurazu - - * inc/toolkit.inc.php: Email check had an error.. long live .museum - tld's - -2003-02-14 23:58 azurazu - - * seq_update.php: hit me please. - -2003-02-14 23:11 azurazu - - * seq_update.php: fixed the _seq table problem - -2003-02-14 23:01 azurazu - - * inc/dns.inc.php: dmnd noticed some bugs with SOA, thanks a lot :) - -2003-02-06 00:23 azurazu - - * inc/header.inc.php: removed some blank lines - -2003-02-06 00:22 azurazu - - * users.php: removed header error after adding users - -2003-02-05 23:24 azurazu - - * inc/dns.inc.php: Allowed '-' in urls useful for cgi-bin or so:) - -2003-02-05 23:22 azurazu - - * index.php: operator && should be || on line 67.. - -2003-02-05 16:25 azurazu - - * add_record.php: Dynamically updating of TTL or DEFAULT_TTL was - borked - -2003-01-13 23:08 azurazu - - * inc/auth.inc.php: DOS Format.. - -2003-01-13 00:03 azurazu - - * users.php: Cosmetics, moved the active to the middle - -2003-01-12 23:43 azurazu - - * edit.php, index.php: Added the MASTER/SLAVE information and - cleaned up code - -2003-01-12 23:42 azurazu - - * inc/config-block.inc.php: New toggle - -2003-01-12 23:39 azurazu - - * inc/record.inc.php: A lot of changes, it might really screw up :/ - -2003-01-12 21:20 azurazu - - * style/style.css.php: New style added to override the table - -2003-01-10 00:26 azurazu - - * index.php, seq_update.php, users.php: Added navigation and - navigation checks, also changed layout here and there a tiny bit - -2003-01-10 00:25 azurazu - - * inc/footer.inc.php: New version, new footer :) - -2003-01-10 00:24 azurazu - - * inc/record.inc.php: Added search_record function to support the - search of records or domains - -2003-01-10 00:23 azurazu - - * search.php: search.php, to allow you too search through your - files, thanks to DeViCeD - -2003-01-09 17:23 azurazu - - * docs/ChangeLog: Changes, as usual :) - -2003-01-09 17:15 azurazu - - * edit.php: Fixed two stupid bugs in edit.php, you couldnt add - users - -2003-01-08 01:40 azurazu - - * test_setup.php: Kicked out the nice binary stuff, ah well.. hehe - and changed ti to a variable array, just as handy I would say, also - removed the _seq table checks which arent needed if this is ran the - first time or alike, thanks to our bug reporters - -2003-01-08 00:46 azurazu - - * migrator.php-pa: Heavily modified, build in check so that if your - domains tablei s filled already it will nicely work etc. - -2003-01-08 00:41 lyon - - * inc/: footer.inc.php, toolkit.inc.php: added a check for - install.php and migrator .php. error if the exist( security) added - a little "$db is actually an object" check in the footer - -2003-01-08 00:29 lyon - - * install.php: added a config check - -2003-01-08 00:20 lyon - - * install.php: Did some addslashes/stripslashes magic. made the - warning to delete the install.php a bit clearer. Fixed the error - function (first commit by me, w00t) - -2003-01-02 00:13 azurazu - - * inc/footer.inc.php: New version - -2003-01-01 23:39 azurazu - - * docs/TODO: removed some issues - -2003-01-01 23:36 azurazu - - * edit.php, edit_record.php, index.php, inc/header.inc.php: Made - w3c happier :) - -2003-01-01 23:34 azurazu - - * users.php: Added some features on the TODO (Name validation etc.) - -2003-01-01 23:33 azurazu - - * delete_user.php, inc/users.inc.php: Fixed the deletion of users - and cleaned up the source - -2002-12-31 18:35 azurazu - - * users.php: Added that password, fullname, email and username MUST - BE filled in - -2002-12-31 04:23 azurazu - - * install.php: New installer - -2002-12-31 04:13 azurazu - - * inc/toolkit.inc.php: Small bug in xs, thanks neetmans - -2002-12-31 02:17 azurazu - - * docs/: CHANGELOG, ChangeLog: Updated the ChangeLog - -2002-12-31 01:59 azurazu - - * migrator.php-pa: Added the migrator tool - -2002-12-31 01:56 azurazu - - * index.php: Build in security check to see if a database is - converted or not - -2002-12-31 01:55 azurazu - - * seq_update.php: Removed a newbie string - -2002-12-31 01:53 azurazu - - * docs/README-Sequence: Sequence updater documentation - -2002-12-31 01:53 azurazu - - * docs/README: Changes for 1.2 - -2002-12-31 01:47 azurazu - - * migrator.php-pa: migration tool - -2002-12-30 20:06 azurazu - - * install.php: Changed it for the new version - -2002-12-27 03:48 azurazu - - * delete_user.php: Function rename - -2002-12-27 03:48 azurazu - - * edit.php: Fixed it so you can assign owners to a domain and also - delete them - -2002-12-27 03:47 azurazu - - * seq_update.php: Removed an echo, sloppy - -2002-12-27 03:45 azurazu - - * inc/auth.inc.php: Added some functions to make error reporting - happier - -2002-12-27 03:45 azurazu - - * inc/database.inc.php: Some formatting probs - -2002-12-27 03:41 azurazu - - * inc/footer.inc.php: This will be version 1.2 not 1.1.3 - -2002-12-27 03:40 azurazu - - * inc/record.inc.php: added delete_owner and changed change_owner - to add_owner to support multi ownage features and domains table - -2002-12-27 03:16 azurazu - - * inc/toolkit.inc.php: Error handling in xs removed - -2002-12-24 21:33 azurazu - - * edit.php, users.php: Inserted domains table - -2002-12-24 20:46 azurazu - - * inc/: db.inc.php, record.inc.php: File is totally deprecated - -2002-12-21 01:50 azurazu - - * seq_update.php: It was one big bug! How the heck could this - happen - -2002-12-20 20:17 azurazu - - * inc/auth.inc.php: Dirty QUERY_STRING bug - -2002-12-18 02:13 azurazu - - * delete_domain.php: Quickly added a ERROR define - -2002-12-18 02:09 azurazu - - * index.php, seq_update.php: Added sequene number updater. Fixed - your database in case you do manual inserts - -2002-12-18 02:08 azurazu - - * test_setup.php: Build a better test_setup - -2002-12-18 01:37 azurazu - - * style/style.css.php: Added two style definitions: message and - messagetable - -2002-12-18 01:36 azurazu - - * inc/toolkit.inc.php: Added message function - -2002-12-17 16:20 sjeemz - - * inc/footer.inc.php: Changed our website (again) - -2002-12-17 16:17 sjeemz - - * inc/footer.inc.php: Changed our website - -2002-12-17 16:16 azurazu - - * docs/README: Added a story about PEAR - -2002-12-17 00:16 azurazu - - * inc/footer.inc.php: CVS version - -2002-12-17 00:01 azurazu - - * inc/dns.inc.php: MAJOR, really MAJOR regexp changes - -2002-12-16 01:42 azurazu - - * inc/toolkit.inc.php: Added footer to error - -2002-12-16 01:38 azurazu - - * docs/ChangeLog: GNU Style ChangeLog - -2002-12-16 01:26 azurazu - - * edit_record.php: Fixed TTL bug - -2002-12-16 01:20 azurazu - - * inc/toolkit.inc.php: Fixed a cough small cough is_valid_email - return bug - -2002-12-16 01:09 azurazu - - * inc/dns.inc.php: Geez dumb bug, left a var_dump - -2002-12-16 00:43 azurazu - - * install.php: Small bug, thanks l0ngb0ng - -2002-12-14 17:32 azurazu - - * inc/dns.inc.php: Typo.. - -2002-12-14 17:26 azurazu - - * inc/dns.inc.php: Added wildcard records functionality, thanks - oscar - -2002-12-14 02:27 azurazu - - * docs/REDHAT-README: Dirty Fix + BUG Description for RedHat 8.0 - -2002-12-14 02:26 azurazu - - * inc/dns.inc.php: is_valid_mx was borking with prio modifications, - thanks to oscar - -2002-12-14 01:52 azurazu - - * install.php: RedHat BUG - -2002-12-14 01:07 azurazu - - * install.php: Newline error? - -2002-12-10 02:30 azurazu - - * style/style.css.php: Headers etc - -2002-12-10 02:28 azurazu - - * test_setup.php: Changed it for PEAR, headers added aswell - -2002-12-10 02:27 azurazu - - * users.php, add_record.php, delete_domain.php, delete_record.php, - delete_user.php, edit.php, edit_record.php, edit_user.php, - index.php, install.php: And made an error, DOH - -2002-12-10 02:26 azurazu - - * add_record.php, delete_domain.php, delete_record.php, - delete_user.php, edit.php, edit_record.php, edit_user.php, - index.php, install.php, users.php: And added ID - -2002-12-10 02:24 azurazu - - * add_record.php, delete_domain.php, delete_record.php, - delete_user.php, edit.php, edit_record.php, edit_user.php, - index.php, install.php: Added license and headers - -2002-12-10 01:55 azurazu - - * inc/: auth.inc.php, database.inc.php, dns.inc.php, error.inc.php, - footer.inc.php, header.inc.php, record.inc.php, toolkit.inc.php, - users.inc.php: Added license information and headers - -2002-12-10 01:45 azurazu - - * inc/auth.inc.php: Added fancy header (test:P) - -2002-12-10 01:31 azurazu - - * inc/error.inc.php: Added errors - -2002-12-10 01:31 azurazu - - * inc/dns.inc.php: Changed is_valid_hostname and is_valid_soa - -2002-12-09 23:52 azurazu - - * inc/dns.inc.php: DNS Function enhancements (return values) - -2002-12-09 23:51 azurazu - - * inc/error.inc.php: Added errors - -2002-12-09 22:19 azurazu - - * inc/users.inc.php: Typo - -2002-12-04 02:51 azurazu - - * install.php: Modifications all over... the script was weak in - general. Added some sort of support for pgsql but its not - implemented, just queries are there - -2002-12-03 23:12 azurazu - - * docs/TODO: Changed the layout and added a few things - -2002-12-03 23:11 azurazu - - * inc/users.inc.php: Removed is_valid_email and changed - implementation - -2002-12-03 23:11 azurazu - - * inc/dns.inc.php: changed the function order and added some - comments - -2002-12-03 23:10 azurazu - - * inc/toolkit.inc.php: moved is_valid_email to toolkit - -2002-12-03 01:04 azurazu - - * inc/dns.inc.php: Finalized a big part of the checking. - -2002-12-03 01:03 azurazu - - * inc/users.inc.php: Build is_valid_email functionality - -2002-12-02 22:05 azurazu - - * inc/config-block.inc.php: Added fancy records toggle - -2002-12-02 21:41 azurazu - - * docs/TODO: Changes - -2002-11-30 02:16 azurazu - - * inc/toolkit.inc.php: Another newline bug.. bah - -2002-11-30 00:11 azurazu - - * inc/dns.inc.php: Newline problems and NS validation added - -2002-11-29 23:32 azurazu - - * inc/dns.inc.php: Splitted up and worked stuff out not bug free - yet I think - -2002-11-29 23:18 azurazu - - * inc/record.inc.php: Bug Fix - -2002-11-26 01:09 azurazu - - * users.php: Added ERR_LEVEL_10 - -2002-11-26 01:05 azurazu - - * inc/dns.inc.php: Removed a bug - -2002-11-26 01:05 azurazu - - * inc/footer.inc.php: Added URL - -2002-11-26 01:04 azurazu - - * inc/record.inc.php: Removed two bugs - -2002-11-26 01:02 azurazu - - * inc/config-block.inc.php: Added 3 fields and removed deprecated - stuff - -2002-11-25 22:01 azurazu - - * delete_user.php, edit_user.php: Changed the name of - get_name_from_userid to get_fullname_from_userid - -2002-11-25 22:00 azurazu - - * inc/error.inc.php: Fixed a DUMB error in error.. d'oh and added - some more - -2002-11-25 21:59 azurazu - - * inc/users.inc.php: Implemented comments and error handling in - users.inc.php - -2002-11-25 21:11 azurazu - - * inc/: error.inc.php, toolkit.inc.php: Added error define - functionality - -2002-11-25 21:09 azurazu - - * inc/record.inc.php: Added documentation for each function and - changed the error processing to a file called error.inc.php - -2002-11-25 19:16 azurazu - - * docs/TODO: [no log message] - -2002-11-25 18:35 azurazu - - * inc/dns.inc.php: Allow the notation of - 12.8/123.123.123.123.in-addr.arpa in the validators. Thanks to mijo - for reporting this bug - -2002-11-25 18:30 azurazu - - * inc/: record.inc.php, users.inc.php: Major modifications and bug - fixes. Also added comments - -2002-11-21 23:40 azurazu - - * inc/record.inc.php: Removed some comment crap - -2002-11-21 23:39 azurazu - - * inc/dns.inc.php: Fixed some prio bugs - -2002-11-21 23:26 azurazu - - * inc/: dns.inc.php, record.inc.php: Build in basic record - validation, not totally done yet. Moved the validation function to - dns.inc.php - -2002-11-05 00:57 azurazu - - * inc/record.inc.php: I dont get the errors (one e ok) but the rest - is just stupid Windows probly :/ - -2002-11-05 00:38 azurazu - - * delete_user.php, index.php: Small bug fixes and enhancements - -2002-11-05 00:35 azurazu - - * inc/record.inc.php: Heavy modifications and _STUPID_ bugfixes, - really checkout the CVS - -2002-11-03 16:07 azurazu - - * inc/dns.inc.php: Fixed a nasty bug in is_valid_hostname - -2002-10-30 01:04 azurazu - - * inc/: dns.inc.php, record.inc.php: A lot of changes for - validation. Has to be split up still but testing purposes first. - Not done yet - -2002-10-28 13:45 sjeemz - - * docs/TODO: modified TODO file - -2002-10-28 02:57 azurazu - - * inc/record.inc.php: Fixed several small bugs - -2002-10-28 02:56 azurazu - - * inc/dns.inc.php: Fixed even better ipv4 check (oneliner) and - added function validate_record - -2002-10-27 23:00 azurazu - - * docs/TODO: Removed database changes - see changelog - -2002-10-27 20:22 azurazu - - * add_record.php, delete_domain.php, delete_record.php, - delete_user.php, edit.php, edit_record.php, edit_user.php, - index.php, users.php: Changing because of db.inc.php to - toolkit.inc.php - -2002-10-27 20:20 azurazu - - * inc/footer.inc.php: Changed closing database system - -2002-10-27 20:19 azurazu - - * inc/: auth.inc.php, dns.inc.php, record.inc.php, toolkit.inc.php, - users.inc.php: Clean up of db.inc.php - -2002-10-27 20:18 azurazu - - * inc/: dal.inc.php, database.inc.php: Database Abstraction Layer - and implementation - -2002-10-27 20:17 azurazu - - * inc/config-block.inc.php: Changed mysql fields to db fields - -2002-10-27 20:12 azurazu - - * docs/CHANGELOG: Changed a few things - -2002-10-26 23:38 azurazu - - * docs/TODO: Added 2 remarks - -2002-10-25 22:20 azurazu - - * add_record.php, delete_domain.php, delete_record.php, - delete_user.php, edit.php, edit_record.php, edit_user.php, - index.php, install.php, test_setup.php, users.php, docs/CHANGELOG, - docs/README, docs/TODO, images/background.jpg, images/delete.gif, - images/edit.gif, inc/config-block.inc.php, inc/db.inc.php, - inc/footer.inc.php, inc/header.inc.php, style/style.css.php: - PowerAdmin initial source code submit - -2002-10-25 22:20 azurazu - - * add_record.php, delete_domain.php, delete_record.php, - delete_user.php, edit.php, edit_record.php, edit_user.php, - index.php, install.php, test_setup.php, users.php, docs/CHANGELOG, - docs/README, docs/TODO, images/background.jpg, images/delete.gif, - images/edit.gif, inc/config-block.inc.php, inc/db.inc.php, - inc/footer.inc.php, inc/header.inc.php, style/style.css.php: - Initial revision - diff -r ac0ca51809b1 -r 47dd15d8bb8c docs/Changelog.pre-1.3.0 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/Changelog.pre-1.3.0 Sun Apr 22 07:20:09 2007 +0000 @@ -0,0 +1,687 @@ +2003-05-15 00:49 azurazu + + * inc/footer.inc.php: Changed the version id + did some HTML code + layouting.. a bit just + +2003-05-15 00:48 azurazu + + * edit_record.php: Really stupid bug.. we also have to be able to + modify records... + +2003-05-10 22:21 azurazu + + * inc/record.inc.php: Fixed a bug in the delete_record which didnt + make it update the SOA serial thanks to Dolphin for reporting + +2003-05-10 22:20 azurazu + + * index.php: Fixed a minimum pass length when a user changes his + pass. Min length is chosen to be 4 + +2003-05-10 22:10 azurazu + + * edit.php, edit_record.php: Fixed the bugs as sent in by Mario + Peschel, thanks a lot + +2003-05-04 23:38 azurazu + + * inc/: record.inc.php, error.inc.php: Bug fixes + +2003-03-03 23:14 azurazu + + * inc/record.inc.php: Search modifications to allow wild searches + +2003-02-25 02:46 azurazu + + * docs/README: Cyberkid is our documentation god! Thanks for making + it all perfect! We love you :) + +2003-02-24 17:10 azurazu + + * inc/config-block.inc.php: Small changes to increase the + understandability + +2003-02-24 17:08 azurazu + + * docs/README: Updated for 1.2.4 + +2003-02-24 17:08 azurazu + + * docs/TODO: Minor changes + +2003-02-24 02:46 azurazu + + * inc/toolkit.inc.php: If I say I fixed I should fix it, doh. 4 -> + 6 was left out. Broken + +2003-02-24 00:32 azurazu + + * inc/record.inc.php: SOA Fixed + +2003-02-23 22:32 azurazu + + * edit.php: Removed the add or remove users gimmics for level1 + users + +2003-02-23 22:31 azurazu + + * inc/dns.inc.php: MX Fixme + +2003-02-23 22:30 azurazu + + * inc/record.inc.php: SOA fix + +2003-02-23 22:29 azurazu + + * inc/toolkit.inc.php: Email check had an error.. long live .museum + tld's + +2003-02-14 23:58 azurazu + + * seq_update.php: hit me please. + +2003-02-14 23:11 azurazu + + * seq_update.php: fixed the _seq table problem + +2003-02-14 23:01 azurazu + + * inc/dns.inc.php: dmnd noticed some bugs with SOA, thanks a lot :) + +2003-02-06 00:23 azurazu + + * inc/header.inc.php: removed some blank lines + +2003-02-06 00:22 azurazu + + * users.php: removed header error after adding users + +2003-02-05 23:24 azurazu + + * inc/dns.inc.php: Allowed '-' in urls useful for cgi-bin or so:) + +2003-02-05 23:22 azurazu + + * index.php: operator && should be || on line 67.. + +2003-02-05 16:25 azurazu + + * add_record.php: Dynamically updating of TTL or DEFAULT_TTL was + borked + +2003-01-13 23:08 azurazu + + * inc/auth.inc.php: DOS Format.. + +2003-01-13 00:03 azurazu + + * users.php: Cosmetics, moved the active to the middle + +2003-01-12 23:43 azurazu + + * edit.php, index.php: Added the MASTER/SLAVE information and + cleaned up code + +2003-01-12 23:42 azurazu + + * inc/config-block.inc.php: New toggle + +2003-01-12 23:39 azurazu + + * inc/record.inc.php: A lot of changes, it might really screw up :/ + +2003-01-12 21:20 azurazu + + * style/style.css.php: New style added to override the table + +2003-01-10 00:26 azurazu + + * index.php, seq_update.php, users.php: Added navigation and + navigation checks, also changed layout here and there a tiny bit + +2003-01-10 00:25 azurazu + + * inc/footer.inc.php: New version, new footer :) + +2003-01-10 00:24 azurazu + + * inc/record.inc.php: Added search_record function to support the + search of records or domains + +2003-01-10 00:23 azurazu + + * search.php: search.php, to allow you too search through your + files, thanks to DeViCeD + +2003-01-09 17:23 azurazu + + * docs/ChangeLog: Changes, as usual :) + +2003-01-09 17:15 azurazu + + * edit.php: Fixed two stupid bugs in edit.php, you couldnt add + users + +2003-01-08 01:40 azurazu + + * test_setup.php: Kicked out the nice binary stuff, ah well.. hehe + and changed ti to a variable array, just as handy I would say, also + removed the _seq table checks which arent needed if this is ran the + first time or alike, thanks to our bug reporters + +2003-01-08 00:46 azurazu + + * migrator.php-pa: Heavily modified, build in check so that if your + domains tablei s filled already it will nicely work etc. + +2003-01-08 00:41 lyon + + * inc/: footer.inc.php, toolkit.inc.php: added a check for + install.php and migrator .php. error if the exist( security) added + a little "$db is actually an object" check in the footer + +2003-01-08 00:29 lyon + + * install.php: added a config check + +2003-01-08 00:20 lyon + + * install.php: Did some addslashes/stripslashes magic. made the + warning to delete the install.php a bit clearer. Fixed the error + function (first commit by me, w00t) + +2003-01-02 00:13 azurazu + + * inc/footer.inc.php: New version + +2003-01-01 23:39 azurazu + + * docs/TODO: removed some issues + +2003-01-01 23:36 azurazu + + * edit.php, edit_record.php, index.php, inc/header.inc.php: Made + w3c happier :) + +2003-01-01 23:34 azurazu + + * users.php: Added some features on the TODO (Name validation etc.) + +2003-01-01 23:33 azurazu + + * delete_user.php, inc/users.inc.php: Fixed the deletion of users + and cleaned up the source + +2002-12-31 18:35 azurazu + + * users.php: Added that password, fullname, email and username MUST + BE filled in + +2002-12-31 04:23 azurazu + + * install.php: New installer + +2002-12-31 04:13 azurazu + + * inc/toolkit.inc.php: Small bug in xs, thanks neetmans + +2002-12-31 02:17 azurazu + + * docs/: CHANGELOG, ChangeLog: Updated the ChangeLog + +2002-12-31 01:59 azurazu + + * migrator.php-pa: Added the migrator tool + +2002-12-31 01:56 azurazu + + * index.php: Build in security check to see if a database is + converted or not + +2002-12-31 01:55 azurazu + + * seq_update.php: Removed a newbie string + +2002-12-31 01:53 azurazu + + * docs/README-Sequence: Sequence updater documentation + +2002-12-31 01:53 azurazu + + * docs/README: Changes for 1.2 + +2002-12-31 01:47 azurazu + + * migrator.php-pa: migration tool + +2002-12-30 20:06 azurazu + + * install.php: Changed it for the new version + +2002-12-27 03:48 azurazu + + * delete_user.php: Function rename + +2002-12-27 03:48 azurazu + + * edit.php: Fixed it so you can assign owners to a domain and also + delete them + +2002-12-27 03:47 azurazu + + * seq_update.php: Removed an echo, sloppy + +2002-12-27 03:45 azurazu + + * inc/auth.inc.php: Added some functions to make error reporting + happier + +2002-12-27 03:45 azurazu + + * inc/database.inc.php: Some formatting probs + +2002-12-27 03:41 azurazu + + * inc/footer.inc.php: This will be version 1.2 not 1.1.3 + +2002-12-27 03:40 azurazu + + * inc/record.inc.php: added delete_owner and changed change_owner + to add_owner to support multi ownage features and domains table + +2002-12-27 03:16 azurazu + + * inc/toolkit.inc.php: Error handling in xs removed + +2002-12-24 21:33 azurazu + + * edit.php, users.php: Inserted domains table + +2002-12-24 20:46 azurazu + + * inc/: db.inc.php, record.inc.php: File is totally deprecated + +2002-12-21 01:50 azurazu + + * seq_update.php: It was one big bug! How the heck could this + happen + +2002-12-20 20:17 azurazu + + * inc/auth.inc.php: Dirty QUERY_STRING bug + +2002-12-18 02:13 azurazu + + * delete_domain.php: Quickly added a ERROR define + +2002-12-18 02:09 azurazu + + * index.php, seq_update.php: Added sequene number updater. Fixed + your database in case you do manual inserts + +2002-12-18 02:08 azurazu + + * test_setup.php: Build a better test_setup + +2002-12-18 01:37 azurazu + + * style/style.css.php: Added two style definitions: message and + messagetable + +2002-12-18 01:36 azurazu + + * inc/toolkit.inc.php: Added message function + +2002-12-17 16:20 sjeemz + + * inc/footer.inc.php: Changed our website (again) + +2002-12-17 16:17 sjeemz + + * inc/footer.inc.php: Changed our website + +2002-12-17 16:16 azurazu + + * docs/README: Added a story about PEAR + +2002-12-17 00:16 azurazu + + * inc/footer.inc.php: CVS version + +2002-12-17 00:01 azurazu + + * inc/dns.inc.php: MAJOR, really MAJOR regexp changes + +2002-12-16 01:42 azurazu + + * inc/toolkit.inc.php: Added footer to error + +2002-12-16 01:38 azurazu + + * docs/ChangeLog: GNU Style ChangeLog + +2002-12-16 01:26 azurazu + + * edit_record.php: Fixed TTL bug + +2002-12-16 01:20 azurazu + + * inc/toolkit.inc.php: Fixed a cough small cough is_valid_email + return bug + +2002-12-16 01:09 azurazu + + * inc/dns.inc.php: Geez dumb bug, left a var_dump + +2002-12-16 00:43 azurazu + + * install.php: Small bug, thanks l0ngb0ng + +2002-12-14 17:32 azurazu + + * inc/dns.inc.php: Typo.. + +2002-12-14 17:26 azurazu + + * inc/dns.inc.php: Added wildcard records functionality, thanks + oscar + +2002-12-14 02:27 azurazu + + * docs/REDHAT-README: Dirty Fix + BUG Description for RedHat 8.0 + +2002-12-14 02:26 azurazu + + * inc/dns.inc.php: is_valid_mx was borking with prio modifications, + thanks to oscar + +2002-12-14 01:52 azurazu + + * install.php: RedHat BUG + +2002-12-14 01:07 azurazu + + * install.php: Newline error? + +2002-12-10 02:30 azurazu + + * style/style.css.php: Headers etc + +2002-12-10 02:28 azurazu + + * test_setup.php: Changed it for PEAR, headers added aswell + +2002-12-10 02:27 azurazu + + * users.php, add_record.php, delete_domain.php, delete_record.php, + delete_user.php, edit.php, edit_record.php, edit_user.php, + index.php, install.php: And made an error, DOH + +2002-12-10 02:26 azurazu + + * add_record.php, delete_domain.php, delete_record.php, + delete_user.php, edit.php, edit_record.php, edit_user.php, + index.php, install.php, users.php: And added ID + +2002-12-10 02:24 azurazu + + * add_record.php, delete_domain.php, delete_record.php, + delete_user.php, edit.php, edit_record.php, edit_user.php, + index.php, install.php: Added license and headers + +2002-12-10 01:55 azurazu + + * inc/: auth.inc.php, database.inc.php, dns.inc.php, error.inc.php, + footer.inc.php, header.inc.php, record.inc.php, toolkit.inc.php, + users.inc.php: Added license information and headers + +2002-12-10 01:45 azurazu + + * inc/auth.inc.php: Added fancy header (test:P) + +2002-12-10 01:31 azurazu + + * inc/error.inc.php: Added errors + +2002-12-10 01:31 azurazu + + * inc/dns.inc.php: Changed is_valid_hostname and is_valid_soa + +2002-12-09 23:52 azurazu + + * inc/dns.inc.php: DNS Function enhancements (return values) + +2002-12-09 23:51 azurazu + + * inc/error.inc.php: Added errors + +2002-12-09 22:19 azurazu + + * inc/users.inc.php: Typo + +2002-12-04 02:51 azurazu + + * install.php: Modifications all over... the script was weak in + general. Added some sort of support for pgsql but its not + implemented, just queries are there + +2002-12-03 23:12 azurazu + + * docs/TODO: Changed the layout and added a few things + +2002-12-03 23:11 azurazu + + * inc/users.inc.php: Removed is_valid_email and changed + implementation + +2002-12-03 23:11 azurazu + + * inc/dns.inc.php: changed the function order and added some + comments + +2002-12-03 23:10 azurazu + + * inc/toolkit.inc.php: moved is_valid_email to toolkit + +2002-12-03 01:04 azurazu + + * inc/dns.inc.php: Finalized a big part of the checking. + +2002-12-03 01:03 azurazu + + * inc/users.inc.php: Build is_valid_email functionality + +2002-12-02 22:05 azurazu + + * inc/config-block.inc.php: Added fancy records toggle + +2002-12-02 21:41 azurazu + + * docs/TODO: Changes + +2002-11-30 02:16 azurazu + + * inc/toolkit.inc.php: Another newline bug.. bah + +2002-11-30 00:11 azurazu + + * inc/dns.inc.php: Newline problems and NS validation added + +2002-11-29 23:32 azurazu + + * inc/dns.inc.php: Splitted up and worked stuff out not bug free + yet I think + +2002-11-29 23:18 azurazu + + * inc/record.inc.php: Bug Fix + +2002-11-26 01:09 azurazu + + * users.php: Added ERR_LEVEL_10 + +2002-11-26 01:05 azurazu + + * inc/dns.inc.php: Removed a bug + +2002-11-26 01:05 azurazu + + * inc/footer.inc.php: Added URL + +2002-11-26 01:04 azurazu + + * inc/record.inc.php: Removed two bugs + +2002-11-26 01:02 azurazu + + * inc/config-block.inc.php: Added 3 fields and removed deprecated + stuff + +2002-11-25 22:01 azurazu + + * delete_user.php, edit_user.php: Changed the name of + get_name_from_userid to get_fullname_from_userid + +2002-11-25 22:00 azurazu + + * inc/error.inc.php: Fixed a DUMB error in error.. d'oh and added + some more + +2002-11-25 21:59 azurazu + + * inc/users.inc.php: Implemented comments and error handling in + users.inc.php + +2002-11-25 21:11 azurazu + + * inc/: error.inc.php, toolkit.inc.php: Added error define + functionality + +2002-11-25 21:09 azurazu + + * inc/record.inc.php: Added documentation for each function and + changed the error processing to a file called error.inc.php + +2002-11-25 19:16 azurazu + + * docs/TODO: [no log message] + +2002-11-25 18:35 azurazu + + * inc/dns.inc.php: Allow the notation of + 12.8/123.123.123.123.in-addr.arpa in the validators. Thanks to mijo + for reporting this bug + +2002-11-25 18:30 azurazu + + * inc/: record.inc.php, users.inc.php: Major modifications and bug + fixes. Also added comments + +2002-11-21 23:40 azurazu + + * inc/record.inc.php: Removed some comment crap + +2002-11-21 23:39 azurazu + + * inc/dns.inc.php: Fixed some prio bugs + +2002-11-21 23:26 azurazu + + * inc/: dns.inc.php, record.inc.php: Build in basic record + validation, not totally done yet. Moved the validation function to + dns.inc.php + +2002-11-05 00:57 azurazu + + * inc/record.inc.php: I dont get the errors (one e ok) but the rest + is just stupid Windows probly :/ + +2002-11-05 00:38 azurazu + + * delete_user.php, index.php: Small bug fixes and enhancements + +2002-11-05 00:35 azurazu + + * inc/record.inc.php: Heavy modifications and _STUPID_ bugfixes, + really checkout the CVS + +2002-11-03 16:07 azurazu + + * inc/dns.inc.php: Fixed a nasty bug in is_valid_hostname + +2002-10-30 01:04 azurazu + + * inc/: dns.inc.php, record.inc.php: A lot of changes for + validation. Has to be split up still but testing purposes first. + Not done yet + +2002-10-28 13:45 sjeemz + + * docs/TODO: modified TODO file + +2002-10-28 02:57 azurazu + + * inc/record.inc.php: Fixed several small bugs + +2002-10-28 02:56 azurazu + + * inc/dns.inc.php: Fixed even better ipv4 check (oneliner) and + added function validate_record + +2002-10-27 23:00 azurazu + + * docs/TODO: Removed database changes - see changelog + +2002-10-27 20:22 azurazu + + * add_record.php, delete_domain.php, delete_record.php, + delete_user.php, edit.php, edit_record.php, edit_user.php, + index.php, users.php: Changing because of db.inc.php to + toolkit.inc.php + +2002-10-27 20:20 azurazu + + * inc/footer.inc.php: Changed closing database system + +2002-10-27 20:19 azurazu + + * inc/: auth.inc.php, dns.inc.php, record.inc.php, toolkit.inc.php, + users.inc.php: Clean up of db.inc.php + +2002-10-27 20:18 azurazu + + * inc/: dal.inc.php, database.inc.php: Database Abstraction Layer + and implementation + +2002-10-27 20:17 azurazu + + * inc/config-block.inc.php: Changed mysql fields to db fields + +2002-10-27 20:12 azurazu + + * docs/CHANGELOG: Changed a few things + +2002-10-26 23:38 azurazu + + * docs/TODO: Added 2 remarks + +2002-10-25 22:20 azurazu + + * add_record.php, delete_domain.php, delete_record.php, + delete_user.php, edit.php, edit_record.php, edit_user.php, + index.php, install.php, test_setup.php, users.php, docs/CHANGELOG, + docs/README, docs/TODO, images/background.jpg, images/delete.gif, + images/edit.gif, inc/config-block.inc.php, inc/db.inc.php, + inc/footer.inc.php, inc/header.inc.php, style/style.css.php: + PowerAdmin initial source code submit + +2002-10-25 22:20 azurazu + + * add_record.php, delete_domain.php, delete_record.php, + delete_user.php, edit.php, edit_record.php, edit_user.php, + index.php, install.php, test_setup.php, users.php, docs/CHANGELOG, + docs/README, docs/TODO, images/background.jpg, images/delete.gif, + images/edit.gif, inc/config-block.inc.php, inc/db.inc.php, + inc/footer.inc.php, inc/header.inc.php, style/style.css.php: + Initial revision + diff -r ac0ca51809b1 -r 47dd15d8bb8c docs/README --- a/docs/README Wed Apr 18 22:48:49 2007 +0000 +++ b/docs/README Sun Apr 22 07:20:09 2007 +0000 @@ -1,178 +1,109 @@ -1. What is PowerAdmin ------------------------------- +What is Poweradmin? +----------------------------------------------------------------------- -PowerAdmin is a non commercial front-end for the PowerDNS (www.powerdns.com) nameserver. -The goal of PowerAdmin is to manage the (MySQL) database behind PowerDNS, which contains -the DNS records. - -There have been some changes in this release, both of major and minor importance. -Please read the following document to familiarize yourself with them. You are also -requested to report any bugs should you encounter them. +Poweradmin is a non-commercial front-end for the PowerDNS nameserver, +see . The goal of Poweradmin is to provide a +friendly management interface to the database backend of PowerDNS +which actually holds the DNS records. At this moment, both the mysql +and pgsql are supported. The interface allows add, modify and deletion +of both forward and reverse zones and has full IPv6 support. - - -2. Where to get PowerAdmin ------------------------------- +Poweradmin is written by Roeland Nieuwenhuis +and Sjeemz . It contains patches of Wim Moistry and +Dennis Roos. -The main location of PowerAdmin is http://www.poweradmin.org - - - -3. Notes ------------------------------- +Please see CHANGES for a list of changes, CHANGES.pre-1.3.0 for a list +of changes prior to 1.3.0 release, README.i18n for information on the +multi language support, README.sequence for information the "sequence +updater" and the insertion of records and zones using other interfaces +than poweradmin. -3.1 Migrating ------------------------------- - -If you are running a stone-age version of PowerAdmin read the following information! +Where to get Poweradmin? +----------------------------------------------------------------------- -Due to some major changes in this release the current version of PowerAdmin -supports gmysql backend. You are strongly advised to backup your data before running the -migrator.php tool in your poweradmin directory. This is to protect you against any data -loss should anything go wrong. We assume it all works properly, but due to a limited -number of betatesters we cannot guarantee our tool is 100% bug free. - -!! Please be sure you have a working backup of your data !! - -Do the following to migrate: -- rename the file migrator.php-pa in your webdir to migrator.php. -- Go here to migrate it. -It is recommended to synchronize your database aswell after the update +The Poweradmin website can be found at . -3.2 DB Information ------------------------------- - -For now on PowerAdmin supports PowerDNS' MySQL back-end only. If there is demand for other -database layers support will be added in the near future. Of course, since the code is opensource, -everyone who cannot wait is encouraged to plug in their own database layer (and if you dare, send the -code to us so we can evaluate it and maybe integrate it with the current PowerAdmin). -We are still busy with PostGreSQL, but the experience needs a bit more tweaking for us. -Time will release it, we cannot yet. +Requirements +----------------------------------------------------------------------- -By using PEAR::DB we are bound to have some way to keep track of indexes. This is done by using seperate -tables called users_seq and zones_seq. Also records_seq will be there. This means that if you manually -insert a record, chances are 90% that you will have corrupted workings of PowerAdmin (because the ID is -not in order.) The problem can be solved by running the Synchronize Database tool (select it or use the -seq_update.php url). This will let you resynch your indexes. It is also useful if you are migrating -from 1.0 to 1.1 or higher. - -Read more about this in README-Sequence - +- PowerDNS, versions 2.1 through 2.9.19 have been tested, others might + work as well. See . -4. Documentation ------------------------------- - -PowerAdmin has the following core features: - -- User Level dependant editing of domains. For example an administrator - can edit all domains, while a user can for example only edit the domain(s) - owned by him/her. +- MySQL or PostgreSQL. Both MySQL versions 4 and 5 have been reported + to work, 5.0.22 has been tested. + +- A webserver that support PHP 4 or 5. Apache 2.0.55 has been tested. -- Simple administration of users that can access PowerAdmin. - -- Easy creating of domains. Next of that, the proper assignment of rights - is simply and done within a few clicks. +- PHP. At least version 4.2.1. Version 5.1.2 has been tested. It needs + the mysql or pgsql extension, as well has PEAR. -- Ability to apply a record-template when creating domains. For now, the template - can only be configured in the config file, but this will be moved to a nice - database-table soon. - -- Editting records in existing zones. +- PEAR::MDB2 (2.4.0 has been tested) and PEAR::MDB2_Driver_mysql + (1.4.0 has been tested) or PEAR::MDB2_Driver_pgsql. -5. Installation ------------------------------- +Installing +----------------------------------------------------------------------- -!! If you are updating, you should necessarily read paragraph 3 !! +Upgrading? See section "Upgrading". + +- Install PowerDNS with a mysql or pgsql backend. -What you need: -- PowerDNS (Duh!) (Versions 2.1 through 2.6 have been tested, others might work aswell) - http://www.powerdns.com/ -- MySQL - http://www.mysql.com/ -- An (Apache) webserver that supports php4 and php4-mysql. The PHP version must be at least 4.2.1. - http://www.apache.org/ - http://www.php.net/ +- Install MDB2 and MDB2_Driver_mysql (or pgsql equivalent) packages of + PEAR. You can install PEAR on a Debian-based server by installing + the package php-pear. Make sure php-cli can access the mysql module + (uncomment the line "extension=mysql.so" in /etc/php5/cli/php.ini). + The addional PEAR packages can be installed using the "pear install" + command (e.g. "pear install MDB2 ; pear install MDB2_Driver_mysql"). -First of all, install PowerDNS with it's MySQL Generic back-end. - -Next to the MySQL user you created for PowerDNS, you need a MySQL user for PowerAdmin that can do -the following actions on the PowerDNS database you created: SELECT, INSERT, DELETE, UPDATE, CREATE. +- Add a SQL user for poweradmin that is granted SELECT, INSERT, + DELETE, UPDATE and CREATE actions. -Untar/gzip poweradmin-VERSION.tar.gz in your webdir. This will create a directory called -poweradmin-VERSION. +- Untar and gunzip the poweradmin package in your web dir. This will + create a directory "poweradmin-VERSION", we will refer to this + directory as "poweradmin/". -In the 'inc' subdirectory of your newly created directory, you'll find a file called -config-block.inc.php. Edit this file to suit your environment. Then rename it to -config.inc.php to be able to load the site. The website will not work properly without a config, -so pay attention to your configuration! +- In the 'poweradmin/inc" directory the file "config-me.inc.php". + Edit this file to suit your environment. Then rename this file to + config.inc.php to be able to load the site. The website will not + work properly without a config, so pay attention to your config! -Next, go to http://www.yourdomain.com/poweradmin-VERSION/install.php +- Next, go to -Fill in the required information to make an administrator login for your -PowerAdmin. If all goes well, the user is made, and you can log in using that username. -WARNING! Be sure to remove install.php from the webdir! +- Fill in the required information to make an administrator login for + your PowerAdmin. If all goes well, the user is added, and you can + log in using that username. Do not forget to remove install.php from + the webdir! -After you are done, run http://www.yourdomain.com/poweradmin-VERSION/test_setup.php to see if -everything is set up well. -This test also includes the functionality testing of your PowerDNS records (whether you -have read/write access or not) +- Finaly, run to see if + everything is setup correctly. This test also includes the + functionality testing of your PowerDNS records (whether you + have read/write access or not). -6. User levels explained ------------------------------- -User levels explained: - -[x] = yes -[ ] = no +Upgrading from 1.2.7-patched +----------------------------------------------------------------------- -User Permission to Permission to Permission to Permission to -Level change own change other create domains add/modify - domain(s) domain(s) users - - 1 [x] [ ] [ ] [ ] - 5 [x] [x] [x] [ ] - 10 [x] [x] [x] [x] - - -7. Further Info && Bugs ------------------------------- - -The latest contact information can always be found at http://www.poweradmin.org . +If you are upgrading from 1.2.7-patched, there is not much you need to +do. The only thing that is needed is install PEAR packages MDB2 and +MDB2_Driver_mysql (or MDB2_Driver_pgsql). This can be done by running +the commands "pear install MDB2 ; pear install MDB2_Driver_mysql". +Make sure php-cli can access the mysql extension by uncommenting the +line "extension=mysql.so" in /etc/php5/cli/php.ini -8. Links and more information ------------------------------- +User levels explained +----------------------------------------------------------------------- -http://www.poweradmin.org Our main site -http://www.powerdns.com PowerDNS -http://www.ietf.org Information about DNS -http://poweradmin.sf.net PowerAdmin @ SourceForge -http://www.apache.org/ The Apache Webserver -http://www.php.net/ PHP programming language -http://www.mysql.com/ MySQL database server +[x] = yes [ ] = no -9. Changes ------------------------------- +User Permission to Permission to Permission to Permission to +Level change own change other create domains add/modify + domain(s) domain(s) users -Changes for this version are: -- Many many many bug fixes! -- Enhanced sequence updater that is now smarter. -- SOA Fields fixed. -- Automatically SOA serial updating after each change in the DNS. -- MASTER/SLAVE Functionality but that stays untested at the moment of writing. - Use the toggles with care, see the config-block.inc.php for more information. -- Search abilities added thanks to DeViCeD -- A lot of other stuff and minor details not worth mentioning that much. + 1 [x] [ ] [ ] [ ] + 5 [x] [x] [x] [ ] + 10 [x] [x] [x] [x] --------------------------------------------------------------------------- -Enjoy! - -There are some major changes, we would like feedback! -See paragraph 7 for contact information. - -Regards, -The PowerAdmin Team diff -r ac0ca51809b1 -r 47dd15d8bb8c docs/README-Sequence --- a/docs/README-Sequence Wed Apr 18 22:48:49 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -1. What is the Sequence Updater -------------------------------- - -The Sequence updater is written to synchronize your PowerAdmin/DNS database -after you have manually inserted records into it. - -2. Why do I need that? -------------------------------- - -Because PowerAdmin uses the php-PEAR::DB library it is using sequence numbers. -A sequence number simply tells the application what will be the next ID -for insertion. Some of the mysql users are now shouting auto_increment. -Yes auto_increment, but we cant use this here because we plan to use -PostGreSQL or Other db's that dont have auto_increment so we are stuck to -using sequence numbers. - -3. What does this mean? -------------------------------- - -This means that if you dont run this tool after you have been manually adding -records, your database might be corrupted and PowerAdmin might be kicking -you back with a lot of errors. - -4. Ok, I got it, now what? -------------------------------- - -Put this file in your PowerAdmin directory. Login into PowerAdmin using the normal -system. Now go to the url where you put it and done, the sequence numbers are -updated. - -5. Future versions -------------------------------- - -In all versions higher than 1.1.2 this function will be automatically there for -administrators. - -6. Contact - -6. Further Info && Bugs ------------------------------- - -To contact us we refer you to http://www.poweradmin.org/ for the latest -contact information. - -7. Links and more information ------------------------------- - -http://www.poweradmin.org l Our main site -http://www.powerdns.com PowerDNS -http://www.ietf.org Information about DNS -http://poweradmin.sf.net PowerAdmin @ SourceForge -http://www.apache.org/ The Apache Webserver -http://www.php.net/ PHP programming language -http://www.mysql.com/ MySQL database server - --------------------------------------------------------------------------- - -Regards, -The PowerAdmin Team - diff -r ac0ca51809b1 -r 47dd15d8bb8c docs/README.redhat-8 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/README.redhat-8 Sun Apr 22 07:20:09 2007 +0000 @@ -0,0 +1,88 @@ +RedHat 8.0 BUG and howto 'fix' + +Ok it seems to be that there is some bug in PowerAdmin (for now we assume so). +It is currently reported all on RedHat 8.0 machines. + +The bug seems to be appear when Apache 2.0 is being used with the default +installed PHP RPM on the platform. New shapshots might remove this bug. We havent +tested this yet. If you have any more insights on this bug please email us +at info@poweradmin.sjeemz.nl + +We kindly refer you to http://bugs.php.net/bug.php?id=18648 +We havent tested this out fully yet! Not even the fix since we arent native +RedHat users. + +Quick dirty fix. We just avoid the bug by not using php :) + +NOTE: THIS IS A MYSQL FIX! + +Ok what to do: + +- Login to mysql using the poweradmin account information. +- Issue the following queries: + + +/**************** + * USER TABLE * + ***************/ + +CREATE TABLE users ( +id int(11) NOT NULL, +username varchar(16) NOT NULL default '', +password varchar(255) NOT NULL default '', +fullname varchar(255) NOT NULL default '', +email varchar(255) NOT NULL default '', +description text NOT NULL, +level tinyint(4) NOT NULL default '0', +active tinyint(4) NOT NULL default '0', +PRIMARY KEY (id) +) TYPE=MyISAM; + +/**************** + * ZONES TABLE * + ***************/ + +CREATE TABLE zones ( +id int(11) NOT NULL, +name varchar(255) NOT NULL default '', +owner int(11) NOT NULL default '0', +comment text NOT NULL, +PRIMARY KEY (id) +) TYPE=MyISAM; + + + +/************************ + * INSTALL YOURSELF * + ***********************/ + +- $login == your prefered login +- $full == your fullname +- $pass == your prefered password +- $email == your prefered email +- $desc == your prefered description + +INSERT INTO users VALUES (1,'$login',md5('$pass'),'$full','$email','$description',10,1) + +Example +INSERT INTO users VALUES (1,'trance',md5('test'),'me','trancer@nospam.trancer.nl','its me!',10,1); + +- Ok, now we have a problem. PowerAdmin uses PEAR. And to remain independent PEAR has +its own incrementation functions. For this there is a seperate table. We didnt use pear yet, therefore +the current setup is inconsistent with what pear is thinking (you are one id behind). +We now have to setup a users_seq table for this. + + +CREATE TABLE users_seq ( + id int(10) unsigned NOT NULL auto_increment, + PRIMARY KEY (id) +) TYPE=MyISAM; + +INSERT INTO users_seq VALUES (1); + + +Done! It should now work. If you encounter any problems feel free to email us, also monitor the website +bugfixes might come available. + +Roeland, PowerAdmin Team + diff -r ac0ca51809b1 -r 47dd15d8bb8c docs/README.sequence --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/README.sequence Sun Apr 22 07:20:09 2007 +0000 @@ -0,0 +1,88 @@ +README.sequence - Additional documentation on manual inserts (using +poweradmin along with other interfaces to the powerdns database). + + +Removal of "sequence updater" +----------------------------------------------------------------------- + +Up to poweradmin version 1.2.7-patched, the code included the so +called "sequence updater". It was written to synchronize poweradmin +with the database after manual inserts of zones and records. This +happens if you insert new zones or records by hand, or have other +interfaces than poweradmin talking to the database as well. + +The 1.2.7-patched version of poweradmin was using the PEAR::DB module, +using it's nextID() function. It tells the application what will be +the next ID for insertion. However, mysql has "auto_increment" and +pgsql has "serial". Both allow to do insert with ID's created on the +run, without the need of seperate sequence numbers. + +In order to get rid of the incidental errors and the need to hit the +"synchronize database" from time to time, the "sequence updater" has +been removed and the code has been updated to use the "auto_increment" +and "serial" functionality. As long as you do manual inserts the +correct way, this will not cause any problems. + + +Insert new records and zones the correct way (using other tools) +----------------------------------------------------------------------- + +According to the documentation of powerdns (2.9.20), the id column of +the tables domains and records in a mysql setup are created using the +"auto_increment" option and in a pgsql setup using the "serial" +option. [1] + +This will allow for auto increments of the id field, as long as no one +does a manual insert, specifying the id. So, let's say we have created +a table, one in mysql, one in pgsql: + + CREATE TABLE xmpl_tbl (id INT auto_increment, text TEXT); + CREATE TABLE xmpl_tbl (id SERIAL PRIMARY KEY, text TEXT); + +This insert will work in pgsql only: + + INSERT INTO xmpl_tbl VALUES (DEFAULT,'First insert test"); + +These inserts will work in mysql only: + + INSERT INTO xmpl_tbl VALUES (NULL,'Third insert test"); + INSERT INTO xmpl_tbl VALUES ('','Fourth insert test"); + +This will work in both mysql and pgsql (as long as id didn't exist +already), but it will break "auto increment" feature in pgsql [2] (can +be fixed using setval() functionality in pgsql): + + INSERT INTO xmpl_tbl VALUES (42,'Fifth insert test"); + +This will work in both mysql and pgsql: + + INSERT INTO xmpl_tbl (text) VALUES ('Second insert test"); + +So, in other words: if you want to insert records and zones into the +powerdns database using other tools and interfaces than poweradmin, +you should make sure you are using the correct syntax. + + +Limitations +----------------------------------------------------------------------- + +Removing the "sequence updater" removes the possibilty to use the +poweradmin code against other databases than mysql and pgsql (or at +least, it is untested). + + +More information +----------------------------------------------------------------------- + +More information can be found here: + + - PowerDNS manual, section backends in detail + + + - Postgresql documentation, section Operational Questions + + + - pgsql-bugs mailinglist archive + + + diff -r ac0ca51809b1 -r 47dd15d8bb8c docs/REDHAT-README --- a/docs/REDHAT-README Wed Apr 18 22:48:49 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,88 +0,0 @@ -RedHat 8.0 BUG and howto 'fix' - -Ok it seems to be that there is some bug in PowerAdmin (for now we assume so). -It is currently reported all on RedHat 8.0 machines. - -The bug seems to be appear when Apache 2.0 is being used with the default -installed PHP RPM on the platform. New shapshots might remove this bug. We havent -tested this yet. If you have any more insights on this bug please email us -at info@poweradmin.sjeemz.nl - -We kindly refer you to http://bugs.php.net/bug.php?id=18648 -We havent tested this out fully yet! Not even the fix since we arent native -RedHat users. - -Quick dirty fix. We just avoid the bug by not using php :) - -NOTE: THIS IS A MYSQL FIX! - -Ok what to do: - -- Login to mysql using the poweradmin account information. -- Issue the following queries: - - -/**************** - * USER TABLE * - ***************/ - -CREATE TABLE users ( -id int(11) NOT NULL, -username varchar(16) NOT NULL default '', -password varchar(255) NOT NULL default '', -fullname varchar(255) NOT NULL default '', -email varchar(255) NOT NULL default '', -description text NOT NULL, -level tinyint(4) NOT NULL default '0', -active tinyint(4) NOT NULL default '0', -PRIMARY KEY (id) -) TYPE=MyISAM; - -/**************** - * ZONES TABLE * - ***************/ - -CREATE TABLE zones ( -id int(11) NOT NULL, -name varchar(255) NOT NULL default '', -owner int(11) NOT NULL default '0', -comment text NOT NULL, -PRIMARY KEY (id) -) TYPE=MyISAM; - - - -/************************ - * INSTALL YOURSELF * - ***********************/ - -- $login == your prefered login -- $full == your fullname -- $pass == your prefered password -- $email == your prefered email -- $desc == your prefered description - -INSERT INTO users VALUES (1,'$login',md5('$pass'),'$full','$email','$description',10,1) - -Example -INSERT INTO users VALUES (1,'trance',md5('test'),'me','trancer@nospam.trancer.nl','its me!',10,1); - -- Ok, now we have a problem. PowerAdmin uses PEAR. And to remain independent PEAR has -its own incrementation functions. For this there is a seperate table. We didnt use pear yet, therefore -the current setup is inconsistent with what pear is thinking (you are one id behind). -We now have to setup a users_seq table for this. - - -CREATE TABLE users_seq ( - id int(10) unsigned NOT NULL auto_increment, - PRIMARY KEY (id) -) TYPE=MyISAM; - -INSERT INTO users_seq VALUES (1); - - -Done! It should now work. If you encounter any problems feel free to email us, also monitor the website -bugfixes might come available. - -Roeland, PowerAdmin Team - diff -r ac0ca51809b1 -r 47dd15d8bb8c docs/template.pot --- a/docs/template.pot Wed Apr 18 22:48:49 2007 +0000 +++ b/docs/template.pot Sun Apr 22 07:20:09 2007 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-04-18 22:44+0200\n" +"POT-Creation-Date: 2007-04-21 19:20+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -20,7 +20,7 @@ msgid "Add record to zone" msgstr "" -#: add_record.php:32 edit.php:160 edit_record.php:61 index.php:106 +#: add_record.php:32 edit.php:160 edit_record.php:61 index.php:73 #: search.php:40 users.php:49 msgid "DNS Admin" msgstr "" @@ -29,8 +29,8 @@ msgid "Add record" msgstr "" -#: add_record.php:37 edit.php:186 edit_record.php:67 index.php:152 -#: search.php:78 search.php:121 users.php:78 +#: add_record.php:37 edit.php:186 edit_record.php:67 index.php:119 +#: search.php:78 search.php:121 users.php:72 msgid "Name" msgstr "" @@ -50,11 +50,11 @@ msgid "TTL" msgstr "" -#: delete_domain.php:38 users.php:93 +#: delete_domain.php:38 users.php:87 msgid "Delete domain" msgstr "" -#: delete_domain.php:39 index.php:152 index.php:207 search.php:80 +#: delete_domain.php:39 index.php:119 index.php:174 search.php:80 msgid "Owner" msgstr "" @@ -78,7 +78,7 @@ msgid "Delete record" msgstr "" -#: delete_user.php:54 users.php:85 +#: delete_user.php:54 users.php:79 msgid "Delete user" msgstr "" @@ -154,7 +154,7 @@ msgid "Assign to user" msgstr "" -#: edit.php:276 index.php:176 search.php:91 +#: edit.php:276 index.php:143 search.php:91 msgid "Delete zone" msgstr "" @@ -182,134 +182,192 @@ msgid "Edit user" msgstr "" -#: edit_user.php:59 index.php:112 search.php:44 users.php:47 +#: edit_user.php:59 index.php:79 search.php:44 users.php:47 msgid "User admin" msgstr "" -#: edit_user.php:69 users.php:105 +#: edit_user.php:69 users.php:99 msgid "User name" msgstr "" -#: edit_user.php:70 users.php:106 +#: edit_user.php:70 install.php:204 users.php:100 msgid "Full name" msgstr "" -#: edit_user.php:71 users.php:107 inc/auth.inc.php:97 +#: edit_user.php:71 install.php:203 users.php:101 inc/auth.inc.php:97 msgid "Password" msgstr "" -#: edit_user.php:72 users.php:108 +#: edit_user.php:72 users.php:102 msgid "E-mail" msgstr "" -#: edit_user.php:73 users.php:109 +#: edit_user.php:73 users.php:103 msgid "User level" msgstr "" -#: edit_user.php:73 inc/config.inc.php:84 +#: edit_user.php:73 inc/config-me.inc.php:84 msgid "Normal user" msgstr "" -#: edit_user.php:73 inc/config.inc.php:85 +#: edit_user.php:73 inc/config-me.inc.php:85 msgid "Administrator" msgstr "" -#: edit_user.php:73 inc/config.inc.php:86 +#: edit_user.php:73 inc/config-me.inc.php:86 msgid "Administrator w/ user admin rights" msgstr "" -#: edit_user.php:74 users.php:110 +#: edit_user.php:74 install.php:206 users.php:104 msgid "Description" msgstr "" -#: edit_user.php:75 users.php:111 inc/toolkit.inc.php:270 +#: edit_user.php:75 users.php:105 inc/toolkit.inc.php:270 msgid "Active" msgstr "" -#: index.php:112 search.php:44 users.php:53 -msgid "Synchronize database" -msgstr "" - -#: index.php:115 users.php:55 +#: index.php:82 users.php:49 msgid "Search records" msgstr "" -#: index.php:119 +#: index.php:86 msgid "Welcome" msgstr "" -#: index.php:122 +#: index.php:89 msgid "Your userlevel is" msgstr "" -#: index.php:128 users.php:65 +#: index.php:95 users.php:59 msgid "Error" msgstr "" -#: index.php:132 +#: index.php:99 msgid "Current domains in DNS (click to view or edit)" msgstr "" -#: index.php:138 +#: index.php:105 msgid "Number of domains" msgstr "" -#: index.php:152 search.php:79 +#: index.php:119 search.php:79 msgid "Records" msgstr "" -#: index.php:164 +#: index.php:131 msgid "No domains in this listing, sorry." msgstr "" -#: index.php:191 +#: index.php:158 msgid "You only administer some records of domains marked with an (*)." msgstr "" -#: index.php:202 +#: index.php:169 msgid "Create new domain" msgstr "" -#: index.php:204 +#: index.php:171 msgid "Domain name" msgstr "" -#: index.php:205 +#: index.php:172 msgid "Web IP" msgstr "" -#: index.php:206 +#: index.php:173 msgid "Mail IP" msgstr "" -#: index.php:221 +#: index.php:188 msgid "Domain type" msgstr "" -#: index.php:232 +#: index.php:199 msgid "Create zone without" msgstr "" -#: index.php:232 +#: index.php:199 msgid "applying records-template" msgstr "" -#: index.php:233 +#: index.php:200 msgid "Add domain" msgstr "" -#: index.php:242 index.php:247 +#: index.php:209 index.php:214 msgid "Change password" msgstr "" -#: index.php:244 +#: index.php:211 msgid "Current password" msgstr "" -#: index.php:245 index.php:246 +#: index.php:212 index.php:213 msgid "New password" msgstr "" +#: install.php:63 inc/database.inc.php:31 inc/toolkit.inc.php:149 +msgid "Oops! An error occured!" +msgstr "" + +#: install.php:171 +msgid "PowerAdmin has succesfully been installed." +msgstr "" + +#: install.php:173 +msgid "Remove this file (install.php) from your webdir." +msgstr "" + +#: install.php:174 +msgid "WARNING" +msgstr "" + +#: install.php:174 +msgid "PowerAdmin will not work until you delete install.php" +msgstr "" + +#: install.php:176 +msgid "You can click" +msgstr "" + +#: install.php:176 +msgid "to start using PowerAdmin" +msgstr "" + +#: install.php:185 +msgid "You didnt fill in one of the required fields!" +msgstr "" + +#: install.php:193 inc/auth.inc.php:86 +msgid "PowerAdmin for PowerDNS" +msgstr "" + +#: install.php:195 +msgid "" +"This config file will setup your database to be ready for PowerAdmin. Please fill in the next fields which will create an\n" +"administrator login." +msgstr "" + +#: install.php:197 +msgid "Fields marked with a" +msgstr "" + +#: install.php:197 +msgid "are required." +msgstr "" + +#: install.php:202 +msgid "Login Name" +msgstr "" + +#: install.php:205 +msgid "Email" +msgstr "" + +#: install.php:207 +msgid "Make Account" +msgstr "" + #: search.php:38 msgid "Search zones or records" msgstr "" @@ -338,14 +396,6 @@ msgid "Nothing found for query" msgstr "" -#: seq_update.php:26 -msgid "Synching databases. This is useful if you did manual insertions (in case you havent been here yet)." -msgstr "" - -#: seq_update.php:53 -msgid "All tables are successfully synchronized." -msgstr "" - #: test_setup.php:58 msgid "Not all tables are ok!" msgstr "" @@ -374,35 +424,35 @@ msgid "Please fill in all fields" msgstr "" -#: users.php:68 +#: users.php:62 msgid "Current users (click to edit)" msgstr "" +#: users.php:66 +msgid "Number of users" +msgstr "" + #: users.php:72 -msgid "Number of users" -msgstr "" - -#: users.php:78 msgid "Domains" msgstr "" -#: users.php:78 +#: users.php:72 msgid "Domain list" msgstr "" -#: users.php:78 +#: users.php:72 msgid "Level" msgstr "" -#: users.php:78 +#: users.php:72 msgid "Status" msgstr "" -#: users.php:103 +#: users.php:97 msgid "Create new user" msgstr "" -#: users.php:112 +#: users.php:106 msgid "Add user" msgstr "" @@ -415,10 +465,6 @@ msgstr "" #: inc/auth.inc.php:86 -msgid "PowerAdmin for PowerDNS" -msgstr "" - -#: inc/auth.inc.php:86 msgid "Please login" msgstr "" @@ -430,10 +476,6 @@ msgid "You have logged out." msgstr "" -#: inc/database.inc.php:31 inc/toolkit.inc.php:149 -msgid "Oops! An error occured!" -msgstr "" - #: inc/database.inc.php:33 inc/toolkit.inc.php:151 inc/toolkit.inc.php:187 msgid "back" msgstr "" diff -r ac0ca51809b1 -r 47dd15d8bb8c inc/config-me.inc.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inc/config-me.inc.php Sun Apr 22 07:20:09 2007 +0000 @@ -0,0 +1,178 @@ + "##DOMAIN##", + "type" => "SOA", + "content" => "$NS1 $HOSTMASTER 1", + "ttl" => "$DEFAULT_TTL", + "prio" => "" + ), + array( + "name" => "##DOMAIN##", + "type" => "NS", + "content" => "$NS1", + "ttl" => "$DEFAULT_TTL", + "prio" => "" + ), + array( + "name" => "##DOMAIN##", + "type" => "NS", + "content" => "$NS2", + "ttl" => "$DEFAULT_TTL", + "prio" => "" + ), + array( + "name" => "www.##DOMAIN##", + "type" => "A", + "content" => "##WEBIP##", + "ttl" => "$DEFAULT_TTL", + "prio" => "" + ), + array( + "name" => "##DOMAIN##", + "type" => "A", + "content" => "##WEBIP##", + "ttl" => "$DEFAULT_TTL", + "prio" => "" + ), + array( + "name" => "mail.##DOMAIN##", + "type" => "A", + "content" => "##MAILIP##", + "ttl" => "$DEFAULT_TTL", + "prio" => "" + ), + array( + "name" => "localhost.##DOMAIN##", + "type" => "A", + "content" => "127.0.0.1", + "ttl" => "$DEFAULT_TTL", + "prio" => "" + ), + array( + "name" => "##DOMAIN##", + "type" => "MX", + "content" => "mail.##DOMAIN##", + "ttl" => "$DEFAULT_TTL", + "prio" => "10" + ) +); +?> diff -r ac0ca51809b1 -r 47dd15d8bb8c inc/config.inc.php --- a/inc/config.inc.php Wed Apr 18 22:48:49 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,178 +0,0 @@ - "##DOMAIN##", - "type" => "SOA", - "content" => "$NS1 $HOSTMASTER 1", - "ttl" => "$DEFAULT_TTL", - "prio" => "" - ), - array( - "name" => "##DOMAIN##", - "type" => "NS", - "content" => "$NS1", - "ttl" => "$DEFAULT_TTL", - "prio" => "" - ), - array( - "name" => "##DOMAIN##", - "type" => "NS", - "content" => "$NS2", - "ttl" => "$DEFAULT_TTL", - "prio" => "" - ), - array( - "name" => "www.##DOMAIN##", - "type" => "A", - "content" => "##WEBIP##", - "ttl" => "$DEFAULT_TTL", - "prio" => "" - ), - array( - "name" => "##DOMAIN##", - "type" => "A", - "content" => "##WEBIP##", - "ttl" => "$DEFAULT_TTL", - "prio" => "" - ), - array( - "name" => "mail.##DOMAIN##", - "type" => "A", - "content" => "##MAILIP##", - "ttl" => "$DEFAULT_TTL", - "prio" => "" - ), - array( - "name" => "localhost.##DOMAIN##", - "type" => "A", - "content" => "127.0.0.1", - "ttl" => "$DEFAULT_TTL", - "prio" => "" - ), - array( - "name" => "##DOMAIN##", - "type" => "MX", - "content" => "mail.##DOMAIN##", - "ttl" => "$DEFAULT_TTL", - "prio" => "10" - ) -); -?> diff -r ac0ca51809b1 -r 47dd15d8bb8c inc/dal.inc.php --- a/inc/dal.inc.php Wed Apr 18 22:48:49 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1388 +0,0 @@ - - * @author Tomas V.V.Cox - * @author Daniel Convissor - * @copyright 1997-2005 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: DB.php,v 1.80 2005/02/16 02:16:00 danielc Exp $ - * @link http://pear.php.net/package/DB - */ - -/** - * Obtain the PEAR class so it can be extended from - */ -require_once 'PEAR.php'; - - -// {{{ constants -// {{{ error codes - -/**#@+ - * One of PEAR DB's portable error codes. - * @see DB_common::errorCode(), DB::errorMessage() - * - * {@internal If you add an error code here, make sure you also add a textual - * version of it in DB::errorMessage().}} - */ - -/** - * The code returned by many methods upon success - */ -define('DB_OK', 1); - -/** - * Unkown error - */ -define('DB_ERROR', -1); - -/** - * Syntax error - */ -define('DB_ERROR_SYNTAX', -2); - -/** - * Tried to insert a duplicate value into a primary or unique index - */ -define('DB_ERROR_CONSTRAINT', -3); - -/** - * An identifier in the query refers to a non-existant object - */ -define('DB_ERROR_NOT_FOUND', -4); - -/** - * Tried to create a duplicate object - */ -define('DB_ERROR_ALREADY_EXISTS', -5); - -/** - * The current driver does not support the action you attempted - */ -define('DB_ERROR_UNSUPPORTED', -6); - -/** - * The number of parameters does not match the number of placeholders - */ -define('DB_ERROR_MISMATCH', -7); - -/** - * A literal submitted did not match the data type expected - */ -define('DB_ERROR_INVALID', -8); - -/** - * The current DBMS does not support the action you attempted - */ -define('DB_ERROR_NOT_CAPABLE', -9); - -/** - * A literal submitted was too long so the end of it was removed - */ -define('DB_ERROR_TRUNCATED', -10); - -/** - * A literal number submitted did not match the data type expected - */ -define('DB_ERROR_INVALID_NUMBER', -11); - -/** - * A literal date submitted did not match the data type expected - */ -define('DB_ERROR_INVALID_DATE', -12); - -/** - * Attempt to divide something by zero - */ -define('DB_ERROR_DIVZERO', -13); - -/** - * A database needs to be selected - */ -define('DB_ERROR_NODBSELECTED', -14); - -/** - * Could not create the object requested - */ -define('DB_ERROR_CANNOT_CREATE', -15); - -/** - * Could not drop the database requested because it does not exist - */ -define('DB_ERROR_CANNOT_DROP', -17); - -/** - * An identifier in the query refers to a non-existant table - */ -define('DB_ERROR_NOSUCHTABLE', -18); - -/** - * An identifier in the query refers to a non-existant column - */ -define('DB_ERROR_NOSUCHFIELD', -19); - -/** - * The data submitted to the method was inappropriate - */ -define('DB_ERROR_NEED_MORE_DATA', -20); - -/** - * The attempt to lock the table failed - */ -define('DB_ERROR_NOT_LOCKED', -21); - -/** - * The number of columns doesn't match the number of values - */ -define('DB_ERROR_VALUE_COUNT_ON_ROW', -22); - -/** - * The DSN submitted has problems - */ -define('DB_ERROR_INVALID_DSN', -23); - -/** - * Could not connect to the database - */ -define('DB_ERROR_CONNECT_FAILED', -24); - -/** - * The PHP extension needed for this DBMS could not be found - */ -define('DB_ERROR_EXTENSION_NOT_FOUND',-25); - -/** - * The present user has inadequate permissions to perform the task requestd - */ -define('DB_ERROR_ACCESS_VIOLATION', -26); - -/** - * The database requested does not exist - */ -define('DB_ERROR_NOSUCHDB', -27); - -/** - * Tried to insert a null value into a column that doesn't allow nulls - */ -define('DB_ERROR_CONSTRAINT_NOT_NULL',-29); -/**#@-*/ - - -// }}} -// {{{ prepared statement-related - - -/**#@+ - * Identifiers for the placeholders used in prepared statements. - * @see DB_common::prepare() - */ - -/** - * Indicates a scalar (?) placeholder was used - * - * Quote and escape the value as necessary. - */ -define('DB_PARAM_SCALAR', 1); - -/** - * Indicates an opaque (&) placeholder was used - * - * The value presented is a file name. Extract the contents of that file - * and place them in this column. - */ -define('DB_PARAM_OPAQUE', 2); - -/** - * Indicates a misc (!) placeholder was used - * - * The value should not be quoted or escaped. - */ -define('DB_PARAM_MISC', 3); -/**#@-*/ - - -// }}} -// {{{ binary data-related - - -/**#@+ - * The different ways of returning binary data from queries. - */ - -/** - * Sends the fetched data straight through to output - */ -define('DB_BINMODE_PASSTHRU', 1); - -/** - * Lets you return data as usual - */ -define('DB_BINMODE_RETURN', 2); - -/** - * Converts the data to hex format before returning it - * - * For example the string "123" would become "313233". - */ -define('DB_BINMODE_CONVERT', 3); -/**#@-*/ - - -// }}} -// {{{ fetch modes - - -/**#@+ - * Fetch Modes. - * @see DB_common::setFetchMode() - */ - -/** - * Indicates the current default fetch mode should be used - * @see DB_common::$fetchmode - */ -define('DB_FETCHMODE_DEFAULT', 0); - -/** - * Column data indexed by numbers, ordered from 0 and up - */ -define('DB_FETCHMODE_ORDERED', 1); - -/** - * Column data indexed by column names - */ -define('DB_FETCHMODE_ASSOC', 2); - -/** - * Column data as object properties - */ -define('DB_FETCHMODE_OBJECT', 3); - -/** - * For multi-dimensional results, make the column name the first level - * of the array and put the row number in the second level of the array - * - * This is flipped from the normal behavior, which puts the row numbers - * in the first level of the array and the column names in the second level. - */ -define('DB_FETCHMODE_FLIPPED', 4); -/**#@-*/ - -/**#@+ - * Old fetch modes. Left here for compatibility. - */ -define('DB_GETMODE_ORDERED', DB_FETCHMODE_ORDERED); -define('DB_GETMODE_ASSOC', DB_FETCHMODE_ASSOC); -define('DB_GETMODE_FLIPPED', DB_FETCHMODE_FLIPPED); -/**#@-*/ - - -// }}} -// {{{ tableInfo() && autoPrepare()-related - - -/**#@+ - * The type of information to return from the tableInfo() method. - * - * Bitwised constants, so they can be combined using | - * and removed using ^. - * - * @see DB_common::tableInfo() - * - * {@internal Since the TABLEINFO constants are bitwised, if more of them are - * added in the future, make sure to adjust DB_TABLEINFO_FULL accordingly.}} - */ -define('DB_TABLEINFO_ORDER', 1); -define('DB_TABLEINFO_ORDERTABLE', 2); -define('DB_TABLEINFO_FULL', 3); -/**#@-*/ - - -/**#@+ - * The type of query to create with the automatic query building methods. - * @see DB_common::autoPrepare(), DB_common::autoExecute() - */ -define('DB_AUTOQUERY_INSERT', 1); -define('DB_AUTOQUERY_UPDATE', 2); -/**#@-*/ - - -// }}} -// {{{ portability modes - - -/**#@+ - * Portability Modes. - * - * Bitwised constants, so they can be combined using | - * and removed using ^. - * - * @see DB_common::setOption() - * - * {@internal Since the PORTABILITY constants are bitwised, if more of them are - * added in the future, make sure to adjust DB_PORTABILITY_ALL accordingly.}} - */ - -/** - * Turn off all portability features - */ -define('DB_PORTABILITY_NONE', 0); - -/** - * Convert names of tables and fields to lower case - * when using the get*(), fetch*() and tableInfo() methods - */ -define('DB_PORTABILITY_LOWERCASE', 1); - -/** - * Right trim the data output by get*() and fetch*() - */ -define('DB_PORTABILITY_RTRIM', 2); - -/** - * Force reporting the number of rows deleted - */ -define('DB_PORTABILITY_DELETE_COUNT', 4); - -/** - * Enable hack that makes numRows() work in Oracle - */ -define('DB_PORTABILITY_NUMROWS', 8); - -/** - * Makes certain error messages in certain drivers compatible - * with those from other DBMS's - * - * + mysql, mysqli: change unique/primary key constraints - * DB_ERROR_ALREADY_EXISTS -> DB_ERROR_CONSTRAINT - * - * + odbc(access): MS's ODBC driver reports 'no such field' as code - * 07001, which means 'too few parameters.' When this option is on - * that code gets mapped to DB_ERROR_NOSUCHFIELD. - */ -define('DB_PORTABILITY_ERRORS', 16); - -/** - * Convert null values to empty strings in data output by - * get*() and fetch*() - */ -define('DB_PORTABILITY_NULL_TO_EMPTY', 32); - -/** - * Turn on all portability features - */ -define('DB_PORTABILITY_ALL', 63); -/**#@-*/ - -// }}} - - -// }}} -// {{{ class DB - -/** - * Database independent query interface - * - * The main "DB" class is simply a container class with some static - * methods for creating DB objects as well as some utility functions - * common to all parts of DB. - * - * The object model of DB is as follows (indentation means inheritance): - *
- * DB           The main DB class.  This is simply a utility class
- *              with some "static" methods for creating DB objects as
- *              well as common utility functions for other DB classes.
- *
- * DB_common    The base for each DB implementation.  Provides default
- * |            implementations (in OO lingo virtual methods) for
- * |            the actual DB implementations as well as a bunch of
- * |            query utility functions.
- * |
- * +-DB_mysql   The DB implementation for MySQL.  Inherits DB_common.
- *              When calling DB::factory or DB::connect for MySQL
- *              connections, the object returned is an instance of this
- *              class.
- * 
- * - * @category Database - * @package DB - * @author Stig Bakken - * @author Tomas V.V.Cox - * @author Daniel Convissor - * @copyright 1997-2005 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: @package_version@ - * @link http://pear.php.net/package/DB - */ -class DB -{ - // {{{ &factory() - - /** - * Create a new DB object for the specified database type but don't - * connect to the database - * - * @param string $type the database type (eg "mysql") - * @param array $options an associative array of option names and values - * - * @return object a new DB object. A DB_Error object on failure. - * - * @see DB_common::setOption() - */ - function &factory($type, $options = false) - { - if (!is_array($options)) { - $options = array('persistent' => $options); - } - - if (isset($options['debug']) && $options['debug'] >= 2) { - // expose php errors with sufficient debug level - include_once "DB/{$type}.php"; - } else { - @include_once "DB/{$type}.php"; - } - - $classname = "DB_${type}"; - - if (!class_exists($classname)) { - $tmp = PEAR::raiseError(null, DB_ERROR_NOT_FOUND, null, null, - "Unable to include the DB/{$type}.php" - . " file for '$dsn'", - 'DB_Error', true); - return $tmp; - } - - @$obj =& new $classname; - - foreach ($options as $option => $value) { - $test = $obj->setOption($option, $value); - if (DB::isError($test)) { - return $test; - } - } - - return $obj; - } - - // }}} - // {{{ &connect() - - /** - * Create a new DB object including a connection to the specified database - * - * Example 1. - * - * require_once 'DB.php'; - * - * $dsn = 'pgsql://user:password@host/database'; - * $options = array( - * 'debug' => 2, - * 'portability' => DB_PORTABILITY_ALL, - * ); - * - * $db =& DB::connect($dsn, $options); - * if (PEAR::isError($db)) { - * die($db->getMessage()); - * } - * - * - * @param mixed $dsn the string "data source name" or array in the - * format returned by DB::parseDSN() - * @param array $options an associative array of option names and values - * - * @return object a new DB object. A DB_Error object on failure. - * - * @uses DB_dbase::connect(), DB_fbsql::connect(), DB_ibase::connect(), - * DB_ifx::connect(), DB_msql::connect(), DB_mssql::connect(), - * DB_mysql::connect(), DB_mysqli::connect(), DB_oci8::connect(), - * DB_odbc::connect(), DB_pgsql::connect(), DB_sqlite::connect(), - * DB_sybase::connect() - * - * @uses DB::parseDSN(), DB_common::setOption(), PEAR::isError() - */ - function &connect($dsn, $options = array()) - { - $dsninfo = DB::parseDSN($dsn); - $type = $dsninfo['phptype']; - - if (!is_array($options)) { - /* - * For backwards compatibility. $options used to be boolean, - * indicating whether the connection should be persistent. - */ - $options = array('persistent' => $options); - } - - if (isset($options['debug']) && $options['debug'] >= 2) { - // expose php errors with sufficient debug level - include_once "DB/${type}.php"; - } else { - @include_once "DB/${type}.php"; - } - - $classname = "DB_${type}"; - if (!class_exists($classname)) { - $tmp = PEAR::raiseError(null, DB_ERROR_NOT_FOUND, null, null, - "Unable to include the DB/{$type}.php" - . " file for '$dsn'", - 'DB_Error', true); - return $tmp; - } - - @$obj =& new $classname; - - foreach ($options as $option => $value) { - $test = $obj->setOption($option, $value); - if (DB::isError($test)) { - return $test; - } - } - - $err = $obj->connect($dsninfo, $obj->getOption('persistent')); - if (DB::isError($err)) { - $err->addUserInfo($dsn); - return $err; - } - - return $obj; - } - - // }}} - // {{{ apiVersion() - - /** - * Return the DB API version - * - * @return string the DB API version number - */ - function apiVersion() - { - return '@package_version@'; - } - - // }}} - // {{{ isError() - - /** - * Determines if a variable is a DB_Error object - * - * @param mixed $value the variable to check - * - * @return bool whether $value is DB_Error object - */ - function isError($value) - { - return is_a($value, 'DB_Error'); - } - - // }}} - // {{{ isConnection() - - /** - * Determines if a value is a DB_ object - * - * @param mixed $value the value to test - * - * @return bool whether $value is a DB_ object - */ - function isConnection($value) - { - return (is_object($value) && - is_subclass_of($value, 'db_common') && - method_exists($value, 'simpleQuery')); - } - - // }}} - // {{{ isManip() - - /** - * Tell whether a query is a data manipulation or data definition query - * - * Examples of data manipulation queries are INSERT, UPDATE and DELETE. - * Examples of data definition queries are CREATE, DROP, ALTER, GRANT, - * REVOKE. - * - * @param string $query the query - * - * @return boolean whether $query is a data manipulation query - */ - function isManip($query) - { - $manips = 'INSERT|UPDATE|DELETE|REPLACE|' - . 'CREATE|DROP|' - . 'LOAD DATA|SELECT .* INTO|COPY|' - . 'ALTER|GRANT|REVOKE|' - . 'LOCK|UNLOCK'; - if (preg_match('/^\s*"?(' . $manips . ')\s+/i', $query)) { - return true; - } - return false; - } - - // }}} - // {{{ errorMessage() - - /** - * Return a textual error message for a DB error code - * - * @param integer $value the DB error code - * - * @return string the error message or false if the error code was - * not recognized - */ - function errorMessage($value) - { - static $errorMessages; - if (!isset($errorMessages)) { - $errorMessages = array( - DB_ERROR => 'unknown error', - DB_ERROR_ACCESS_VIOLATION => 'insufficient permissions', - DB_ERROR_ALREADY_EXISTS => 'already exists', - DB_ERROR_CANNOT_CREATE => 'can not create', - DB_ERROR_CANNOT_DROP => 'can not drop', - DB_ERROR_CONNECT_FAILED => 'connect failed', - DB_ERROR_CONSTRAINT => 'constraint violation', - DB_ERROR_CONSTRAINT_NOT_NULL=> 'null value violates not-null constraint', - DB_ERROR_DIVZERO => 'division by zero', - DB_ERROR_EXTENSION_NOT_FOUND=> 'extension not found', - DB_ERROR_INVALID => 'invalid', - DB_ERROR_INVALID_DATE => 'invalid date or time', - DB_ERROR_INVALID_DSN => 'invalid DSN', - DB_ERROR_INVALID_NUMBER => 'invalid number', - DB_ERROR_MISMATCH => 'mismatch', - DB_ERROR_NEED_MORE_DATA => 'insufficient data supplied', - DB_ERROR_NODBSELECTED => 'no database selected', - DB_ERROR_NOSUCHDB => 'no such database', - DB_ERROR_NOSUCHFIELD => 'no such field', - DB_ERROR_NOSUCHTABLE => 'no such table', - DB_ERROR_NOT_CAPABLE => 'DB backend not capable', - DB_ERROR_NOT_FOUND => 'not found', - DB_ERROR_NOT_LOCKED => 'not locked', - DB_ERROR_SYNTAX => 'syntax error', - DB_ERROR_UNSUPPORTED => 'not supported', - DB_ERROR_TRUNCATED => 'truncated', - DB_ERROR_VALUE_COUNT_ON_ROW => 'value count on row', - DB_OK => 'no error', - ); - } - - if (DB::isError($value)) { - $value = $value->getCode(); - } - - return isset($errorMessages[$value]) ? $errorMessages[$value] - : $errorMessages[DB_ERROR]; - } - - // }}} - // {{{ parseDSN() - - /** - * Parse a data source name - * - * Additional keys can be added by appending a URI query string to the - * end of the DSN. - * - * The format of the supplied DSN is in its fullest form: - * - * phptype(dbsyntax)://username:password@protocol+hostspec/database?option=8&another=true - * - * - * Most variations are allowed: - * - * phptype://username:password@protocol+hostspec:110//usr/db_file.db?mode=0644 - * phptype://username:password@hostspec/database_name - * phptype://username:password@hostspec - * phptype://username@hostspec - * phptype://hostspec/database - * phptype://hostspec - * phptype(dbsyntax) - * phptype - * - * - * @param string $dsn Data Source Name to be parsed - * - * @return array an associative array with the following keys: - * + phptype: Database backend used in PHP (mysql, odbc etc.) - * + dbsyntax: Database used with regards to SQL syntax etc. - * + protocol: Communication protocol to use (tcp, unix etc.) - * + hostspec: Host specification (hostname[:port]) - * + database: Database to use on the DBMS server - * + username: User name for login - * + password: Password for login - */ - function parseDSN($dsn) - { - $parsed = array( - 'phptype' => false, - 'dbsyntax' => false, - 'username' => false, - 'password' => false, - 'protocol' => false, - 'hostspec' => false, - 'port' => false, - 'socket' => false, - 'database' => false, - ); - - if (is_array($dsn)) { - $dsn = array_merge($parsed, $dsn); - if (!$dsn['dbsyntax']) { - $dsn['dbsyntax'] = $dsn['phptype']; - } - return $dsn; - } - - // Find phptype and dbsyntax - if (($pos = strpos($dsn, '://')) !== false) { - $str = substr($dsn, 0, $pos); - $dsn = substr($dsn, $pos + 3); - } else { - $str = $dsn; - $dsn = null; - } - - // Get phptype and dbsyntax - // $str => phptype(dbsyntax) - if (preg_match('|^(.+?)\((.*?)\)$|', $str, $arr)) { - $parsed['phptype'] = $arr[1]; - $parsed['dbsyntax'] = !$arr[2] ? $arr[1] : $arr[2]; - } else { - $parsed['phptype'] = $str; - $parsed['dbsyntax'] = $str; - } - - if (!count($dsn)) { - return $parsed; - } - - // Get (if found): username and password - // $dsn => username:password@protocol+hostspec/database - if (($at = strrpos($dsn,'@')) !== false) { - $str = substr($dsn, 0, $at); - $dsn = substr($dsn, $at + 1); - if (($pos = strpos($str, ':')) !== false) { - $parsed['username'] = rawurldecode(substr($str, 0, $pos)); - $parsed['password'] = rawurldecode(substr($str, $pos + 1)); - } else { - $parsed['username'] = rawurldecode($str); - } - } - - // Find protocol and hostspec - - if (preg_match('|^([^(]+)\((.*?)\)/?(.*?)$|', $dsn, $match)) { - // $dsn => proto(proto_opts)/database - $proto = $match[1]; - $proto_opts = $match[2] ? $match[2] : false; - $dsn = $match[3]; - - } else { - // $dsn => protocol+hostspec/database (old format) - if (strpos($dsn, '+') !== false) { - list($proto, $dsn) = explode('+', $dsn, 2); - } - if (strpos($dsn, '/') !== false) { - list($proto_opts, $dsn) = explode('/', $dsn, 2); - } else { - $proto_opts = $dsn; - $dsn = null; - } - } - - // process the different protocol options - $parsed['protocol'] = (!empty($proto)) ? $proto : 'tcp'; - $proto_opts = rawurldecode($proto_opts); - if ($parsed['protocol'] == 'tcp') { - if (strpos($proto_opts, ':') !== false) { - list($parsed['hostspec'], - $parsed['port']) = explode(':', $proto_opts); - } else { - $parsed['hostspec'] = $proto_opts; - } - } elseif ($parsed['protocol'] == 'unix') { - $parsed['socket'] = $proto_opts; - } - - // Get dabase if any - // $dsn => database - if ($dsn) { - if (($pos = strpos($dsn, '?')) === false) { - // /database - $parsed['database'] = rawurldecode($dsn); - } else { - // /database?param1=value1¶m2=value2 - $parsed['database'] = rawurldecode(substr($dsn, 0, $pos)); - $dsn = substr($dsn, $pos + 1); - if (strpos($dsn, '&') !== false) { - $opts = explode('&', $dsn); - } else { // database?param1=value1 - $opts = array($dsn); - } - foreach ($opts as $opt) { - list($key, $value) = explode('=', $opt); - if (!isset($parsed[$key])) { - // don't allow params overwrite - $parsed[$key] = rawurldecode($value); - } - } - } - } - - return $parsed; - } - - // }}} -} - -// }}} -// {{{ class DB_Error - -/** - * DB_Error implements a class for reporting portable database error - * messages - * - * @category Database - * @package DB - * @author Stig Bakken - * @copyright 1997-2005 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: @package_version@ - * @link http://pear.php.net/package/DB - */ -class DB_Error extends PEAR_Error -{ - // {{{ constructor - - /** - * DB_Error constructor - * - * @param mixed $code DB error code, or string with error message - * @param int $mode what "error mode" to operate in - * @param int $level what error level to use for $mode & - * PEAR_ERROR_TRIGGER - * @param mixed $debuginfo additional debug info, such as the last query - * - * @see PEAR_Error - */ - function DB_Error($code = DB_ERROR, $mode = PEAR_ERROR_RETURN, - $level = E_USER_NOTICE, $debuginfo = null) - { - if (is_int($code)) { - $this->PEAR_Error('DB Error: ' . DB::errorMessage($code), $code, - $mode, $level, $debuginfo); - } else { - $this->PEAR_Error("DB Error: $code", DB_ERROR, - $mode, $level, $debuginfo); - } - } - - // }}} -} - -// }}} -// {{{ class DB_result - -/** - * This class implements a wrapper for a DB result set - * - * A new instance of this class will be returned by the DB implementation - * after processing a query that returns data. - * - * @category Database - * @package DB - * @author Stig Bakken - * @copyright 1997-2005 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: @package_version@ - * @link http://pear.php.net/package/DB - */ -class DB_result -{ - // {{{ properties - - /** - * Should results be freed automatically when there are no more rows? - * @var boolean - * @see DB_common::$options - */ - var $autofree; - - /** - * A reference to the DB_ object - * @var object - */ - var $dbh; - - /** - * The current default fetch mode - * @var integer - * @see DB_common::$fetchmode - */ - var $fetchmode; - - /** - * The name of the class into which results should be fetched when - * DB_FETCHMODE_OBJECT is in effect - * - * @var string - * @see DB_common::$fetchmode_object_class - */ - var $fetchmode_object_class; - - /** - * The number of rows to fetch from a limit query - * @var integer - */ - var $limit_count = null; - - /** - * The row to start fetching from in limit queries - * @var integer - */ - var $limit_from = null; - - /** - * The execute parameters that created this result - * @var array - * @since Property available since Release 1.7.0 - */ - var $parameters; - - /** - * The query string that created this result - * - * Copied here incase it changes in $dbh, which is referenced - * - * @var string - * @since Property available since Release 1.7.0 - */ - var $query; - - /** - * The query result resource id created by PHP - * @var resource - */ - var $result; - - /** - * The present row being dealt with - * @var integer - */ - var $row_counter = null; - - /** - * The prepared statement resource id created by PHP in $dbh - * - * This resource is only available when the result set was created using - * a driver's native execute() method, not PEAR DB's emulated one. - * - * Copied here incase it changes in $dbh, which is referenced - * - * {@internal Mainly here because the InterBase/Firebird API is only - * able to retrieve data from result sets if the statemnt handle is - * still in scope.}} - * - * @var resource - * @since Property available since Release 1.7.0 - */ - var $statement; - - - // }}} - // {{{ constructor - - /** - * This constructor sets the object's properties - * - * @param object &$dbh the DB object reference - * @param resource $result the result resource id - * @param array $options an associative array with result options - * - * @return void - */ - function DB_result(&$dbh, $result, $options = array()) - { - $this->autofree = $dbh->options['autofree']; - $this->dbh = &$dbh; - $this->fetchmode = $dbh->fetchmode; - $this->fetchmode_object_class = $dbh->fetchmode_object_class; - $this->parameters = $dbh->last_parameters; - $this->query = $dbh->last_query; - $this->result = $result; - $this->statement = empty($dbh->last_stmt) ? null : $dbh->last_stmt; - foreach ($options as $key => $value) { - $this->setOption($key, $value); - } - } - - /** - * Set options for the DB_result object - * - * @param string $key the option to set - * @param mixed $value the value to set the option to - * - * @return void - */ - function setOption($key, $value = null) - { - switch ($key) { - case 'limit_from': - $this->limit_from = $value; - break; - case 'limit_count': - $this->limit_count = $value; - } - } - - // }}} - // {{{ fetchRow() - - /** - * Fetch a row of data and return it by reference into an array - * - * The type of array returned can be controlled either by setting this - * method's $fetchmode parameter or by changing the default - * fetch mode setFetchMode() before calling this method. - * - * There are two options for standardizing the information returned - * from databases, ensuring their values are consistent when changing - * DBMS's. These portability options can be turned on when creating a - * new DB object or by using setOption(). - * - * + DB_PORTABILITY_LOWERCASE - * convert names of fields to lower case - * - * + DB_PORTABILITY_RTRIM - * right trim the data - * - * @param int $fetchmode the constant indicating how to format the data - * @param int $rownum the row number to fetch (index starts at 0) - * - * @return mixed an array or object containing the row's data, - * NULL when the end of the result set is reached - * or a DB_Error object on failure. - * - * @see DB_common::setOption(), DB_common::setFetchMode() - */ - function &fetchRow($fetchmode = DB_FETCHMODE_DEFAULT, $rownum = null) - { - if ($fetchmode === DB_FETCHMODE_DEFAULT) { - $fetchmode = $this->fetchmode; - } - if ($fetchmode === DB_FETCHMODE_OBJECT) { - $fetchmode = DB_FETCHMODE_ASSOC; - $object_class = $this->fetchmode_object_class; - } - if ($this->limit_from !== null) { - if ($this->row_counter === null) { - $this->row_counter = $this->limit_from; - // Skip rows - if ($this->dbh->features['limit'] === false) { - $i = 0; - while ($i++ < $this->limit_from) { - $this->dbh->fetchInto($this->result, $arr, $fetchmode); - } - } - } - if ($this->row_counter >= ($this->limit_from + $this->limit_count)) - { - if ($this->autofree) { - $this->free(); - } - $tmp = null; - return $tmp; - } - if ($this->dbh->features['limit'] === 'emulate') { - $rownum = $this->row_counter; - } - $this->row_counter++; - } - $res = $this->dbh->fetchInto($this->result, $arr, $fetchmode, $rownum); - if ($res === DB_OK) { - if (isset($object_class)) { - // The default mode is specified in the - // DB_common::fetchmode_object_class property - if ($object_class == 'stdClass') { - $arr = (object) $arr; - } else { - $arr = &new $object_class($arr); - } - } - return $arr; - } - if ($res == null && $this->autofree) { - $this->free(); - } - return $res; - } - - // }}} - // {{{ fetchInto() - - /** - * Fetch a row of data into an array which is passed by reference - * - * The type of array returned can be controlled either by setting this - * method's $fetchmode parameter or by changing the default - * fetch mode setFetchMode() before calling this method. - * - * There are two options for standardizing the information returned - * from databases, ensuring their values are consistent when changing - * DBMS's. These portability options can be turned on when creating a - * new DB object or by using setOption(). - * - * + DB_PORTABILITY_LOWERCASE - * convert names of fields to lower case - * - * + DB_PORTABILITY_RTRIM - * right trim the data - * - * @param array &$arr the variable where the data should be placed - * @param int $fetchmode the constant indicating how to format the data - * @param int $rownum the row number to fetch (index starts at 0) - * - * @return mixed DB_OK if a row is processed, NULL when the end of the - * result set is reached or a DB_Error object on failure - * - * @see DB_common::setOption(), DB_common::setFetchMode() - */ - function fetchInto(&$arr, $fetchmode = DB_FETCHMODE_DEFAULT, $rownum = null) - { - if ($fetchmode === DB_FETCHMODE_DEFAULT) { - $fetchmode = $this->fetchmode; - } - if ($fetchmode === DB_FETCHMODE_OBJECT) { - $fetchmode = DB_FETCHMODE_ASSOC; - $object_class = $this->fetchmode_object_class; - } - if ($this->limit_from !== null) { - if ($this->row_counter === null) { - $this->row_counter = $this->limit_from; - // Skip rows - if ($this->dbh->features['limit'] === false) { - $i = 0; - while ($i++ < $this->limit_from) { - $this->dbh->fetchInto($this->result, $arr, $fetchmode); - } - } - } - if ($this->row_counter >= ( - $this->limit_from + $this->limit_count)) - { - if ($this->autofree) { - $this->free(); - } - return null; - } - if ($this->dbh->features['limit'] === 'emulate') { - $rownum = $this->row_counter; - } - - $this->row_counter++; - } - $res = $this->dbh->fetchInto($this->result, $arr, $fetchmode, $rownum); - if ($res === DB_OK) { - if (isset($object_class)) { - // default mode specified in the - // DB_common::fetchmode_object_class property - if ($object_class == 'stdClass') { - $arr = (object) $arr; - } else { - $arr = new $object_class($arr); - } - } - return DB_OK; - } - if ($res == null && $this->autofree) { - $this->free(); - } - return $res; - } - - // }}} - // {{{ numCols() - - /** - * Get the the number of columns in a result set - * - * @return int the number of columns. A DB_Error object on failure. - */ - function numCols() - { - return $this->dbh->numCols($this->result); - } - - // }}} - // {{{ numRows() - - /** - * Get the number of rows in a result set - * - * @return int the number of rows. A DB_Error object on failure. - */ - function numRows() - { - if ($this->dbh->features['numrows'] === 'emulate' - && $this->dbh->options['portability'] & DB_PORTABILITY_NUMROWS) - { - if ($this->dbh->features['prepare']) { - $res = $this->dbh->query($this->query, $this->parameters); - } else { - $res = $this->dbh->query($this->query); - } - if (DB::isError($res)) { - return $res; - } - $i = 0; - while ($res->fetchInto($tmp, DB_FETCHMODE_ORDERED)) { - $i++; - } - return $i; - } else { - return $this->dbh->numRows($this->result); - } - } - - // }}} - // {{{ nextResult() - - /** - * Get the next result if a batch of queries was executed - * - * @return bool true if a new result is available or false if not - */ - function nextResult() - { - return $this->dbh->nextResult($this->result); - } - - // }}} - // {{{ free() - - /** - * Frees the resources allocated for this result set - * - * @return bool true on success. A DB_Error object on failure. - */ - function free() - { - $err = $this->dbh->freeResult($this->result); - if (DB::isError($err)) { - return $err; - } - $this->result = false; - $this->statement = false; - return true; - } - - // }}} - // {{{ tableInfo() - - /** - * @see DB_common::tableInfo() - * @deprecated Method deprecated some time before Release 1.2 - */ - function tableInfo($mode = null) - { - if (is_string($mode)) { - return $this->dbh->raiseError(DB_ERROR_NEED_MORE_DATA); - } - return $this->dbh->tableInfo($this, $mode); - } - - // }}} - // {{{ getQuery() - - /** - * Determine the query string that created this result - * - * @return string the query string - * - * @since Method available since Release 1.7.0 - */ - function getQuery() - { - return $this->query; - } - - // }}} - // {{{ getRowCounter() - - /** - * Tells which row number is currently being processed - * - * @return integer the current row being looked at. Starts at 1. - */ - function getRowCounter() - { - return $this->row_counter; - } - - // }}} -} - -// }}} -// {{{ class DB_row - -/** - * PEAR DB Row Object - * - * The object contains a row of data from a result set. Each column's data - * is placed in a property named for the column. - * - * @category Database - * @package DB - * @author Stig Bakken - * @copyright 1997-2005 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: @package_version@ - * @link http://pear.php.net/package/DB - * @see DB_common::setFetchMode() - */ -class DB_row -{ - // {{{ constructor - - /** - * The constructor places a row's data into properties of this object - * - * @param array the array containing the row's data - * - * @return void - */ - function DB_row(&$arr) - { - foreach ($arr as $key => $value) { - $this->$key = &$arr[$key]; - } - } - - // }}} -} - -// }}} - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - */ - -?> diff -r ac0ca51809b1 -r 47dd15d8bb8c inc/database.inc.php --- a/inc/database.inc.php Wed Apr 18 22:48:49 2007 +0000 +++ b/inc/database.inc.php Sun Apr 22 07:20:09 2007 +0000 @@ -21,7 +21,7 @@ // $Id: database.inc.php,v 1.3 2002/12/27 02:45:08 azurazu Exp $ // -require_once("dal.inc.php"); +require_once("MDB2.php"); function dbError($msg) { @@ -35,22 +35,19 @@ die(); } -// Setup error handling. PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'dbError'); -//$dsn = "mysql://padev:blapadev@localhost/padev" ; $dsn = "$dbdsntype://$dbuser:$dbpass@$dbhost/$dbdatabase"; -$db = DB::connect($dsn); +$db = MDB2::connect($dsn); -if (DB::isError($db)) +if (MDB2::isError($db)) { // Error handling should be put. error(MYSQL_ERROR_FATAL, $db->getMessage()); } // Do an ASSOC fetch. Gives us the ability to use ["id"] fields. -$db->setFetchMode(DB_FETCHMODE_ASSOC); - +$db->setFetchMode(MDB2_FETCHMODE_ASSOC); /* erase info */ $mysql_pass = $dsn = ''; diff -r ac0ca51809b1 -r 47dd15d8bb8c inc/dns.inc.php --- a/inc/dns.inc.php Wed Apr 18 22:48:49 2007 +0000 +++ b/inc/dns.inc.php Sun Apr 22 07:20:09 2007 +0000 @@ -28,7 +28,7 @@ * Validates an IPv4 IP. * returns true if valid. */ -function validate_input($recordid, $zoneid, $type, &$content, &$name, &$prio, &$ttl) +function validate_input($zoneid, $type, &$content, &$name, &$prio, &$ttl) { global $db; @@ -387,7 +387,7 @@ global $db; // See if the destination to which this MX is pointing is NOT a CNAME record. // Check inside our dns server. - if($db->getOne("SELECT count(id) FROM records WHERE name='$content' AND type='CNAME'") > 0) + if($db->queryOne("SELECT count(id) FROM records WHERE name='$content' AND type='CNAME'") > 0) { return -1; } @@ -430,7 +430,7 @@ // "an IN NS field must be a hostname." } - if($db->getOne("SELECT count(id) FROM records WHERE name='$content' AND type='CNAME'") > 0) + if($db->queryOne("SELECT count(id) FROM records WHERE name='$content' AND type='CNAME'") > 0) { return -2; // "You can not point a NS record to a CNAME record. Remove/rename the CNAME record first or take another name." diff -r ac0ca51809b1 -r 47dd15d8bb8c inc/i18n.inc.php --- a/inc/i18n.inc.php Wed Apr 18 22:48:49 2007 +0000 +++ b/inc/i18n.inc.php Sun Apr 22 07:20:09 2007 +0000 @@ -1,5 +1,5 @@ getOne($sqlq); + $notified_serial = $db->queryOne($sqlq); $sqlq = "SELECT `content` FROM `records` WHERE `type` = 'SOA' AND `domain_id` = '".$domain_id."'"; - $content = $db->getOne($sqlq); + $content = $db->queryOne($sqlq); $need_to_update = false; // Getting the serial field. @@ -171,17 +171,14 @@ } if (is_numeric($zoneid)) { - - // Get the Insert ID, we can not rely on auto_increment - $idrecords = $db->nextID('records'); + // Check the user input. + validate_input($zoneid, $type, $content, $name, $prio, $ttl); - // Check the user input. - validate_input($idrecords, $zoneid, $type, $content, $name, $prio, $ttl); - - // Generate new timestamp for the Daemon + // Generate new timestamp for the daemon $change = time(); + // Execute query. - $db->query("INSERT INTO records (id, domain_id, name, type, content, ttl, prio, change_date) VALUES ($idrecords, $zoneid, '$name', '$type', '$content', $ttl, '$prio', $change)"); + $db->query("INSERT INTO records (domain_id, name, type, content, ttl, prio, change_date) VALUES ($zoneid, '$name', '$type', '$content', $ttl, '$prio', $change)"); if ($type != 'SOA') { update_soa_serial($zoneid); @@ -270,40 +267,38 @@ // Continue this function if (($domain && $owner && $webip && $mailip) || ($empty && $owner && $domain) || (eregi('in-addr.arpa', $domain) && $owner)) { - // Retrieve next zones id. - $idzones = $db->nextID('zones'); - $iddomains = $db->nextID('domains'); - - $db->query("INSERT INTO zones (id, domain_id, owner) VALUES ('$idzones', '$iddomains', $owner)"); + + // First insert zone into domain table + $db->query("INSERT INTO domains (name, type) VALUES ('$domain', '$type')"); - /* - * TODO : NATIVE OPERATION ONLY FOR NOW - */ + // Determine id of insert zone (in other words, find domain_id) + $iddomain = $db->lastInsertId('domains', 'id'); + if (PEAR::isError($iddomain)) { + die($id->getMessage()); + } - $db->query("INSERT INTO domains (id, name, type) VALUES ('$iddomains', '$domain', '$type')"); + // Second, insert into zones tables + $db->query("INSERT INTO zones (domain_id, owner) VALUES ('$iddomain', $owner)"); - // Generate new timestamp. We need this one anyhow. - $now = time(); + // Generate new timestamp. We need this one anyhow. + $now = time(); - if ($empty && $iddomains) + if ($empty && $iddomain) { - // If we come into this if statement we dont want to apply templates. - // Retrieve configuration settings. - $ns1 = $GLOBALS["NS1"]; - $hm = $GLOBALS["HOSTMASTER"]; - $ttl = $GLOBALS["DEFAULT_TTL"]; - - // Retrieve next records id - $idrecords = $db->nextID('records'); + // If we come into this if statement we dont want to apply templates. + // Retrieve configuration settings. + $ns1 = $GLOBALS["NS1"]; + $hm = $GLOBALS["HOSTMASTER"]; + $ttl = $GLOBALS["DEFAULT_TTL"]; - // Build and execute query - $sql = "INSERT INTO records (id, domain_id, name, content, type, ttl, prio, change_date) VALUES ('$idrecords', '$iddomains', '$domain', '$ns1 $hm 1', 'SOA', $ttl, '', '$now')"; - $db->query($sql); + // Build and execute query + $sql = "INSERT INTO records (domain_id, name, content, type, ttl, prio, change_date) VALUES ('$iddomain', '$domain', '$ns1 $hm 1', 'SOA', $ttl, '', '$now')"; + $db->query($sql); - // Done - return true; + // Done + return true; } - elseif ($iddomains) + elseif ($iddomain) { // If we are here we want to apply templates. global $template; @@ -327,9 +322,7 @@ $ttl = $GLOBALS["DEFAULT_TTL"]; } - // Retrieve new record id; - $idrecords = $db->nextID('records'); - $sql = "INSERT INTO records (id, domain_id, name, content, type, ttl, prio, change_date) VALUES ('$idrecords', '$iddomains', '$name','$content','$type','$ttl','$prio','$now')"; + $sql = "INSERT INTO records (domain_id, name, content, type, ttl, prio, change_date) VALUES ('$iddomain', '$name','$content','$type','$ttl','$prio','$now')"; $db->query($sql); } } @@ -465,10 +458,9 @@ if (is_numeric($domain) && is_numeric($newowner) && is_valid_user($newowner)) { - $iid = $db->nextID('zones'); - if($db->getOne("SELECT COUNT(id) FROM zones WHERE owner=$newowner AND domain_id=$domain") == 0) + if($db->queryOne("SELECT COUNT(id) FROM zones WHERE owner=$newowner AND domain_id=$domain") == 0) { - $db->query("INSERT INTO zones(id, domain_id, owner) VALUES($iid, $domain, $newowner)"); + $db->query("INSERT INTO zones (domain_id, owner) VALUES($domain, $newowner)"); } return true; } @@ -482,7 +474,7 @@ function delete_owner($domain, $owner) { global $db; - if($db->getOne("SELECT COUNT(id) FROM zones WHERE owner=$owner AND domain_id=$domain") != 0) + if($db->queryOne("SELECT COUNT(id) FROM zones WHERE owner=$owner AND domain_id=$domain") != 0) { $db->query("DELETE FROM zones WHERE owner=$owner AND domain_id=$domain"); } @@ -655,7 +647,7 @@ GROUP BY name, owner, users.fullname ORDER BY name"; - $result = $db->getRow($sqlq); + $result = $db->queryRow($sqlq); $ret = array( "name" => $result["name"], @@ -682,9 +674,9 @@ ORDER BY zones.id"; // Put the first occurence in an array and return it. - $result = $db->getRow($sqlq); + $result = $db->queryRow($sqlq); - //$result["ownerid"] = ($result["ownerid"] == NULL) ? $db->getOne("select min(id) from users where users.level=10") : $result["ownerid"]; + //$result["ownerid"] = ($result["ownerid"] == NULL) ? $db->queryOne("select min(id) from users where users.level=10") : $result["ownerid"]; $ret = array( "name" => $result["name"], @@ -829,7 +821,7 @@ while($r = $result->fetchRow()) { - $r["owner"] = ($r["owner"] == NULL) ? $db->getOne("select min(id) from users where users.level=10") : $r["owner"]; + $r["owner"] = ($r["owner"] == NULL) ? $db->queryOne("select min(id) from users where users.level=10") : $r["owner"]; $ret[$r["domainname"]] = array( "name" => $r["domainname"], "id" => $r["domain_id"], @@ -992,11 +984,11 @@ function get_users_from_domain_id($id) { global $db; - $result = $db->getCol("SELECT owner FROM zones WHERE domain_id=$id"); + $result = $db->queryCol("SELECT owner FROM zones WHERE domain_id=$id"); $ret = array(); foreach($result as $uid) { - $fullname = $db->getOne("SELECT fullname FROM users WHERE id=$uid"); + $fullname = $db->queryOne("SELECT fullname FROM users WHERE id=$uid"); $ret[] = array( "id" => $uid, "fullname" => $fullname @@ -1105,7 +1097,7 @@ function get_domain_type($id) { global $db; - $type = $db->getOne("SELECT `type` FROM `domains` WHERE `id` = '".$id."'"); + $type = $db->queryOne("SELECT `type` FROM `domains` WHERE `id` = '".$id."'"); if($type == "") { $type = "NATIVE"; diff -r ac0ca51809b1 -r 47dd15d8bb8c inc/users.inc.php --- a/inc/users.inc.php Wed Apr 18 22:48:49 2007 +0000 +++ b/inc/users.inc.php Sun Apr 22 07:20:09 2007 +0000 @@ -221,9 +221,7 @@ $fullname = mysql_escape_string($fullname); is_valid_email($email); - // Get id and insert information. - $idusers= $db->nextID('users'); - $db->query("INSERT INTO users (id, username, password, fullname, email, description, level, active) VALUES ($idusers, '$user', '" . md5($password) . "', '$fullname', '$email', '$description', '$level', '$active')"); + $db->query("INSERT INTO users (username, password, fullname, email, description, level, active) VALUES ('$user', '" . md5($password) . "', '$fullname', '$email', '$description', '$level', '$active')"); return true; } else diff -r ac0ca51809b1 -r 47dd15d8bb8c index.php --- a/index.php Wed Apr 18 22:48:49 2007 +0000 +++ b/index.php Sun Apr 22 07:20:09 2007 +0000 @@ -21,39 +21,6 @@ require_once("inc/i18n.inc.php"); require_once("inc/toolkit.inc.php"); -/* -// Checks if the user migrated his database, can be deprecated in the future -function check_updated() -{ - global $db; - $checkzone = $db->query("select * from zones"); - $zonetables = $checkzone->tableInfo(); - //var_dump($zonetables[1]); - if(strcmp($zonetables[1]["name"], "name") == 0) - { - include_once("inc/header.inc.php"); - error("You have to migrate your database first! - - The reason for this migration is that PowerAdmin wasnt supporting the gmysql backend yet. Now it fully does we have to support it aswell. - The gmysql users another table and other fields though, therefore we had to change the layout of the zones table. In this version thats fully done, but before this we have to migrate it. - - Please be sure you have a working backup of your data! - we assume it all works but can't guarantuee it for 100% because we dont have - too many betatesters.
- - Do the following to migrate: - - rename the file migrator.php-pa in your webdir to migrator.php. - - Go here to migrate it. - - It is recommended to synchronize your database aswell after the update"); - die(); - } -} - -// Call above function -check_updated(); -*/ - if ($_POST["submit"]) { $domain = trim($_POST["domain"]); @@ -109,7 +76,7 @@ diff -r ac0ca51809b1 -r 47dd15d8bb8c install.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/install.php Sun Apr 22 07:20:09 2007 +0000 @@ -0,0 +1,213 @@ + trancer nl> | +// | Sjeemz sjeemz nl> | +// | Add-ons: Wim Mostrey mostrey be> | +// +--------------------------------------------------------------------+ + +// Filename: install.php +// Description: installs your PowerAdmin +// +// $Id: install.php,v 1.12 2003/01/07 23:29:24 lyon Exp $ +// + +// addslashes to vars if magic_quotes_gpc is off +function slash_input_data(&$data) +{ + if ( is_array($data) ) + { + foreach ( $data as $k => $v ) + { + $data[$k] = ( is_array($v) ) ? slash_input_data($v) : addslashes($v); + } + } + return $data; +} + +set_magic_quotes_runtime(0); + +// If magic quotes is off, addslashes +if ( !get_magic_quotes_gpc() ) +{ + $_GET = slash_input_data($_GET); + $_POST = slash_input_data($_POST); + $_COOKIE = slash_input_data($_COOKIE); +} + + +error_reporting(E_ALL); +if(!@require_once("inc/config.inc.php")) +{ + error("You have to create a config.inc.php!"); +} +include_once("inc/header.inc.php"); + +$sup_types = array('mysql'); + +function error($msg=false) +{ + // General function for printing critical errors. + if ($msg) + { + ?> +

+
+

<< back

+ query($sqlusers); + + if($db->isError($resusers)) + { + error("Can not create table users in $dbdatabase"); + } + + $reszones = $db->query($sqlzones); + + if($db->isError($reszones)) + { + error("Can not create zones table in $dbdatabase"); + } + + $id = $db->nextID('users'); + + /* TODO next version: fix the strip_slashes. might give trouble upgrading :/ -Lyon */ + $sqlinsert = "INSERT INTO + users + VALUES ( + $id, + '". $_POST['login'] ."', + '". md5(stripslashes($_POST['password'])) ."', + '". $_POST["fullname"] ."', + '". $_POST["email"] ."', + '". $_POST["description"] ."', + 10, + 1)"; + + $resadmin = $db->query($sqlinsert); + + if($db->isError($resadmin)) + { + + error("Can not add the admin to database $dbdatabase.users"); + } + else + { + + ?> +

+
+
+:
+
+ here + +" . _('You didnt fill in one of the required fields!') . ""; + } +} + +else +{ +?> + +

+
+
+ * +


+ +
+ + + + + + + +
: *
: *
: *
: *
:
 
+
+ +

+PowerAdmin v1.0 Copyright ©2002 The +PowerAdmin Team diff -r ac0ca51809b1 -r 47dd15d8bb8c install.php.orig --- a/install.php.orig Wed Apr 18 22:48:49 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,213 +0,0 @@ - trancer nl> | -// | Sjeemz sjeemz nl> | -// | Add-ons: Wim Mostrey mostrey be> | -// +--------------------------------------------------------------------+ - -// Filename: install.php -// Description: installs your PowerAdmin -// -// $Id: install.php,v 1.12 2003/01/07 23:29:24 lyon Exp $ -// - -// addslashes to vars if magic_quotes_gpc is off -function slash_input_data(&$data) -{ - if ( is_array($data) ) - { - foreach ( $data as $k => $v ) - { - $data[$k] = ( is_array($v) ) ? slash_input_data($v) : addslashes($v); - } - } - return $data; -} - -set_magic_quotes_runtime(0); - -// If magic quotes is off, addslashes -if ( !get_magic_quotes_gpc() ) -{ - $_GET = slash_input_data($_GET); - $_POST = slash_input_data($_POST); - $_COOKIE = slash_input_data($_COOKIE); -} - - -error_reporting(E_ALL); -if(!@require_once("inc/config.inc.php")) -{ - error("You have to create a config.inc.php!"); -} -include_once("inc/header.inc.php"); - -$sup_types = array('mysql'); - -function error($msg=false) -{ - // General function for printing critical errors. - if ($msg) - { - ?> -

-
-

<< back

- query($sqlusers); - - if($db->isError($resusers)) - { - error("Can not create table users in $dbdatabase"); - } - - $reszones = $db->query($sqlzones); - - if($db->isError($reszones)) - { - error("Can not create zones table in $dbdatabase"); - } - - $id = $db->nextID('users'); - - /* TODO next version: fix the strip_slashes. might give trouble upgrading :/ -Lyon */ - $sqlinsert = "INSERT INTO - users - VALUES ( - $id, - '". $_POST['login'] ."', - '". md5(stripslashes($_POST['password'])) ."', - '". $_POST["fullname"] ."', - '". $_POST["email"] ."', - '". $_POST["description"] ."', - 10, - 1)"; - - $resadmin = $db->query($sqlinsert); - - if($db->isError($resadmin)) - { - - error("Can not add the admin to database $dbdatabase.users"); - } - else - { - - ?> -

-
-
-:
-
- here - -" . _('You didnt fill in one of the required fields!') . ""; - } -} - -else -{ -?> - -

-
-
- * -


- -
- - - - - - - -
: *
: *
: *
: *
:
 
-
- -

-PowerAdmin v1.0 Copyright ©2002 The -PowerAdmin Team diff -r ac0ca51809b1 -r 47dd15d8bb8c locale/en_EN/LC_MESSAGES/en.po --- a/locale/en_EN/LC_MESSAGES/en.po Wed Apr 18 22:48:49 2007 +0000 +++ b/locale/en_EN/LC_MESSAGES/en.po Sun Apr 22 07:20:09 2007 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-04-18 22:44+0200\n" +"POT-Creation-Date: 2007-04-21 19:20+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -20,7 +20,7 @@ msgid "Add record to zone" msgstr "" -#: add_record.php:32 edit.php:160 edit_record.php:61 index.php:106 +#: add_record.php:32 edit.php:160 edit_record.php:61 index.php:73 #: search.php:40 users.php:49 msgid "DNS Admin" msgstr "" @@ -29,8 +29,8 @@ msgid "Add record" msgstr "" -#: add_record.php:37 edit.php:186 edit_record.php:67 index.php:152 -#: search.php:78 search.php:121 users.php:78 +#: add_record.php:37 edit.php:186 edit_record.php:67 index.php:119 +#: search.php:78 search.php:121 users.php:72 msgid "Name" msgstr "" @@ -50,11 +50,11 @@ msgid "TTL" msgstr "" -#: delete_domain.php:38 users.php:93 +#: delete_domain.php:38 users.php:87 msgid "Delete domain" msgstr "" -#: delete_domain.php:39 index.php:152 index.php:207 search.php:80 +#: delete_domain.php:39 index.php:119 index.php:174 search.php:80 msgid "Owner" msgstr "" @@ -78,7 +78,7 @@ msgid "Delete record" msgstr "" -#: delete_user.php:54 users.php:85 +#: delete_user.php:54 users.php:79 msgid "Delete user" msgstr "" @@ -154,7 +154,7 @@ msgid "Assign to user" msgstr "" -#: edit.php:276 index.php:176 search.php:91 +#: edit.php:276 index.php:143 search.php:91 msgid "Delete zone" msgstr "" @@ -182,134 +182,192 @@ msgid "Edit user" msgstr "" -#: edit_user.php:59 index.php:112 search.php:44 users.php:47 +#: edit_user.php:59 index.php:79 search.php:44 users.php:47 msgid "User admin" msgstr "" -#: edit_user.php:69 users.php:105 +#: edit_user.php:69 users.php:99 msgid "User name" msgstr "" -#: edit_user.php:70 users.php:106 +#: edit_user.php:70 install.php:204 users.php:100 msgid "Full name" msgstr "" -#: edit_user.php:71 users.php:107 inc/auth.inc.php:97 +#: edit_user.php:71 install.php:203 users.php:101 inc/auth.inc.php:97 msgid "Password" msgstr "" -#: edit_user.php:72 users.php:108 +#: edit_user.php:72 users.php:102 msgid "E-mail" msgstr "" -#: edit_user.php:73 users.php:109 +#: edit_user.php:73 users.php:103 msgid "User level" msgstr "" -#: edit_user.php:73 inc/config.inc.php:84 +#: edit_user.php:73 inc/config-me.inc.php:84 msgid "Normal user" msgstr "" -#: edit_user.php:73 inc/config.inc.php:85 +#: edit_user.php:73 inc/config-me.inc.php:85 msgid "Administrator" msgstr "" -#: edit_user.php:73 inc/config.inc.php:86 +#: edit_user.php:73 inc/config-me.inc.php:86 msgid "Administrator w/ user admin rights" msgstr "" -#: edit_user.php:74 users.php:110 +#: edit_user.php:74 install.php:206 users.php:104 msgid "Description" msgstr "" -#: edit_user.php:75 users.php:111 inc/toolkit.inc.php:270 +#: edit_user.php:75 users.php:105 inc/toolkit.inc.php:270 msgid "Active" msgstr "" -#: index.php:112 search.php:44 users.php:53 -msgid "Synchronize database" -msgstr "" - -#: index.php:115 users.php:55 +#: index.php:82 users.php:49 msgid "Search records" msgstr "" -#: index.php:119 +#: index.php:86 msgid "Welcome" msgstr "" -#: index.php:122 +#: index.php:89 msgid "Your userlevel is" msgstr "" -#: index.php:128 users.php:65 +#: index.php:95 users.php:59 msgid "Error" msgstr "" -#: index.php:132 +#: index.php:99 msgid "Current domains in DNS (click to view or edit)" msgstr "" -#: index.php:138 +#: index.php:105 msgid "Number of domains" msgstr "" -#: index.php:152 search.php:79 +#: index.php:119 search.php:79 msgid "Records" msgstr "" -#: index.php:164 +#: index.php:131 msgid "No domains in this listing, sorry." msgstr "" -#: index.php:191 +#: index.php:158 msgid "You only administer some records of domains marked with an (*)." msgstr "" -#: index.php:202 +#: index.php:169 msgid "Create new domain" msgstr "" -#: index.php:204 +#: index.php:171 msgid "Domain name" msgstr "" -#: index.php:205 +#: index.php:172 msgid "Web IP" msgstr "" -#: index.php:206 +#: index.php:173 msgid "Mail IP" msgstr "" -#: index.php:221 +#: index.php:188 msgid "Domain type" msgstr "" -#: index.php:232 +#: index.php:199 msgid "Create zone without" msgstr "" -#: index.php:232 +#: index.php:199 msgid "applying records-template" msgstr "" -#: index.php:233 +#: index.php:200 msgid "Add domain" msgstr "" -#: index.php:242 index.php:247 +#: index.php:209 index.php:214 msgid "Change password" msgstr "" -#: index.php:244 +#: index.php:211 msgid "Current password" msgstr "" -#: index.php:245 index.php:246 +#: index.php:212 index.php:213 msgid "New password" msgstr "" +#: install.php:63 inc/database.inc.php:31 inc/toolkit.inc.php:149 +msgid "Oops! An error occured!" +msgstr "" + +#: install.php:171 +msgid "PowerAdmin has succesfully been installed." +msgstr "" + +#: install.php:173 +msgid "Remove this file (install.php) from your webdir." +msgstr "" + +#: install.php:174 +msgid "WARNING" +msgstr "" + +#: install.php:174 +msgid "PowerAdmin will not work until you delete install.php" +msgstr "" + +#: install.php:176 +msgid "You can click" +msgstr "" + +#: install.php:176 +msgid "to start using PowerAdmin" +msgstr "" + +#: install.php:185 +msgid "You didnt fill in one of the required fields!" +msgstr "" + +#: install.php:193 inc/auth.inc.php:86 +msgid "PowerAdmin for PowerDNS" +msgstr "" + +#: install.php:195 +msgid "" +"This config file will setup your database to be ready for PowerAdmin. Please fill in the next fields which will create an\n" +"administrator login." +msgstr "" + +#: install.php:197 +msgid "Fields marked with a" +msgstr "" + +#: install.php:197 +msgid "are required." +msgstr "" + +#: install.php:202 +msgid "Login Name" +msgstr "" + +#: install.php:205 +msgid "Email" +msgstr "" + +#: install.php:207 +msgid "Make Account" +msgstr "" + #: search.php:38 msgid "Search zones or records" msgstr "" @@ -338,14 +396,6 @@ msgid "Nothing found for query" msgstr "" -#: seq_update.php:26 -msgid "Synching databases. This is useful if you did manual insertions (in case you havent been here yet)." -msgstr "" - -#: seq_update.php:53 -msgid "All tables are successfully synchronized." -msgstr "" - #: test_setup.php:58 msgid "Not all tables are ok!" msgstr "" @@ -374,35 +424,35 @@ msgid "Please fill in all fields" msgstr "" -#: users.php:68 +#: users.php:62 msgid "Current users (click to edit)" msgstr "" +#: users.php:66 +msgid "Number of users" +msgstr "" + #: users.php:72 -msgid "Number of users" -msgstr "" - -#: users.php:78 msgid "Domains" msgstr "" -#: users.php:78 +#: users.php:72 msgid "Domain list" msgstr "" -#: users.php:78 +#: users.php:72 msgid "Level" msgstr "" -#: users.php:78 +#: users.php:72 msgid "Status" msgstr "" -#: users.php:103 +#: users.php:97 msgid "Create new user" msgstr "" -#: users.php:112 +#: users.php:106 msgid "Add user" msgstr "" @@ -415,10 +465,6 @@ msgstr "" #: inc/auth.inc.php:86 -msgid "PowerAdmin for PowerDNS" -msgstr "" - -#: inc/auth.inc.php:86 msgid "Please login" msgstr "" @@ -430,10 +476,6 @@ msgid "You have logged out." msgstr "" -#: inc/database.inc.php:31 inc/toolkit.inc.php:149 -msgid "Oops! An error occured!" -msgstr "" - #: inc/database.inc.php:33 inc/toolkit.inc.php:151 inc/toolkit.inc.php:187 msgid "back" msgstr "" diff -r ac0ca51809b1 -r 47dd15d8bb8c locale/en_EN/LC_MESSAGES/message.mo Binary file locale/en_EN/LC_MESSAGES/message.mo has changed diff -r ac0ca51809b1 -r 47dd15d8bb8c locale/nl_NL/LC_MESSAGES/message.mo Binary file locale/nl_NL/LC_MESSAGES/message.mo has changed diff -r ac0ca51809b1 -r 47dd15d8bb8c locale/nl_NL/LC_MESSAGES/nl.po --- a/locale/nl_NL/LC_MESSAGES/nl.po Wed Apr 18 22:48:49 2007 +0000 +++ b/locale/nl_NL/LC_MESSAGES/nl.po Sun Apr 22 07:20:09 2007 +0000 @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: poweradmin 1.2.7-patched\n" "Report-Msgid-Bugs-To: rejo@zenger.nl\n" -"POT-Creation-Date: 2007-04-15 00:21+0200\n" -"PO-Revision-Date: 2007-04-18 22:47+0200\n" +"POT-Creation-Date: 2007-04-21 19:20+0200\n" +"PO-Revision-Date: 2007-04-21 20:47+0200\n" "Last-Translator: Rejo Zenger \n" "Language-Team: Dutch\n" "MIME-Version: 1.0\n" @@ -20,7 +20,7 @@ msgid "Add record to zone" msgstr "Toevoegen record aan zone" -#: add_record.php:32 edit.php:160 edit_record.php:61 index.php:106 +#: add_record.php:32 edit.php:160 edit_record.php:61 index.php:73 #: search.php:40 users.php:49 msgid "DNS Admin" msgstr "DNS Admin" @@ -29,8 +29,8 @@ msgid "Add record" msgstr "Toevoegen record" -#: add_record.php:37 edit.php:186 edit_record.php:67 index.php:151 -#: search.php:78 search.php:121 users.php:78 +#: add_record.php:37 edit.php:186 edit_record.php:67 index.php:119 +#: search.php:78 search.php:121 users.php:72 msgid "Name" msgstr "Label" @@ -50,11 +50,11 @@ msgid "TTL" msgstr "TTL" -#: delete_domain.php:38 users.php:93 +#: delete_domain.php:38 users.php:87 msgid "Delete domain" msgstr "Verwijderen zone" -#: delete_domain.php:39 index.php:151 index.php:207 search.php:80 +#: delete_domain.php:39 index.php:119 index.php:174 search.php:80 msgid "Owner" msgstr "Beheerder" @@ -78,7 +78,7 @@ msgid "Delete record" msgstr "Verwijderen record" -#: delete_user.php:54 users.php:85 +#: delete_user.php:54 users.php:79 msgid "Delete user" msgstr "Verwijderen gebruiker" @@ -154,7 +154,7 @@ msgid "Assign to user" msgstr "Selecteer beheerder" -#: edit.php:276 index.php:176 search.php:91 +#: edit.php:276 index.php:143 search.php:91 msgid "Delete zone" msgstr "Verwijderen zone" @@ -182,27 +182,27 @@ msgid "Edit user" msgstr "Wijzigen gebruiker" -#: edit_user.php:59 index.php:112 search.php:44 users.php:47 +#: edit_user.php:59 index.php:79 search.php:44 users.php:47 msgid "User admin" msgstr "Gebruikersbeheer" -#: edit_user.php:69 users.php:105 +#: edit_user.php:69 users.php:99 msgid "User name" msgstr "Gebruikersnaam" -#: edit_user.php:70 users.php:106 +#: edit_user.php:70 install.php:204 users.php:100 msgid "Full name" msgstr "Volledige naam" -#: edit_user.php:71 users.php:107 inc/auth.inc.php:97 +#: edit_user.php:71 install.php:203 users.php:107 inc/auth.inc.php:97 msgid "Password" msgstr "Wachtwoord" -#: edit_user.php:72 users.php:108 +#: edit_user.php:72 users.php:102 msgid "E-mail" msgstr "E-mailadres" -#: edit_user.php:73 users.php:109 +#: edit_user.php:73 users.php:103 msgid "User level" msgstr "Gebruikersnivo" @@ -218,98 +218,158 @@ msgid "Administrator w/ user admin rights" msgstr "Site beheerder met gebruikersbeheer rechten" -#: edit_user.php:74 users.php:110 +#: edit_user.php:74 install.php:206 users.php:104 msgid "Description" msgstr "Omschrijving" -#: edit_user.php:75 users.php:111 inc/toolkit.inc.php:270 +#: edit_user.php:75 users.php:105 inc/toolkit.inc.php:270 msgid "Active" msgstr "Actief" -#: index.php:112 search.php:44 users.php:53 -msgid "Synchronize database" -msgstr "Synchroniseer database" - -#: index.php:115 users.php:55 +#: index.php:82 users.php:49 msgid "Search records" msgstr "Zoek records" -#: index.php:119 +#: index.php:86 msgid "Welcome" msgstr "Welkom" -#: index.php:122 +#: index.php:89 msgid "Your userlevel is" msgstr "Uw gebruikersnivo is" -#: index.php:128 users.php:65 +#: index.php:95 users.php:59 msgid "Error" msgstr "Fout" -#: index.php:132 +#: index.php:99 msgid "Current domains in DNS (click to view or edit)" msgstr "Huidige zones in DNS (aanklikken om in te zien of te wijzigen)" -#: index.php:138 +#: index.php:105 msgid "Number of domains" msgstr "Aantal zones" -#: index.php:152 search.php:79 +#: index.php:119 search.php:79 msgid "Records" msgstr "Records" -#: index.php:164 +#: index.php:131 msgid "No domains in this listing, sorry." msgstr "Er zijn geen zones om te tonen." -#: index.php:199 +#: index.php:158 msgid "You only administer some records of domains marked with an (*)." msgstr "U beheert enkel een deel van de records in zones gemarkeerd met een (*)." -#: index.php:202 +#: index.php:169 msgid "Create new domain" msgstr "Toevoegen nieuwe zone" -#: index.php:204 +#: index.php:171 msgid "Domain name" msgstr "Naam van de zone" -#: index.php:205 +#: index.php:172 msgid "Web IP" msgstr "IP adres webserver" -#: index.php:205 +#: index.php:173 msgid "Mail IP" msgstr "IP adres mailserver" -#: index.php:221 +#: index.php:188 msgid "Domain type" msgstr "Type zone" -#: index.php:232 +#: index.php:199 msgid "Create zone without" msgstr "Zone aanmaken zonder" -#: index.php:232 +#: index.php:199 msgid "applying records-template" msgstr "het record template te gebruiken" -#: index.php:233 +#: index.php:200 msgid "Add domain" msgstr "Toevoegen zone" -#: index.php:242 index.php:247 +#: index.php:209 index.php:214 msgid "Change password" msgstr "Wijzig wachtwoord" -#: index.php:244 +#: index.php:211 msgid "Current password" msgstr "Huidige wachtwoord" -#: index.php:245 index.php:246 +#: index.php:212 index.php:213 msgid "New password" msgstr "Nieuwe wachtwoord" +#: install.php:63 inc/database.inc.php:31 inc/toolkit.inc.php:149 +msgid "Oops! An error occured!" +msgstr "Oops! Er is iets fout gegaan!" + +#: install.php:171 +msgid "PowerAdmin has succesfully been installed." +msgstr "Poweradmin is succesvol geïnstalleerd" + +#: install.php:173 +msgid "Remove this file (install.php) from your webdir." +msgstr "Verwijder deze file (install.php) uit de webdir." + +#: install.php:174 +msgid "WARNING" +msgstr "LET OP" + +#: install.php:174 +msgid "PowerAdmin will not work until you delete install.php" +msgstr "Zolang install.php niet verwijderd is, werkt Poweradmin niet." + +#: install.php:176 +msgid "You can click" +msgstr "U kunt klikken" + +#: install.php:176 +msgid "to start using PowerAdmin" +msgstr "om met Poweradmin te starten" + +#: install.php:185 +msgid "You didnt fill in one of the required fields!" +msgstr "U heeft niet alle verplichte velden ingevuld!" + +#: install.php:193 inc/auth.inc.php:86 +msgid "PowerAdmin for PowerDNS" +msgstr "Poweradmin voor PowerDNS" + +#: install.php:195 +msgid "" +"This config file will setup your database to be ready for PowerAdmin. Please fill in the next fields which will create an\n" +"administrator login." +msgstr "" +"Deze configuratie file zal uw database voorbereiden voor Poweradmin. Vult u alstublief alle onderstaande velden in om een\n" +"beheerdersaccount aan te maken." + +#: install.php:197 +msgid "Fields marked with a" +msgstr "De velden gemarkeerd met een" + +#: install.php:197 +msgid "are required." +msgstr "zijn verplicht." + +#: install.php:202 +msgid "Login Name" +msgstr "Gebruikersnaam" + +#: install.php:205 +msgid "Email" +msgstr "E-mail" + +#: install.php:207 +msgid "Make Account" +msgstr "Aanmaken account" + #: search.php:38 msgid "Search zones or records" msgstr "Zones of records zoeken" @@ -338,14 +398,6 @@ msgid "Nothing found for query" msgstr "Niets gevonden voor criterium" -#: seq_update.php:26 -msgid "Synching databases. This is useful if you did manual insertions (in case you havent been here yet)." -msgstr "Synchroniseren databases. Dit is noodzakelijk als er handmatige toevoegingen hebben plaatsgevonden." - -#: seq_update.php:53 -msgid "All tables are successfully synchronized." -msgstr "Alle tabellen zijn succesvol gesynchroniseerd." - #: test_setup.php:58 msgid "Not all tables are ok!" msgstr "Niet alle tabellen zijn op orde!" @@ -374,35 +426,35 @@ msgid "Please fill in all fields" msgstr "u dient alle velden in te vullen" -#: users.php:68 +#: users.php:62 msgid "Current users (click to edit)" msgstr "Huidige gebruikers (aanklikken om te wijzigen)" -#: users.php:72 +#: users.php:66 msgid "Number of users" msgstr "Aantal gebruikers" -#: users.php:78 +#: users.php:72 msgid "Domains" msgstr "Zones" -#: users.php:78 +#: users.php:72 msgid "Domain list" msgstr "Zone overzicht" -#: users.php:78 +#: users.php:72 msgid "Level" msgstr "Gebruikersnivo" -#: users.php:78 +#: users.php:72 msgid "Status" msgstr "Status" -#: users.php:103 +#: users.php:97 msgid "Create new user" msgstr "Toevoegen nieuwe gebruiker" -#: users.php:112 +#: users.php:106 msgid "Add user" msgstr "Toevoegen gebruiker" @@ -415,10 +467,6 @@ msgstr "Authenticatie mislukt!" #: inc/auth.inc.php:86 -msgid "PowerAdmin for PowerDNS" -msgstr "PowerAdmin voor PowerDNS" - -#: inc/auth.inc.php:86 msgid "Please login" msgstr "Inloggen" @@ -430,10 +478,6 @@ msgid "Login" msgstr "Inloggen" -#: inc/database.inc.php:31 inc/toolkit.inc.php:149 -msgid "Oops! An error occured!" -msgstr "Oops! Er ging iets mis!" - #: inc/database.inc.php:33 inc/toolkit.inc.php:151 inc/toolkit.inc.php:187 msgid "back" msgstr "terug" diff -r ac0ca51809b1 -r 47dd15d8bb8c migrator.php-pa --- a/migrator.php-pa Wed Apr 18 22:48:49 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,129 +0,0 @@ - trancer nl> | -// | Sjeemz sjeemz nl> | -// +--------------------------------------------------------------------+ -// -// File: migrator.php -// Description: Migrates PowerAdmin 1.1.2 to the new 1.2 format - -if(!@include_once("inc/config.inc.php")) -{ - error("You have to create a config.inc.php!"); -} -require_once("inc/database.inc.php"); - -PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'error'); -function error($msg) -{ - // General function for printing critical errors. - include_once("inc/header.inc.php"); - ?> -

Oops! An error occured!

-
- - code) - { - case -19: - echo "

It seems you already have your PowerAdmin migrated because the tables cant be - altered. Another problem can be that you dont ALTER right on your database, - check this if you think your database doesnt have the proper format yet!

"; - break; - case -18: - echo "

One of the tables required doesnt exist, please run - test_setup.php.

PEAR::DB Error: " . $msg->getDebugInfo(); - break; - default: - echo "Unknown error, sorry: PEAR::DB Returned: " . $msg->getDebugInfo(); - break; - } - } - else - { - echo $msg; - } - ?> - -

<< back

- -

Success!

-
- -

- -

-
-

- << back -

-

- getCol("select id from zones"); - -foreach($zoneresult as $zr) -{ - // Look up the domain_id - $zonename = $db->getOne("select name from zones where zones.id=" . $zr); - // do a count, if the record already exists in the domains table, dont insert it - $dom_count = $db->query("select id from domains where name='$zonename'"); - if($dom_count->numRows() == 0) - { - $dom_id = $db->nextID("domains"); - $db->query("INSERT INTO domains(id, name, type) VALUES('$dom_id', '$zonename', 'NATIVE')"); - $db->query("UPDATE records SET domain_id=$dom_id where domain_id=$zr"); - $db->query("UPDATE zones SET name=$dom_id where id=$zr"); - } - else - { - $row = $dom_count->fetchRow(); - - $db->query('UPDATE records SET domain_id=' . $row["id"] . " where domain_id=$zr"); - $db->query('UPDATE zones SET name=' . $row['id'] . " where id=$zr"); - } -} - -if(!DB::isError($zoneresult)) -{ - $db->query("ALTER TABLE zones CHANGE name domain_id INT(11) NOT NULL"); - - message("Done updating your tables, enjoy your new PowerAdmin! - Please remove this file from your webdirectory!"); -} -else -{ - error("You seem to have no information in the table zones"); -} -?> diff -r ac0ca51809b1 -r 47dd15d8bb8c search.php --- a/search.php Wed Apr 18 22:48:49 2007 +0000 +++ b/search.php Sun Apr 22 07:20:09 2007 +0000 @@ -41,7 +41,7 @@


diff -r ac0ca51809b1 -r 47dd15d8bb8c seq_update.php --- a/seq_update.php Wed Apr 18 22:48:49 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ - trancer nl> | -// | Sjeemz sjeemz nl> | -// +--------------------------------------------------------------------+ -// -// File: seq_update.php -// Description: synches your database after manual insertions. -// Doesnt do much, just searches the highest record_id and updates the seq table with this - -require_once("inc/toolkit.inc.php"); -require_once("inc/header.inc.php"); - -// Ok we have to synch it all. -// What to do? Find the MAX(id) on each table and set it to the _seq table. - -echo "

" . _('Synching databases. This is useful if you did manual insertions (in case you havent been here yet).') . "

"; - -if(!level(10)) -{ - error(ERR_LEVEL_10); -} - -function seq_update(&$item) -{ - global $db; - $number_u = $db->getOne("SELECT MAX(id) FROM $item"); - if($number_u > 1) - { - echo $number_u; - $number_u_seq = $db->getOne("SELECT id FROM " . $item . "_seq"); - if($number_u_seq < $number_u) - { - $number_u += 1; - $db->query("UPDATE " . $item . "_seq SET id='$number_u'"); - } - } -} - -$tables = array('users', 'zones', 'records', 'domains'); - -array_walk($tables, 'seq_update'); - -message( _('All tables are successfully synchronized.') ); - -php?> diff -r ac0ca51809b1 -r 47dd15d8bb8c users.php --- a/users.php Wed Apr 18 22:48:49 2007 +0000 +++ b/users.php Sun Apr 22 07:20:09 2007 +0000 @@ -46,13 +46,7 @@ ?>