phpMyAdmin 2.2.0-final release
[phpmyadmin/crack.git] / Documentation.txt
blob2790ccc185e93dd1759554acc986caa8e239a428
2                         phpMyAdmin 2.2.0 Documentation
3                                        
4      * [1]Official phpMyAdmin project homepage    
5        http://www.phpwizard.net/projects/phpMyAdmin/
6      * [2]Sourceforge phpMyAdmin download page    
7        http://phpmyadmin.sourceforge.net/ 
8      * Local documents:
9           + Version history: [3]ChangeLog
10           + General notes: [4]README
11           + License: [5]LICENSE
12      * Documentation version: 
13        $Id$
14    ______________________________________________________________________
15    
16 Requirements
18      * PHP3 or PHP4: phpMyAdmin widely uses the 'str_replace()' php
19        function that was added in PHP 3.0.6, but was buggy up until
20        PHP 3.0.8. Then you should not run this script with PHP3 < 3.0.8.
21        PHP also needs to be compiled with mysql and PCRE support;
22      * MySQL (tested with 3.21.x, 3.22.x and 3.23.x);
23      * a web-browser (doh!).
24    ______________________________________________________________________
25    
26 Introduction
28    phpMyAdmin can administer a whole MySQL-server (needs a super-user)
29    but also a single database. To accomplish the latter you'll need a
30    properly set up MySQL-user who can read/write only the desired
31    database. It's up to you to look up the appropiate part in the MySQL
32    manual. Currently phpMyAdmin can:
33      * create and drop databases
34      * create, copy, drop and alter tables
35      * delete, edit and add fields
36      * execute any SQL-statement, even batch-queries
37      * manage keys on fields
38      * load text files into tables
39      * create (*) and read dumps of tables
40      * export (*) and import data to CSV values
41      * administer multiple servers and single databases
42      * communicate in more than 20 different languages
43        
44    (*)  phpMyAdmin can compress (GZip format -RFC 1952- or Bzip2) dumps
45    and CSV exports if you use PHP4 >= 4.0.4 with Zlib support
46    (--with-zlib) and/or Bzip2 support (--with-bz2).
47    ______________________________________________________________________
48    
49 Installation
51    Quick Install:
52     1. Untar or unzip the distribution (be sure to unzip the
53        subdirectories): tar xzvf phpMyAdmin_x.x.x.tar.gz
54     2. Open the file config.inc.php3 in your favourite editor and change
55        the values for host, user and password to fit your environment.
56        Have a look at Documentation.html for an explanation of all
57        values.
58     3. It is recommended that you protect the directory in which you
59        installed phpMyAdmin (unless it's on a closed intranet), for
60        example with HTTP-AUTH (in a .htaccess file). See the [30]FAQ
61        section for additional information.
62     4. Open the file <www.your-host.com>/<your-install-dir>/index.php3 in
63        your browser. phpMyAdmin should now display a welcome screen and
64        your databases, or a login dialog if using advanced
65        authentication.
66        
67    Upgrading from an older version:
68      * Please do not copy your older config.inc.php3 over the new one: it
69        may offer new configuration variables, and the new version may
70        depend on these for normal behavior. It is suggested instead to
71        insert your site values in the new one.
72    ______________________________________________________________________
73    
74 Configuration
76    All configurable data is placed in config.inc.php3.
77    
78    $cfgPmaAbsoluteUri string
79           Sets here the complete url (with full path) to your phpMyAdmin
80           version. E.g.
81           http://www.your_web.net/path_to_your_phpMyAdmin_directory/.
82           Don't forget the slash at the end of your url.
83           
84    $cfgServers array
85           Since version 1.4.2, phpMyAdmin supports the administration of
86           multiple MySQL servers. Therefore, a $cfgServers-array has been
87           added which contains the login information for the different
88           servers. $cfgServers[1]['host'] contains the hostname of the
89           first server, $cfgServers[2]['host'] the hostname of the second
90           server, etc. If you have only one server to administer, simply
91           leave free the hostname of the other $cfgServer-entries.
92           
93    $cfgServers[n]['host'] string
94           The hostname of your n-th MySQL-server. E.g. localhost.
95           
96    $cfgServers[n]['port'] string
97           The port-number of your n-th MySQL-server. Default is 3306
98           (leave blank).
99           
100    $cfgServers[n]['socket'] string
101           The path to the socket to use. Leave blank for default.
102           
103    $cfgServers[n]['connect_type'] string
104           What type connection to use with the MySQL server. Your options
105           are 'socket' & 'tcp'. It defaults to 'tcp' as that is nearly
106           guarenteed to be available on all MySQL servers, while sockets
107           are not supported on some platforms.
108           
109    $cfgServers[n]['adv_auth'] boolean
110           Whether basic or advanced authentication should be used for
111           this server.
112           Basic authentication ($adv_auth = false) is the plain old way:
113           username and password are stored in config.inc.php3. Advanced
114           authentication ($adv_auth = true) as introduced in 1.3.0 allows
115           you to log in as any valid MySQL user via HTTP-Auth.
116           Please note that this authentication mode is only supported
117           with PHP running as an Apache module, and not with cgi.
118           Using advanced authentication is recommended:
119           
120           + when phpMyAdmin is running in a multi-user environment where
121             people have shell-access that you don't want to know the
122             username/password for MySQL.
123           + when you want to give users access to their own database and
124             don't want them to play around with others.
125             
126           Advanced authentication is secure as the standard user needs
127           just read-only-access to the mysql database.
128           All you have to provide in config.inc is a standard user which
129           can connect to MySQL and read the mysql user/db table (see
130           $cfgServers[n]['stduser']).
131           See also the FAQ section for more information about security.
132           
133    $cfgServers[n]['stduser'] string
134           $cfgServers[n]['stdpass'] string
135           A user/password pair used to verify the real user/password pair
136           when using advanced authentication. This user must be able to
137           connect to MySQL and read the mysql user table.
138           Not needed when using basic authentication.
139           
140    $cfgServers[n]['user'] string
141           $cfgServers[n]['password'] string
142           The user/password-pair which phpMyAdmin will use to connect to
143           this MySQL-server when using basic authentication.
144           Not needed when using advanced authentication.
145           
146    $cfgServers[n]['only_db'] string or array
147           If set to a(an array of) database name(s), only this(these)
148           database(s) will be shown to the user.
149           
150    $cfgServers[n]['verbose'] string
151           Only useful when using phpMyAdmin with multiple server entries.
152           If set, this string will be displayed instead of the hostname
153           in the pulldown menu on the main page. This can be useful if
154           you want to show only certain databases on your system, for
155           example.
156           
157    $cfgServers[n]['bookmarkdb'] string
158           $cfgServers[n]['bookmarktable'] string
159           Since release 2.2.0 phpMyAdmin allows to bookmark queries. This
160           can be useful for queries you often run.
161           To use this functionality you have to:
162           
163           + create a table following this scheme:
164                  CREATE TABLE bookmark (
165                    id int(11) DEFAULT '0' NOT NULL auto_increment,
166                    dbase varchar(255) NOT NULL,
167                    user varchar(255) NOT NULL,
168                    label varchar(255) NOT NULL,
169                    query text NOT NULL,
170                    PRIMARY KEY (id)
171                  );
172           + then complete the two variables $cfgServers[n]['bookmarkdb']
173             and $cfgServers[n]['bookmarktable'] so phpMyAdmin will be
174             able to find the bookmark table.
175             
176           If you are using advanced authentication, stduser must have
177           Select_Priv, Insert_Priv and Delete_Priv set to "Y" in mysql.db
178           table for the bookmark database.
179           
180    $cfgServerDefault integer
181           If you have more than one server configured, you can set
182           $cfgServerDefault to any one of them to autoconnect to that
183           server when phpMyAdmin is started, or set it to 0 to be given a
184           list of servers without logging in.
185           If you have only one server configured, $cfgServerDefault MUST
186           be set to that server.
187           
188    $cfgConfirm boolean
189           Whether a warning ("Are your really sure..") should be
190           displayed when you're about to loose data.
191           
192    $cfgPersistentConnections boolean
193           Whether persistent connections should be used or not
194           (mysql_connect or mysql_pconnect).
195           
196    $cfgShowBlob boolean
197           Defines whether BLOB fields are shown when browsing a table's
198           content or not.
199           
200    $cfgProtectBlob boolean
201           Defines whether BLOB fields are protected from edition when
202           browsing a table's content or not.
203           
204    $cfgAllowUserDropDatabase boolean
205           Defines whether standard users (non administrator) are allowed
206           to delete their own database or not. If set as FALSE, the link
207           "Drop Database" will not be shown, and even a "DROP DATABASE
208           mydatabase" will be rejected. Quite practical for ISP's with
209           many customers.
210           
211    $cfgShowSQL boolean
212           Defines whether sql-queries generated by phpMyAdmin should be
213           displayed or not.
214           
215    $cfgSkipLockedTables boolean
216           Mark used tables and make it possible to show databases with
217           locked tables (since 3.23.30).
218           
219    $cfgMaxRows integer
220           Number of rows displayed when browsing a resultset. If the
221           resultset contains more rows, Previous/Next links will be
222           shown.
223           
224    $cfgOrder string [DESC|ASC|SMART]
225           Defines whether fields are displayed in ascending (ASC) order,
226           in descending (DESC) order or in a "smart" (SMART) order -ie
227           descending order for fields of type TIME, DATE, DATETIME &
228           TIMESTAMP, ascending order else- by default.
229           
230    $cfgOBGzip boolean
231           Defines whether to use gzip output buffering for increased
232           speed in HTTP transfers.
233           
234    $cfgGZipDump boolean
235           $cfgBZipDump boolean
236           Defines whether to allow the use of gzip/bzip compression when
237           creating a dump file or not.
238           
239    $cfgManualBase string
240           If set to an URL which points to the MySQL documentation,
241           appropriate help links are generated.
242           
243    $cfgDefaultLang string
244           Defines the default language to use, if not browser-defined or
245           user-defined.
246           See the select_lang.inc.php3 script to know the valid values
247           for this setting.
248           
249    $cfgLang string
250           Force: always use this language (must be defined in the
251           select_lang.inc.php3 script).
252           
253    $cfgBorder integer
254           The size of a table's border.
255           
256    $cfgThBgcolor string [HTML color]
257           The color (HTML) used for table headers.
258           
259    $cfgBgcolorOne string [HTML color]
260           The color (HTML) #1 for table rows.
261           
262    $cfgBgcolorTwo string [HTML color]
263           The color (HTML) #2 for table rows.
264           
265    $cfgTextareaCols integer
266           $cfgTextareaRows integer
267           Number of columns and rows for the textareas.
268           
269    $cfgLimitChars integer
270           Maximal number of Chars showed in a TEXT field on browse view.
271           Can be turned off by a toggle button on the browse page.
272           
273    $cfgModifyDeleteAtLeft boolean
274           $cfgModifyDeleteAtRight boolean
275           Defines the place where modify and delete links would be put
276           when tables contents are displayed (you may have them displayed
277           both at the left and at the right).
278           
279    $cfgLeftWidth integer
280           Left frame width in pixel.
281           
282    $cfgColumnTypes array
283           All possible types of a MySQL column. In most cases you don't
284           need to edit this.
285           
286    $cfgAttributeTypes array
287           Possible attributes for fields. In most cases you don't need to
288           edit this.
289           
290    $cfgFunctions array
291           A list of functions MySQL supports. In most cases you don't
292           need to edit this.
293    ______________________________________________________________________
294    
295 FAQ - Frequently Asked Questions
297    The error message "Warning: Cannot add header information - headers
298    already sent by ..." is displayed, what's the problem?
299    Look at the end of your config.inc.php or .php3 file, there must be no
300    blank lines or spaces after the ?>.
301    
302    I can't insert new rows into a table - MySQL brings up a SQL-error.
303    Examine the SQL error with care. I've found that many programmers
304    specifying a wrong field-type.
305    Common errors include:
306      * Using VARCHAR without a size argument
307      * Using TEXT or BLOB with a size argument
308        
309    Also, look at the syntax chapter in the MySQL manual to confirm that
310    your syntax is correct.
311    
312    phpMyAdmin can't connect to MySQL. What's wrong?
313    Either there is an error with your PHP setup or your username/password
314    is wrong. Try to make a small script which uses mysql_connect and see
315    if it works. If it doesn't, it may be you haven't even compiled MySQL
316    support into PHP.
317    
318    The error message "Warning: MySQL Connection Failed: Can't connect to
319    local MySQL server through socket '/tmp/mysql.sock' (111)...") is
320    displayed. What can I do?
321    Here is a fix suggested by Brad Ummer in the [47]phpwizard forum:
322      * First, you need to determine what socket is being used by MySQL.
323        To do this, telnet to your server and go to the MySQL bin
324        directory. In this directory there should be a file named
325        mysqladmin. Type ./mysqladmin variables, and this should give you
326        a bunch of info about your MySQL server, including the socket
327        (/tmp/mysql.sock, for example).
328      * Then, you need to tell PHP to use this socket.
329        Assuming you are using PHP 3.0.10 or better, you can specify the
330        socket to use when you open the connection. To do this in
331        phpMyAdmin, you need to complete the socket information in the
332        config.inc.php3.
333        For example: $cfgServers[n]['socket'] = '/tmp/mysql.sock';
334        
335    phpMyAdmin always gives "Access denied" when using advanced
336    authentication.
337    This could happen for some reasons:
338      * $stduser/$stdpassword is wrong. Try to turn off $adv_auth and use
339        this username and password to connect to MySQL.
340      * The username/password your specify in the login-dialog is wrong.
341        Try the same as above and see if it works.
342      * You have already setup a security mechanism for the
343        phpMyAdmin-directory, eg. a .htaccess file. This would interfere
344        with phpMyAdmin's authentication, so remove it.
345        
346    When using advanced authentication, an user who logged out can not
347    relogs in with the same nick.
348    This is related to the authentication mechanism (protocol) used by
349    phpMyAdmin. We plan to change it as soon as we may find enough free
350    time to do it, but you can bypass this problem: just close all the
351    opened browser windows and then go back to phpMyAdmin. You should be
352    able to logs in again.
353    
354    I would like to help out with the development of phpMyAdmin. How
355    should I proceed?
356    The following method is preferred for new developers:
357      * fetch the current CVS tree over anonymous CVS:
358        cvs
359        -d:pserver:anonymous@cvs.phpmyadmin.sourceforge.net:/cvsroot/phpmy
360        admin login
361        [Password: simply press the Enter key]
362        cvs -z3
363        -d:pserver:anonymous@cvs.phpmyadmin.sourceforge.net:/cvsroot/phpmy
364        admin checkout phpMyAdmin
365        [This will create a new sub-directory named phpMyAdmin]
366      * add your stuff
367      * put the modified files (tar'ed and gzip'ed) inside the patch
368        tracker of the [48]phpMyAdmin SourceForge account.
369        
370    Write access to the CVS tree is granted only to experienced developers
371    who have already contributed something useful to phpMyAdmin.
372    Also, have a look at the [49]Developers section.
373    
374    What's the preferred way of making phpMyAdmin secure against evil
375    access?
376    This depends on your system.
377    If you're running a server which cannot be accessed by other people,
378    it's sufficient to use the directory protection bundled with your
379    webserver (with Apache you can use .htaccess files, for example).
380    If other people have telnet access to your server, you should use
381    phpMyAdmin's advanced authentication feature.
382    Suggestions:
383      * Your config.inc.php3 file should be chmod 660.
384      * All your phpMyAdmin files should be chown phpmy.apache, where
385        phpmy is a user whose password is only known to you, and apache is
386        the group under which Apache runs.
387      * You should use PHP safe mode, to protect from other users that try
388        to include your config.inc.php3 in their scripts.
389        
390    How can I insert a null value into my table?
391    Enter "null", without the quotes, as the field's value. This is
392    especially useful for Timestamp or AutoIncrement fields.
393    
394    I'm an ISP. Can I setup one central copy of phpMyAdmin or do I need to
395    install it for each customer?
396    Since version 2.0.3, you can setup a central copy of phpMyAdmin for
397    all your users. The development of this feature was kindly sponsored
398    by NetCologne GmbH.
399    This requires a properly setup MySQL user management and phpMyAdmin's
400    advanced authentication. phpMyAdmin performs these steps, when
401    authenticating a user:
402     1. Select all entries from the mysql.user table where the
403        username/password matches the challenging user. If no rows are
404        returned, the authentication has failed. Otherwise, phpMyAdmin
405        continues with step 2.
406     2. If the user's global Select_Priv is "N" (ie the user is not
407        allowed to access all databases), phpMyAdmin searches the mysql.db
408        table for entries with Select_Priv = "Y" belonging to the user. If
409        no entries are found, the authentication has failed. Otherwise,
410        phpMyAdmin shows all databases the user is allowed to view.
411        If the user's global Select_Priv is "Y", all databases in the
412        system are shown.
413        
414    This means that you need to add a user to the mysql database as
415    following:
416    INSERT INTO user (Host, User, Password, Select_priv, Insert_priv,
417    Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv,
418    Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv,
419    Index_priv, Alter_priv) VALUES ('localhost', 'foo', PASSWORD('bar'),
420    'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N')
421    INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv,
422    Delete_priv, Create_priv, Drop_priv, Grant_priv, References_priv,
423    Index_priv, Alter_priv) VALUES ('localhost', 'foo_db', 'foo', 'Y',
424    'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '')
425    Then only the "foo_db" database will be displayed to user "foo".
426    
427    How can I GZip or Bzip a dump or a CSV export. It seem to not work?
428    These features are based on the gzencode() and bzcompress() php
429    functions to be more independent of the platform (Unix/Windows, Safe
430    Mode or not, and so on). So, you must have PHP4 >= 4.0.4 and
431    Zlib/Bzip2 support (--with-zlib and --with-bz2).
432    
433    I try to insert a text file in a table, and I get:
434    Error MySQL said: The file '/tmp/phpkvpp60' must be in the database
435    directory or be readable by all
436    Your uploaded file is saved by PHP in the "upload dir", as defined in
437    php.ini by the variable upload_tmp_dir (usually the system default is
438    /tmp). If this directory is not readable by all, the MySQL server
439    (which must be running on the same machine) cannot open the file
440    (except if running as root, which is not recommended).
441    The system administrator can do a "chmod 777 /tmp": then the MySQL
442    server will accept to read it. Also, the user must have File
443    privilege.
444    
445    I'm having troubles when uploading files. In general file uploads
446    don't work on my system and uploaded files have a Content-Type: header
447    in the first line.
448    It's not really phpMyAdmin related but RedHat 7.0. You have a RedHat
449    7.0 and you updated your php rpm to php-4.0.4pl1-3.i386.rpm, didn't
450    you?
451    So the problem is that this package has a serious bug that was
452    corrected ages ago in php (2001-01-28: see [50]php's bug tracking
453    system for more details). The problem is that the bugged package is
454    still available though it was corrected (see [51]redhat's bugzilla for
455    more details).
456    So please download [52]the fixed package and the problem should go
457    away.
458    And that fixes the \r\n problem with file uploads!
459    
460    When I create a table, I click the Index checkbox for 2 fields and
461    phpMyAdmin generates only one index with those 2 fields.
462    In phpMyAdmin 2.2.0, this is the way to create a multi-fields index.
463    If you want two indexes, create the first one when creating the table,
464    save, then display the table properties and click the Index link to
465    create the other index.
466    
467    I get an out of memory error, and my controls are non-functional, when
468    trying to create a table with more than 14 fields.
469    This is a problem under investigation. Seems to be OS and/or browser-
470    dependent. For now, create a smaller number of fields, then come back
471    to your table properties and add the other fields.
472    
473    I have found a bug. How do I inform developpers?
474    Our Bug Tracker is located at
475    [53]http://sourceforge.net/projects/phpmyadmin under the Bugs section.
476    But please first discuss your bug with other users:
477    [54]http://sourceforge.net/projects/phpmyadmin (and choose Forums)
478    [55]http://www.phpwizard.net/projects/phpMyAdmin (and choose Support
479    Forum)
480    ______________________________________________________________________
481    
482 Developers Information
484    phpMyAdmin is Open Source, so you're invited to contribute to it. Many
485    great features have been written by other people and you too can help
486    to make phpMyAdmin a useful tool.
487    
488    If you're planning to contribute source, please read the following
489    information:
490      * All files include header.inc.php3 (layout), lib.inc.php3 (common
491        functions) and config.inc.php3.
492        All configuration data belongs in config.inc.php3. Please keep it
493        free from other code.
494        Commonly used functions should be added to lib.inc.php3.
495      * Obviously, you're free to use whatever coding style you want. But
496        please try to keep your code as simple as possible: beginners are
497        using phpMyAdmin as an example application.
498        By the way, we're currently updating all the scripts so they will
499        be XHTML1.0 and CSS2 compliant on one hand, they will fit [64]PEAR
500        coding standards on the other hand. Please pay attention to this.
501      * Please try to keep up the file-naming conventions. Table-related
502        stuff goes to tbl_*.php3, db-related code to db_*.php3 and so on.
503      * Please don't use verbose strings in your code, instead add the
504        string (at least) to english.inc.php3 and print() it out.
505      * If you want to be really helpful, write an entry for the
506        ChangeLog.
507        
508    IMPORTANT: With 1.4.1, development has switched to CVS. The following
509    method is preferred for new developers:
510      * fetch the current CVS tree over anonymous CVS:
511        cvs
512        -d:pserver:anonymous@cvs.phpmyadmin.sourceforge.net:/cvsroot/phpmy
513        admin login
514        [Password: simply press the Enter key]
515        cvs -z3
516        -d:pserver:anonymous@cvs.phpmyadmin.sourceforge.net:/cvsroot/phpmy
517        admin checkout phpMyAdmin
518        [This will create a new sub-directory named phpMyAdmin]
519      * add your stuff
520      * put the modified files (tar'ed and gzip'ed) inside the patch
521        tracker of the phpMyAdmin SourceForge account
522        ([65]http://sourceforge.net/projects/phpmyadmin/)
523        
524    Write access to the CVS tree is granted only to developers who have
525    already contributed something useful to phpMyAdmin. If you're
526    interested in that, please contact us using the phpmyadmin-devel
527    mailing list.
528    ______________________________________________________________________
529    
530 Credits
533 phpMyAdmin - Credits
534 ====================
536 CREDITS, in chronological order
537 -------------------------------
539 [tr] - Tobias Ratschiller <tobias_at_phpwizard.net>
540         * creator of the phpmyadmin project
541         * maintainer from 1998 to summer 2000
543 [md] - Marc Delisle <DelislMa_at_CollegeSherbrooke.qc.ca>
544         * multi-language version
545         * various fixes and improvements
547 [om] - Olivier Müller <om_at_omnis.ch>
548         * started SourceForge phpMyAdmin project in March 2001
549         * sync'ed different existing CVS trees with new features and bugfixes
550         * multi-language improvements, dynamic language selection
551         * current project maintainer, with Marc and Loic
553 [lc] - Loïc Chapeaux <lolo_at_phpheaven.net>
554         * rewrote and optimized javascript, DHTML and DOM stuff
555         * started to rewrite the scripts so they fit the PEAR coding standards
556           and generate XHTML1.0 and CSS2 compliant codes
557         * improved the language detection system
558         * many bugfixes and improvements
560 [rj] - Robin Johnson <robbat2_at_users.sourceforge.net>
561         * database maintence controls
562         * table type code
564 [af] - Armel Fauveau <armel.fauveau_at_globalis-ms.com>
565         * bookmarks feature
566         * multiple dump feature
567         * gzip dump feature
569 [gl] - Geert Lund <glund_at_silversoft.dk>
570         * various fixes
571         * moderator of the phpMyAdmin users forum at phpwizard.net
573 [kc] - Korakot Chaovavanich <korakot_at_iname.com>
574         * "insert as new row" feature
576 [pk] - Pete Kelly <webmaster_at_trafficg.com>
577         * rewrote and fix dump code
578         * bugfixes
580 [sa] - Steve Alberty <alberty_at_neptunlabs.de>
581         * rewrote dump code for PHP4
582         * mySQL table statistics
583         * bugfixes
585 [bg] - Benjamin Gandon <gandon_at_isia.cma.fr>
586         * main author of the version 2.1.0.1
587         * bugfixes
590 The following people have contributed minor changes, enhancements, bugfixes or
591 or support for a new language since version 2.1.0:
592 Ricardo ?, Sven-Erik Andersen, Alessandro Astarita, Borges Botelho,
593 Olivier Bussier, Michal Cihar, Neil Darlow, Kristof Hamann, Thomas Kläger,
594 Lubos Klokner, Martin Marconcini, Girish Nair, David Nordenberg,
595 Bernard M. Piller, Laurent Haas, "Sakamoto", www.securereality.com.au,
596 Michael Tacelosky, Daniel Villanueva, Vinay, Ignacio Vazquez-Abrams,
597 Chee Wai, Jakub Wilk, Thomas Michael Winningham.
600 Original Credits of Version 2.1.0
601 ---------------------------------
603     This work is based on Peter Kuppelwieser's MySQL-Webadmin. It was his idea
604     to create a web-based interface to MySQL using PHP3. Although I have not
605     used any of his source-code, there are some concepts I've borrowed from
606     him. phpMyAdmin was created because Peter told me he wasn't going to
607     further develop his (great) tool.
608     Thanks go to
609     - Amalesh Kempf <ak-lsml_at_living-source.com> who contributed the
610       code for the check when dropping a table or database. He also suggested
611       that you should be able to specify the primary key on tbl_create.php3. To
612       version 1.1.1 he contributed the ldi_*.php3-set (Import text-files) as
613       well as a bug-report. Plus many smaller improvements.
614     - Jan Legenhausen <jan_at_nrw.net>: He made many of the changes that
615       were introduced in 1.3.0 (including quite significant ones like the
616       authentication). For 1.4.1 he enhanced the table-dump feature. Plus
617       bug-fixes and help.
618     - Marc Delisle <DelislMa_at_CollegeSherbrooke.qc.ca> made phpMyAdmin
619       language-independent by outsourcing the strings to a separate file. He
620       also contributed the French translation.
621     - Alexandr Bravo <abravo_at_hq.admiral.ru> who contributed
622       tbl_select.php3, a feature to display only some fields from a table.
623     - Chris Jackson <chrisj_at_ctel.net> added support for MySQL
624       functions in tbl_change.php3. He also added the "Query by Example"
625       feature in 2.0.
626     - Dave Walton <walton_at_nordicdms.com> added support for multiple
627       servers and is a regular contributor for bug-fixes.
628     - Gabriel Ash <ga244_at_is8.nyu.edu> contributed the random access
629       features for 2.0.6.
630     The following people have contributed minor changes, enhancements, bugfixes
631     or support for a new language:
632     Jim Kraai, Jordi Bruguera, Miquel Obrador, Geert Lund, Thomas Kleemann,
633     Alexander Leidinger, Kiko Albiol, Daniel C. Chao, Pavel Piankov,
634     Sascha Kettler, Joe Pruett, Renato Lins, Mark Kronsbein, Jannis Hermanns,
635     G. Wieggers.
637     And thanks to everyone else who sent me email with suggestions, bug-reports
638     and or just some feedback.
639    ______________________________________________________________________
640    
641                                 [82]Valid XHTML 1.0!      [83]Valid CSS! 
643 References
645    1. http://www.phpwizard.net/projects/phpMyAdmin/
646    2. http://phpmyadmin.sourceforge.net/
647   47. http://www.phpwizard.net/phorum/list.php?f=1
648   48. https://sourceforge.net/projects/phpmyadmin/
649   50. http://www.php.net/bugs.php?id=8966
650   51. http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=24933
651   52. http://people.redhat.com/nalin/test/php-4.0.4pl1-7.i386.rpm
652   53. http://sourceforge.net/projects/phpmyadmin
653   54. http://sourceforge.net/projects/phpmyadmin
654   55. http://www.phpwizard.net/projects/phpMyAdmin
655   64. http://pear.php.net/
656   65. http://sourceforge.net/projects/phpmyadmin/
657   82. http://validator.w3.org/check/referer
658   83. http://jigsaw.w3.org/css-validator/