2.3.1-rc1
[phpmyadmin/crack.git] / Documentation.html
blobc2035cca554f33f81c24739f96b34e8ec2028bde
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
4 <!-- $Id$ -->
6 <head>
7 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
8 <title>phpMyAdmin 2.3.1-rc1 - Documentation</title>
9 <style type="text/css">
10 <!--
11 .navigation {
12 font-family: Verdana, Arial, Helvetica, sans-serif;
13 text-decoration: none;
14 font-size: 10pt;
15 color: #000099;
16 font-weight: normal;
18 .navigation:hover {
19 background-color: #99CCFF;
20 font-weight: bolder;
22 .navigation2 {
23 font-family: Verdana, Arial, Helvetica, sans-serif;
24 text-decoration: none;
25 font-size: 14pt;
26 color: #000099;
27 font-weight: normal;
29 .navigation2:hover {
30 background-color: #99CCFF;
31 font-weight: bolder
33 h1 {
34 font-family: Verdana, Arial, Helvetica, sans-serif;
35 font-size: x-large;
36 font-weight: bold;
37 color: #000066;
39 .simple {
40 font-family: Arial, Helvetica, sans-serif;
41 font-size: smaller;
42 color: #000000;
44 body {
45 font-family: Arial, Helvetica, sans-serif;
46 font-size: 10pt;
48 td {
49 font-family: Arial, Helvetica, sans-serif;
50 font-size: 10pt;
52 ul {
53 font-family: Arial, Helvetica, sans-serif;
54 font-size: 10pt;
56 ol {
57 font-family: Arial, Helvetica, sans-serif;
58 font-size: 10pt;
60 p {
61 font-family: Arial, Helvetica, sans-serif;
62 font-size: 10pt;
64 h2 {
65 font-family: Verdana, Arial, Helvetica, sans-serif;
66 font-size: large;
67 font-weight: bold;
68 color: #000066;
69 page-break-before: right;
71 //-->
72 </style>
73 </head>
75 <body bgcolor="#FFFFFF">
76 <a name="top"></a>
77 <h1>phpMyAdmin 2.3.1-rc1 Documentation</h1>
80 <!-- TOP MENU -->
81 <ul>
82 <li>
83 <a class="navigation" href="http://www.phpmyadmin.net/">
84 Sourceforge phpMyAdmin project page&nbsp;&nbsp;&nbsp;[ http://www.phpmyadmin.net/ ]</a>
85 </li>
86 <li>
87 Local documents:
88 <ul>
89 <li>Version history: <a class="navigation" href="ChangeLog">ChangeLog</a></li>
90 <li>General notes: <a class="navigation" href="README">README</a></li>
91 <li>License: <a class="navigation" href="LICENSE">LICENSE</a></li>
92 </ul>
93 </li>
94 <li>
95 Documentation version:
96 <i>$Id$</i>
97 </li>
98 </ul>
101 <!-- REQUIREMENTS -->
102 <a name="require"></a><br />
103 <hr noshade="noshade" width="100%" />
104 <font size="+1">
105 <a class="navigation2" href="#top">Top</a> &nbsp;-&nbsp;
106 <a class="navigation2" href="#require">Requirements</a> &nbsp;-&nbsp;
107 <a class="navigation2" href="#intro">Introduction</a> &nbsp;-&nbsp;
108 <a class="navigation2" href="#setup">Installation</a> &nbsp;-&nbsp;
109 <a class="navigation2" href="#config">Configuration</a> &nbsp;-&nbsp;
110 <a class="navigation2" href="#faq">FAQ</a> &nbsp;-&nbsp;
111 <a class="navigation2" href="#developers">Developers</a> &nbsp;-&nbsp;
112 <a class="navigation2" href="#credits">Credits</a>
113 </font>
114 <hr noshade="noshade" width="100%" />
116 <h2>Requirements</h2>
118 <ul>
119 <li>
120 PHP3 or PHP4: phpMyAdmin widely uses the 'str_replace()' php function
121 that was added in PHP&nbsp;3.0.6, but was buggy up until
122 PHP&nbsp;3.0.8.
123 Then <font color="#bb0000">you should not run this script with
124 PHP3&nbsp;&lt;&nbsp;3.0.8</font>.<br />
125 PHP also needs to be <font color="#bb0000">compiled with MySQL
126 support</font>;
127 </li>
128 <li>
129 MySQL (tested with 3.21.x, 3.22.x, 3.23.x and 4.0.x);
130 </li>
131 <li>
132 a web-browser (doh!).
133 </li>
134 </ul>
137 <!-- INTRODUCTION -->
138 <a name="intro"></a><br />
139 <hr noshade="noshade" width="100%" />
140 <font size="+1">
141 <a class="navigation2" href="#top">Top</a> &nbsp;-&nbsp;
142 <a class="navigation2" href="#require">Requirements</a> &nbsp;-&nbsp;
143 <a class="navigation2" href="#intro">Introduction</a> &nbsp;-&nbsp;
144 <a class="navigation2" href="#setup">Installation</a> &nbsp;-&nbsp;
145 <a class="navigation2" href="#config">Configuration</a> &nbsp;-&nbsp;
146 <a class="navigation2" href="#faq">FAQ</a> &nbsp;-&nbsp;
147 <a class="navigation2" href="#developers">Developers</a> &nbsp;-&nbsp;
148 <a class="navigation2" href="#credits">Credits</a>
149 </font>
150 <hr noshade="noshade" width="100%" />
152 <h2>Introduction</h2>
155 phpMyAdmin can manage a whole MySQL-server (needs a super-user)
156 but also a single database. To accomplish the latter you'll need
157 a properly set up MySQL-user who can read/write only the desired
158 database. It's up to you to look up the appropriate part in the
159 MySQL manual. Currently phpMyAdmin can:
160 </p>
162 <ul>
163 <li>create and drop databases</li>
164 <li>create, copy, drop and alter tables</li>
165 <li>delete, edit and add fields</li>
166 <li>execute any SQL-statement, even batch-queries</li>
167 <li>manage keys on fields</li>
168 <li>load text files into tables</li>
169 <li>create (*) and read dumps of tables</li>
170 <li>export (*) and import data to CSV values</li>
171 <li>administer multiple servers and single databases</li>
172 <li>check referential integrity</li>
173 <li>create complex queries automatically connecting required tables</li>
174 <li>create PDF graphics of your Database layout</li>
175 <li>
176 communicate in more than
177 <a class="navigation" href="./translators.html">41 different languages</a>
178 </li>
179 </ul>
181 <table border="0" cellspacing="0" cellpadding="0">
182 <tr>
183 <td valign="top">(*)&nbsp;</td>
184 <td>
185 phpMyAdmin can compress (Zip, GZip -RFC 1952- or Bzip2 formats) dumps
186 and CSV exports if you use PHP4&nbsp;>=&nbsp;4.0.4 with Zlib support
187 (<tt>--with-zlib</tt>) and/or Bzip2 support (<tt>--with-bz2</tt>).
188 </td>
189 </tr>
190 </table>
193 <!-- INSTALLATION -->
194 <a name="setup"></a><br />
195 <hr noshade="noshade" width="100%" />
196 <font size="+1">
197 <a class="navigation2" href="#top">Top</a> &nbsp;-&nbsp;
198 <a class="navigation2" href="#require">Requirements</a> &nbsp;-&nbsp;
199 <a class="navigation2" href="#intro">Introduction</a> &nbsp;-&nbsp;
200 <a class="navigation2" href="#setup">Installation</a> &nbsp;-&nbsp;
201 <a class="navigation2" href="#config">Configuration</a> &nbsp;-&nbsp;
202 <a class="navigation2" href="#faq">FAQ</a> &nbsp;-&nbsp;
203 <a class="navigation2" href="#developers">Developers</a> &nbsp;-&nbsp;
204 <a class="navigation2" href="#credits">Credits</a>
205 </font>
206 <hr noshade="noshade" width="100%" />
208 <h2>Installation</h2>
211 <font color="#bb0000">NOTE: phpMyAdmin does not apply any special security
212 methods to the MySQL database server. It is still the sysadmin's job to
213 grant permissions on the MySQL databases properly. </font>phpMyAdmin's
214 &quot;Users&quot; page can be used for this.
215 </p>
218 <font color="#bb0000">Warning for Mac users:</font>if you are on a MacOS
219 version before OS X, Stuffit unstuffs with Mac formats.<br />
220 So you'll have to resave as in Bbedit to unix style ALL phpMyAdmin scripts
221 before uploading them to your server, as PHP seems not to like Mac-style
222 end of lines character (&quot;<tt>\r</tt>&quot;).
223 </p>
226 <font color="#bb0000">Documentation warning:</font> when you see in this
227 document a <i>.php3</i> file extension, please transpose to <i>.php</i>
228 if you are using a kit with files having this extension.
229 </p>
231 <p><b>Quick Install:</b></p>
232 <ol>
233 <li> Choose and download a distribution kit with the files having the
234 extension (<i>.php3</i> or <i>.php</i>) depending on the way your
235 web/PHP server interprets those extensions.</li>
236 <li> Untar or unzip the distribution (be sure to unzip the subdirectories):
237 <tt>tar xzvf phpMyAdmin_x.x.x.tar.gz</tt> in your webserver's
238 document root. If you don't have direct access to your document root,
239 put the files in a directory on your local machine, and, after step 3,
240 transfer the directory on your web server using, for example, ftp.</li>
241 <li> Open the file config.inc.php3 in your favourite editor and change
242 the values for host, user, password and authentication mode to fit
243 your environment.
244 Also insert the correct value for <tt>$cfg['PmaAbsoluteUri']</tt>.
245 Have a look at
246 <a class="navigation" href="#config">Configuration section</a> for an
247 explanation of all values.</li>
248 <li> It is recommended that you protect the directory in which you
249 installed phpMyAdmin (unless it's on a closed intranet, or you wish to
250 use http or cookie authentication), for example with HTTP-AUTH (in a
251 <i>.htaccess</i> file). See the
252 <a class="navigation" href="#faq">FAQ section</a> for additional
253 information.</li>
254 <li> Open the file
255 <i>&lt;www.your-host.com&gt;/&lt;your-install-dir&gt;/index.php3</i>
256 in your browser. phpMyAdmin should now display a welcome screen
257 and your databases, or a login dialog if using http or cookie
258 authentication mode.</li>
259 </ol>
261 <p><b>Upgrading from an older version:</b></p>
262 <ul>
263 <li>Please do not copy your older config.inc.php3 over the new one: it may
264 offer new configuration variables, and the new version may depend on
265 these for normal behavior. It is suggested instead to insert your site
266 values in the new one.</li>
267 </ul>
269 <p><b>Using authentication modes:</b></p>
270 <ul>
271 <li>Http and cookie authentication modes are recommended in a multi-user
272 environment where you want to give users access to their own database
273 and don't want them to play around with others.
274 <br />
275 Nevertheless be aware that MS Internet Explorer seems to be really
276 buggy about cookies, at least till version 6. And php 4.1.1 is also a
277 bit buggy in this area!<br /><br /></li>
279 <li>Http and cookie authentication modes are more secure: the MySQL
280 password does not need to be set in the phpMyAdmin configuration file
281 (except for the &quot;controluser&quot; -see the
282 <a class="navigation" href="#config">Configuration section</a>-).
283 <br />
284 However, keep in mind that the password travels in plain text, unless
285 you are using the https protocol.
286 <br />
287 In cookie mode, we send the password in a temporary cookie, so most
288 browsers should not store the password in their cookie file.
289 <br /><br /></li>
291 <li>
292 For 'http' and 'cookie' modes, phpMyAdmin needs a controluser that has
293 <b>only</b> the <tt>SELECT</tt> privilege on the <i>mysql.user (all
294 columns except &quot;Password&quot;)</i>, <i>mysql.db (all columns)</i>
295 &amp; <i>mysql.tables_priv (all columns except &quot;Grantor&quot;
296 &amp; &quot;Timestamp&quot;) </i>tables.<br />
297 You must specify the details for the controluser in the
298 <i>config.inc.php3</i> file under the
299 <tt>$cfg['Servers'][$i]['controluser']</tt>&amp;
300 <tt>$cfg['Servers'][$i]['controlpass']</tt> settings.<br />
301 This example assumes you want to use <tt>pma</tt> as the controluser
302 and <tt>pmapass</tt> as the controlpass:<br />
303 <table border="0">
304 <tr>
305 <td>&nbsp;&nbsp;&nbsp;</td>
306 <td>
307 <tt>GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';</tt><br />
308 <tt>GRANT SELECT (Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv) ON mysql.user TO 'pma'@'localhost';</tt><br />
309 <tt>GRANT SELECT ON mysql.db TO 'pma'@'localhost';</tt><br />
310 <tt>GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv) ON mysql.tables_priv TO 'pma'@'localhost';</tt>
311 </td>
312 </tr>
313 <tr>
314 <td colspan="2">
315 ... and if you want to use the many new relation and bookmark
316 features:
317 </td>
318 </tr>
319 <tr>
320 <td>&nbsp;&nbsp;&nbsp;</td>
321 <td>
322 <tt>GRANT SELECT, INSERT, UPDATE, DELETE ON &lt;pma_db&gt; TO 'pma'@'localhost';</tt>
323 (this of course requires you to have a special DB for
324 phpMyAdmin, the contents will be explained later)
325 </td>
326 </tr>
327 </table>
328 <br />
329 </li>
330 <li>
331 Then each of the <i>true</i> users should be granted of a set of
332 privileges on a set of particular databases but shouldn't have any
333 global privileges. For example, to grant the user <i>real_user</i> with
334 all privileges on the database <i>user_base</i>:<br />
335 &nbsp;&nbsp;&nbsp;<tt>GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost IDENTIFIED BY 'real_password';</tt>
336 <br />
337 What the user may now do is controlled entirely by the MySQL user
338 management system.<br />
339 With http or cookie auth mode, you don't need to fill the user/password
340 fields inside the <tt>$cfg['Servers']</tt> array.<br />
341 </li>
342 </ul>
344 <p><b>'http' authentication mode:</b></p>
345 <ul>
346 <li>Was called 'advanced' in versions before 2.2.3.</li>
347 <li>Introduced in 1.3.0, it uses Basic HTTP authentication method and
348 allows you to login as any valid MySQL user.</li>
349 <li>Is only supported with PHP running as an Apache module, not with
350 cgi.</li>
351 </ul>
353 <p><b>'cookie' authentication mode:</b></p>
354 <ul>
355 <li>You can use this method as a replacement for the http
356 authentication (for example, if you're running IIS).
357 </li>
358 <li>Obviously, the user must enable cookies in the browser.</li>
359 <li>With this mode, the use can truly logout of phpMyAdmin and login back
360 with the same username.</li>
361 </ul>
363 <p><b>'config' authentication mode:</b></p>
364 <ul>
365 <li>This mode is the less secure one because it requires you to fill the
366 <tt>$cfg['Servers'][$i]['user']</tt> and
367 <tt>$cfg['Servers'][$i]['password']</tt> fields.<br />
368 But you don't need to setup a &quot;controluser&quot; here:
369 using the <tt>$cfg['Servers'][$i]['only_db']</tt> might be enough.</li>
370 <li>In the ISP FAQ section, there is an entry explaining how to protect
371 your configuration file.<br /></li>
372 <li>For additional security in this mode, you may wish to consider the
373 Host authentication <tt>$cfg['Servers'][$i]['AllowDeny']['order']</tt>
374 and <tt>$cfg['Servers'][$i]['AllowDeny']['rules']</tt> configuration
375 directives.</li>
376 </ul>
379 <!-- CONFIGURATION -->
380 <a name="config"></a><br />
381 <hr noshade="noshade" width="100%" />
382 <font size="+1">
383 <a class="navigation2" href="#top">Top</a> &nbsp;-&nbsp;
384 <a class="navigation2" href="#require">Requirements</a> &nbsp;-&nbsp;
385 <a class="navigation2" href="#intro">Introduction</a> &nbsp;-&nbsp;
386 <a class="navigation2" href="#setup">Installation</a> &nbsp;-&nbsp;
387 <a class="navigation2" href="#config">Configuration</a> &nbsp;-&nbsp;
388 <a class="navigation2" href="#faq">FAQ</a> &nbsp;-&nbsp;
389 <a class="navigation2" href="#developers">Developers</a> &nbsp;-&nbsp;
390 <a class="navigation2" href="#credits">Credits</a>
391 </font>
392 <hr noshade="noshade" width="100%" />
394 <h2>Configuration</h2>
397 <font color="#bb0000">Warning for Mac users:</font> php seems not to like
398 Mac end of lines character (&quot;<tt>\r</tt>&quot;). So ensure you choose
399 the option that allows to use the *nix end of line character
400 (&quot;<tt>\n</tt>&quot;) in your text editor before registering a script
401 you have modified.
402 </p>
404 <p>All configurable data is placed in <i>config.inc.php3</i>.</p>
405 <dl>
406 <dt><b>$cfg['PmaAbsoluteUri']</b> string</dt>
407 <dd>
408 Sets here the complete url (with full path) to your phpMyAdmin version.
409 E.g. <tt>http://www.your_web.net/path_to_your_phpMyAdmin_directory/</tt>.
410 <br /><br />
411 phpMyAdmin needs this setting, because of requirements of the HTTP
412 protocol, explained in RFC2616, section 14.30.
413 <br /><br />
414 Don't forget the slash at the end of your url. The url must contain
415 characters that are valid for a url, and on some servers, the path
416 is case-sensitive.
417 <br /><br />
418 Starting with version 2.3.0, you can try to leave this parameter
419 empty, because the program tries to auto-detect its proper value.
420 Additional details are in the configuration file.
421 <br /><br />
422 Alternatively, this setting can be dynamically completed. For example,
423 you can try to use such a kind of code:
424 <pre>
425 $cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://'
426 . $_SERVER['HTTP_HOST']
427 . (!empty($_SERVER['SERVER_PORT']) ? ':' . $_SERVER['SERVER_PORT'] : '')
428 . substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/')+1);
432 $cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://'
433 . $_SERVER['SERVER_NAME']
434 . (!empty($_SERVER['SERVER_PORT']) ? ':' . $_SERVER['SERVER_PORT'] : '')
435 . substr($_SERVER['SCRIPT_NAME'], 0, strrpos($_SERVER['SCRIPT_NAME'], '/')+1);
436 </pre>
437 Please note that the <tt>$_SERVER</tt> array doesn't exist in
438 PHP&nbsp;&lt;&nbsp;4.1.0. Try to replace <tt>$_SERVER</tt> by
439 <tt>$HTTP_SERVER_VARS</tt> or <tt>$GLOBALS</tt> in this case.
440 <br /><br />
441 </dd>
442 <dt><b>$cfg['PmaAbsoluteUri_DisableWarning']</b> boolean</dt>
443 <dd>
444 By default, when you leave $cfg['PmaAbsoluteUri'] empty, and the system
445 detects your absolute URI automatically, we display a warning to remind
446 you. If you have tested the automatic detection, and it works perfectly
447 for your setup, then you can set this variable to squelch the warning.
448 <br /><br />
449 </dd>
451 <dt><b>$cfg['PmaNoRelation_DisableWarning']</b> boolean</dt>
452 <dd>
453 Starting with version 2.3.0 phpMyAdmin offers a lot of features to work
454 with master / foreign - tables. These features require the PMA
455 administrator to set up a special database for PMA (see
456 <a class="navigation" href="#pmadb">$cfg['Servers'][$i]['pmadb']</a>).
457 Its contents and use will be explained further down.<br />
458 If you tried to set this up and it does not work for you have a look on
459 the &quot;Structure&quot; page of one database where you would like to
460 use it. You will find a link that will analyze why those features have
461 been disabled.<br />
462 If you do not want to use those features set this variable to
463 <tt>TRUE</tt> to stop this message from appearing.
464 <br /><br />
465 </dd>
467 <dt><b>$cfg['Servers']</b> array</dt>
468 <dd>
469 Since version 1.4.2, phpMyAdmin supports the administration of multiple
470 MySQL servers.
471 Therefore, a $cfg['Servers']-array has been added which contains
472 the login information for the different servers. The first
473 <tt>$cfg['Servers'][$i]['host']</tt> contains the hostname of the first
474 server, the second <tt>$cfg['Servers'][$i]['host']</tt> the hostname of
475 the second server, etc.
476 If you have only one server to administer, simply leave free the
477 hostname of the other $cfg['Server']-entries.
478 <br /><br />
479 </dd>
481 <dt><b>$cfg['Servers'][$i]['host']</b> string</dt>
482 <dd>
483 The hostname of your $i-th MySQL-server. E.g. localhost.
484 <br /><br />
485 </dd>
487 <dt><b>$cfg['Servers'][$i]['port']</b> string</dt>
488 <dd>
489 The port-number of your $i-th MySQL-server. Default is 3306 (leave
490 blank).
491 <br /><br />
492 </dd>
494 <dt><b>$cfg['Servers'][$i]['socket']</b> string</dt>
495 <dd>
496 The path to the socket to use. Leave blank for default.<br />
497 To use the socket feature you must run php 3.0.10 or more.
498 <br /><br />
499 </dd>
501 <dt><b>$cfg['Servers'][$i]['connect_type']</b> string</dt>
502 <dd>
503 What type connection to use with the MySQL server. Your options are
504 <tt>'socket'</tt> &amp; <tt>'tcp'</tt>. It defaults to 'tcp' as that
505 is nearly guarenteed to be available on all MySQL servers, while
506 sockets are not supported on some platforms.
507 <br /><br />
508 </dd>
510 <dt>
511 <b>$cfg['Servers'][$i]['controluser']</b> string<br />
512 <b>$cfg['Servers'][$i]['controlpass']</b> string
513 </dt>
514 <dd>
515 When using http or cookie authentication modes (or 'config'
516 authentication mode since phpMyAdmin 2.2.1), you need to supply the
517 details of a MySQL account that has <tt>SELECT</tt> privilege on the
518 <i>mysql.user (all columns except &quot;Password&quot;)</i>,
519 <i>mysql.db (all columns)</i> &amp; <i>mysql.tables_priv (all columns
520 except &quot;Grantor&quot; &amp; &quot;Timestamp&quot;) </i>tables.
521 This account is used to check what databases the user will see at
522 login.<br />
523 Please see the <a class="navigation" href="#setup">install section</a>
524 on &quot;Using http authentication&quot; for more information.
525 <br /><br />
526 Note that if you try login to phpMyAdmin with this
527 &quot;controluser&quot;, you could get some errors, depending the exact
528 privileges you gave to the &quot;controluser&quot;. phpMyAdmin does not
529 support a direct login with the &quot;controluser&quot;.
530 <br /><br />
531 In versions before 2.2.5, those were called
532 &quot;stduser/stdpass&quot;.
533 <br /><br />
534 </dd>
536 <dt><b>$cfg['Servers'][$i]['auth_type']</b> string <tt>['http'|'cookie'|'config']</tt></dt>
537 <dd>
538 Whether config or cookie or http authentication should be used for this
539 server.
541 <ul>
542 <li>
543 'config' authentication
544 (<tt>$auth_type&nbsp;=&nbsp;'config'</tt>) is the plain old
545 way: username and password are stored in
546 <i>config.inc.php3</i>.
547 </li>
548 <li>
549 'cookie' authentication mode
550 (<tt>$auth_type&nbsp;=&nbsp;'cookie'</tt>) as introduced in
551 2.2.3 allows you to log in as any valid MySQL user with the
552 help of... cookies. Log name and password are stored in
553 cookies during the session and password is deleted when it
554 ends.
555 </li>
556 <li>
557 'http' authentication (was called 'advanced' in older versions)
558 (<tt>$auth_type&nbsp;=&nbsp;'http'</tt>) as introduced in 1.3.0
559 allows you to log in as any valid MySQL user via HTTP-Auth.
560 </li>
561 </ul><br />
563 Please see the install section on &quot;Using authentication modes&quot;
564 for more information.
565 <br /><br />
566 </dd>
568 <dt>
569 <b>$cfg['Servers'][$i]['user']</b> string<br />
570 <b>$cfg['Servers'][$i]['password']</b> string
571 </dt>
572 <dd>
573 The user/password-pair which phpMyAdmin will use to connect to this
574 MySQL-server. This user/password pair is not needed when http or cookie
575 authentication is used, and should be empty.<br /><br />
576 </dd>
578 <dt><b>$cfg['Servers'][$i]['only_db']</b> string or array</dt>
579 <dd>
580 If set to a(an array of) database name(s), only this(these) database(s)
581 will be shown to the user. Since phpMyAdmin 2.2.1, this/these
582 database(s) name(s) may contain MySQL wilcards characters
583 (&quot;_&quot; and &quot;%&quot;): if you want to use literal instances
584 of these characters, escape them (ie use <tt>'my\_db'</tt> and not
585 <tt>'my_db'</tt>).<br />
586 This setting is an efficient way to lower the server charge since the
587 latter does not need to send MySQL requests to build the available
588 database list. But <font color="#bb0000">it does not replace the
589 privileges rules of the MySQL database server</font>. If set, it just
590 means only these databases will be displayed but
591 <font color="#bb0000">not at all other databases can't be used.</font>
592 <br /><br />
593 </dd>
595 <dt><b>$cfg['Servers'][$i]['verbose']</b> string</dt>
596 <dd>
597 Only useful when using phpMyAdmin with multiple server entries. If set,
598 this string will be displayed instead of the hostname in the pulldown
599 menu on the main page. This can be useful if you want to show only
600 certain databases on your system, for example.
601 <br /><br />
602 </dd>
604 <dt>
605 <a name="pmadb"></a>
606 <b>$cfg['Servers'][$i]['pmadb']</b> string
607 </dt>
608 <dd>
609 Starting with version 2.3.0 phpMyAdmin offers a lot of features
610 to work with master / foreign - tables. To use those as well as
611 the bookmark feature you will need to create a new db.
612 <br /><br />
614 To use this functionality as superuser create a new database:
615 <ul>
616 <li>
617 create a new database for phpmyadmin:<br />
618 <tt>&nbsp;&nbsp;CREATE DATABASE phpmyadmin;</tt><br />
619 Note that &quot;controluser&quot; must have
620 <tt>SELECT, INSERT</tt> and <tt>DELETE</tt> privileges on this
621 database. Here is a query to set up those privileges
622 (using &quot;phpmyadmin&quot; as the database name, and
623 &quot;pma&quot; as the controluser):<br />
624 <tt>
625 &nbsp;&nbsp;GRANT SELECT,INSERT,DELETE ON phpmyadmin.* to 'pma'@localhost;
626 </tt><br />
627 do <b>not</b> give any other user rights on this database.
628 </li>
629 <li>
630 enter the databasename in <tt>$cfg['Servers'][$i]['pmadb']</tt>
631 </li>
632 </ul><br />
633 </dd>
635 <dt>
636 <a name="bookmark"></a>
637 <b>$cfg['Servers'][$i]['bookmarktable']</b> string
638 </dt>
639 <dd>
640 Since release 2.2.0 phpMyAdmin allows to bookmark queries. This can be
641 useful for queries you often run.<br /><br />
643 To allow the usage of this functionality the superuser has to:
644 <ul>
645 <li>set up a PMA database as described above</li>
646 <li>within this database create a table following this scheme:
647 <br />
648 <tt>
649 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CREATE TABLE `PMA_bookmark` (<br />
650 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id int(11) DEFAULT '0' NOT NULL auto_increment,<br />
651 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbase varchar(255) NOT NULL,<br />
652 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user varchar(255) NOT NULL,<br />
653 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label varchar(255) NOT NULL,<br />
654 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;query text NOT NULL,<br />
655 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PRIMARY KEY (id)<br />
656 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) TYPE=MyISAM COMMENT='Bookmarks';<br />
657 </tt>
658 </li>
659 <li>enter the tablename in
660 <tt>$cfg['Servers'][$i]['bookmarktable']</tt></li>
661 </ul><br />
662 </dd>
664 <dt>
665 <a name="relation"></a>
666 <b>$cfg['Servers'][$i]['relation']</b> string
667 </dt>
668 <dd>
669 Since release 2.2.4 you can describe, in a special 'relation' table,
670 which field is a key in another table (a foreign key). phpMyAdmin
671 currently uses this to
672 <ul>
673 <li>
674 make clickable, when you browse the master table, the data values
675 that point to the foreign table;
676 </li>
677 <li>
678 display in an optional tooltip the &quot;display field&quot;
679 when browsing the master table, if you move the mouse to a column
680 containing a foreign key (use also the 'table_info' table);
681 </li>
682 <li>
683 display links on the table properties page, to check referential
684 integrity (display missing foreign keys) for each described key;
685 </li>
686 <li>
687 in query-by-example, create automatic joins (see an example in
688 the FAQ, section &quot;Using phpMyAdmin&quot;);
689 </li>
690 <li>
691 enable you to get a PDF schema of your database (also uses the
692 table_coords table).
693 </li>
694 </ul>
695 <br />
697 The keys can be numeric or character.
698 <br /><br />
700 To allow the usage of this functionality the superuser has to:
701 <ul>
702 <li>set up a PMA database as described above</li>
703 <li>
704 within this database create a table following this scheme:
705 <br />
706 <tt>
707 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CREATE TABLE `PMA_relation` (<br />
708 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`master_db` varchar(64) NOT NULL default '',<br />
709 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`master_table` varchar(64) NOT NULL default '',<br />
710 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`master_field` varchar(64) NOT NULL default '',<br />
711 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`foreign_db` varchar(64) NOT NULL default '',<br />
712 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`foreign_table` varchar(64) NOT NULL default '',<br />
713 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`foreign_field` varchar(64) NOT NULL default '',<br />
714 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PRIMARY KEY (`master_db`, `master_table`, `master_field`),<br />
715 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;KEY foreign_field (foreign_db, foreign_table)<br />
716 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) TYPE=MyISAM COMMENT='Relation table';<br />
717 </tt>
718 </li>
719 <li>
720 put the relation table name in
721 <tt>$cfg['Servers'][$i]['relation']</tt>
722 </li>
723 <li>
724 now as normal user open phpMyAdmin and for each one of your
725 tables where you want to use this feature, click
726 &quot;Structure/Relation view/&quot; and choose foreign fields.
727 </li>
728 </ul><br />
729 Please note that in the current (2.3.0) version, <tt>master_db</tt>
730 must be the same as <tt>foreign_db</tt>. Those fields have been put in
731 future development of the cross-db relations.<br /><br />
732 </dd>
734 <dt>
735 <a name="table_info"></a>
736 <b>$cfg['Servers'][$i]['table_info']</b> string
737 </dt>
738 <dd>
739 Since release 2.3.0 you can describe, in a special 'table_info'
740 table, which field is to be displayed as a tooltip when moving the
741 cursor over the corresponding key.
742 <br />
743 This configuration variable will hold the name of this special
744 table.
745 To allow the usage of this functionality the superuser has to:
746 <ul>
747 <li>set up a PMA database as described above</li>
748 <li>within this database create a table following this scheme:
749 <br />
750 <tt>
751 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CREATE TABLE `PMA_table_info` (<br />
752 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`db_name` varchar(64) NOT NULL default '',<br />
753 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`table_name` varchar(64) NOT NULL default '',<br />
754 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`display_field` varchar(64) NOT NULL default '',<br />
755 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PRIMARY KEY (`db_name`, `table_name`)<br />
756 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) TYPE=MyISAM COMMENT='Table information for phpMyAdmin';<br />
757 </tt>
758 </li>
759 <li>
760 put the table name in
761 <tt>$cfg['Servers'][$i]['table_info']</tt>
762 </li>
763 <li>
764 then for each table where you want to use this feature,
765 click &quot;Structure/Relation view/Choose field to display&quot;
766 to choose the field.
767 </li>
768 </ul><br />
769 Usage tip: <a class="navigation" href="#faqdisplay">Display field</a>.
770 <br /><br />
771 </dd>
773 <dt>
774 <a name="table_coords"></a>
775 <b>$cfg['Servers'][$i]['table_coords']</b> string<br />
776 <b>$cfg['Servers'][$i]['pdf_pages']</b> string
777 </dt>
778 <dd>
779 Since release 2.3.0 you can have phpMyAdmin create PDF pages showing
780 the relations between your tables. To do this it needs two tables
781 &quot;pdf_pages&quot; (storing information about the available pdf
782 pages) and &quot;table_coords&quot; (storing coordinates where each
783 table will be placed on a PDF schema output).
784 <br /><br />
785 You must be using the &quot;relation&quot; feature and have a table of
786 PDF pages (see <tt>$cfg['Servers'][$i]['pdf_pages']</tt>) to create PDF
787 output.
788 <br /><br />
789 To allow the usage of this functionality the superuser has to:
790 <ul>
791 <li>set up a PMA database as described above</li>
792 <li>
793 within this database create a table following this scheme:
794 <br />
795 <tt>
796 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CREATE TABLE `PMA_table_coords` (<br />
797 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`db_name` varchar(64) NOT NULL default '',<br />
798 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`table_name` varchar(64) NOT NULL default '',<br />
799 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`pdf_page_number` int NOT NULL default '0',<br />
800 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`x` float unsigned NOT NULL default '0',<br />
801 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`y` float unsigned NOT NULL default '0',<br />
802 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PRIMARY KEY (`db_name`, `table_name`, `pdf_page_number`)<br />
803 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) TYPE=MyISAM COMMENT='Table coordinates for phpMyAdmin PDF output';<br />
804 </tt>
805 </li>
806 <li>
807 also within this database create:<br />
808 <tt>
809 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CREATE TABLE `PMA_pdf_pages` (<br />
810 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`db_name` varchar(64) NOT NULL default '',<br />
811 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`page_nr` int(10) unsigned NOT NULL auto_increment,<br />
812 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`page_descr` varchar(50) NOT NULL default '',<br />
813 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PRIMARY KEY (page_nr),<br />
814 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;KEY (db_name)<br />
815 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) TYPE=MyISAM COMMENT='PDF Relationpages for PMA';<br />
816 </tt>
817 </li>
818 <li>
819 put the first table name in
820 <tt>$cfg['Servers'][$i]['table_coords']</tt>
821 and the second table name in
822 <tt>$cfg['Servers'][$i]['pdf_pages']</tt>
823 </li>
824 </ul><br />
825 Usage tips: <a class="navigation" href="#faqpdf">PDF output</a>.
826 <br /><br />
827 </dd>
829 <dt>
830 <a name="col_com"></a>
831 <b>$cfg['Servers'][$i]['column_comments']</b> string
832 </dt>
833 <dd>
834 Since release 2.3.0 you can store comments to describe each column
835 for each table. These will then be shown on the &quot;printview&quot;.
836 <br />
837 To allow the usage of this functionality the superuser has to:
838 <ul>
839 <li>set up a PMA database as described above</li>
840 <li>
841 within this database create a table following this scheme:
842 <br />
843 <tt>
844 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CREATE TABLE `PMA_column_comments` (<br />
845 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id int(5) unsigned NOT NULL auto_increment,<br />
846 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db_name varchar(64) NOT NULL default '',<br />
847 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table_name varchar(64) NOT NULL default '',<br />
848 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;column_name varchar(64) NOT NULL default '',<br />
849 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;comment varchar(255) NOT NULL default '',<br />
850 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PRIMARY KEY (id),<br />
851 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UNIQUE KEY db_name (db_name, table_name, column_name)<br />
852 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) TYPE=MyISAM COMMENT='Comments for Columns';<br />
853 </tt>
854 </li>
855 <li>
856 put the table name in
857 <tt>$cfg['Servers'][$i]['column_comments']</tt>
858 </li>
859 </ul><br />
860 </dd>
862 <dt>
863 <b>$cfg['Servers'][$i]['AllowDeny']['order']</b> string
864 </dt>
865 <dd>
866 If your rule order is empty, then IP authentication is disabled.
867 <br /><br />
868 If your rule order is set to <tt>'deny,allow'</tt> then the system
869 applies all deny rules followed by allow rules.
870 Access is allowed by default. Any client which does not match a Deny
871 command or does match an Allow command will be allowed access to the
872 server.
873 <br /><br />
874 If your rule order is set to <tt>'allow,deny'</tt> then the system
875 applies all allow rules followed by deny rules. Access is denied by
876 default. Any client which does not match an Allow directive or does
877 match a Deny directive will be denied access to the server.
878 <br /><br />
879 If your rule order is set to 'explicit', the authentication is
880 performed in a similar fashion to rule order 'deny,allow', with the
881 added restriction that your host/username combination <b>must</b> be
882 listed in the <i>allow</i> rules, and not listed in the <i>deny</i>
883 rules. This is the <b>most</b> secure means of using Allow/Deny rules,
884 and was available in Apache by specifying allow and deny rules without
885 setting any order.
886 <br /><br />
887 </dd>
889 <dt>
890 <b>$cfg['Servers'][$i]['AllowDeny']['rules']</b> array of strings
891 </dt>
892 <dd>
893 The general format for the rules is as such:<br />
894 <tt>
895 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
896 &lt;'allow' | 'deny'&gt; &lt;username&gt; [from] &lt;ipmask&gt;
897 </tt>
898 <br /><br />
900 If you wish to match all users, it is possible to use a <tt>'%'</tt> as
901 a wildcard in the <i>username</i> field.<br />
902 There are a few shortcuts you can use in the <i>ipmask</i> field as
903 well:<br />
904 <tt>
905 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'all' -&gt; 0.0.0.0/0<br />
906 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'localhost' -&gt; 127.0.0.1/8
907 </tt>
908 <br /><br />
910 Having an empty rule list is equivalent to either using
911 <tt>'allow % from all'</tt> if your rule order is set to
912 <tt>'deny,allow'</tt> or <tt>'deny % from all'</tt> if your rule order
913 is set to <tt>'allow,deny'</tt> or <tt>'explicit'</tt>.
914 <br /><br />
916 For the IP matching system, the following work:<br />
917 <tt>xxx.xxx.xxx.xxx</tt> (an exact IP address)<br />
918 <tt>xxx.xxx.xxx.[yyy-zzz]</tt> (an IP address range)<br />
919 <tt>xxx.xxx.xxx.xxx/nn</tt> (CIDR, Classless Inter-Domain Routing type IP addresses)<br />
920 But the following does not work:<br />
921 <tt>xxx.xxx.xxx.xx[yyy-zzz]</tt> (partial IP address range)
922 <br /><br />
923 </dd>
925 <dt><b>$cfg['ServerDefault']</b> integer</dt>
926 <dd>
927 If you have more than one server configured, you can set
928 <tt>$cfg['ServerDefault']</tt> to any one of them to autoconnect to
929 that server when phpMyAdmin is started, or set it to 0 to be given a
930 list of servers without logging in.<br />
931 If you have only one server configured, <tt>$cfg['ServerDefault']</tt>
932 MUST be set to that server.
933 <br /><br />
934 </dd>
936 <dt><b>$cfg['OBGzip'] </b>boolean</dt>
937 <dd>
938 Defines whether to use gzip output buffering for increased
939 speed in HTTP transfers.
940 <br /><br />
941 </dd>
943 <dt><b>$cfg['PersistentConnections'] </b>boolean</dt>
944 <dd>
945 Whether persistent connections should be used or not (mysql_connect or
946 mysql_pconnect).
947 <br /><br />
948 </dd>
950 <dt><b>$cfg['ExecTimeLimit'] </b>integer [number of seconds]</dt>
951 <dd>
952 Set the number of seconds a script is allowed to run. If seconds is set
953 to zero, no time limit is imposed.<br />
954 This setting is used while importing/exporting dump files but has no
955 effect when PHP is running in safe mode.
956 <br /><br />
957 </dd>
959 <dt><b>$cfg['SkipLockedTables'] </b>boolean</dt>
960 <dd>
961 Mark used tables and make it possible to show databases with locked
962 tables (since 3.23.30).
963 <br /><br />
964 </dd>
966 <dt><b>$cfg['ShowSQL'] </b>boolean</dt>
967 <dd>
968 Defines whether sql-queries generated by phpMyAdmin should be displayed
969 or not.
970 <br /><br />
971 </dd>
973 <dt><b>$cfg['AllowUserDropDatabase'] </b>boolean</dt>
974 <dd>
975 Defines whether normal users (non-administrator) are allowed to
976 delete their own database or not. If set as FALSE, the link &quot;Drop
977 Database&quot; will not be shown, and even a &quot;DROP DATABASE
978 mydatabase&quot; will be rejected. Quite practical for ISP's with many
979 customers.
980 <br /><br />
981 </dd>
983 <dt><b>$cfg['Confirm'] </b>boolean</dt>
984 <dd>
985 Whether a warning (&quot;Are your really sure..&quot;) should be
986 displayed when you're about to loose data.
987 <br /><br />
988 </dd>
990 <dt><b>$cfg['LoginCookieRecall'] </b>boolean</dt>
991 <dd>
992 Define whether the previous login should be recalled or not in cookie
993 authentication mode.
994 <br /><br />
995 </dd>
997 <dt><b>$cfg['UseDbSearch'] </b>boolean</dt>
998 <dd>
999 Define whether the "search string inside database" is enabled or not.
1000 <br /><br />
1001 </dd>
1003 <dt><b>$cfg['LeftFrameLight']</b> boolean</dt>
1004 <dd>
1005 Defines whether to use select-based menu and display only the current
1006 tables in the left frame (smaller page).
1007 <br /><br />
1008 </dd>
1010 <dt><b>$cfg['ShowTooltip'] </b>boolean</dt>
1011 <dd>
1012 Defines whether to display table comment as tooltip in left frame or
1013 not.
1014 <br /><br />
1015 </dd>
1017 <dt><b>$cfg['ShowStats'] </b>boolean</dt>
1018 <dd>
1019 Defines whether to display space usage and statistics about databases
1020 and tables or not.<br />
1021 Note that statistics requires at least MySQL 3.23.3 and that, at this
1022 date, MySQL doesn't return such information for Berkeley DB tables.
1023 <br /><br />
1024 </dd>
1026 <dt>
1027 <b>$cfg['ShowMysqlInfo'] </b>boolean<br />
1028 <b>$cfg['ShowMysqlVars'] </b>boolean<br />
1029 <b>$cfg['ShowPhpInfo'] </b>boolean<br />
1030 <b>$cfg['ShowChgPassword'] </b>boolean
1031 </dt>
1032 <dd>
1033 Defines whether to display the &quot;MySQL runtime information&quot;,
1034 &quot;MySQL system variables&quot;, &quot;PHP information&quot; and
1035 &quot;Change password &quot; links or not for simple users at the
1036 starting main (right) frame. This setting does not check MySQL commands
1037 entered directly.
1038 <br /><br />
1040 Please note that to block the usage of phpinfo() in scripts, you
1041 have to put this in your php.ini:<br />
1042 &nbsp;&nbsp;&nbsp;&nbsp;<tt>disable_functions = phpinfo()</tt>
1043 <br /><br />
1045 Also note that enabling the &quot;Change password &quot; link has no
1046 effect with &quot;config&quot; authentication mode: because of the hard
1047 coded password value in the configuration file, end users can't be
1048 allowed to change their passwords.
1049 <br /><br />
1050 </dd>
1052 <dt><b>$cfg['SuggestDBName']</b> boolean</dt>
1053 <dd>
1054 Defines whether to suggest a database name on the
1055 &quot;Create Database&quot; form or to keep the textfield empty.
1056 <br /><br />
1057 </dd>
1059 <dt><b>$cfg['ShowBlob'] </b>boolean</dt>
1060 <dd>
1061 Defines whether <tt>BLOB</tt> fields are shown when browsing a table's
1062 content or not.
1063 <br /><br />
1064 </dd>
1066 <dt><b>$cfg['NavigationBarIconic'] </b>boolean</dt>
1067 <dd>
1068 Defines whether navigation bar buttons contain text or symbols only.
1069 <br /><br />
1070 </dd>
1072 <dt><b>$cfg['ShowAll'] </b>boolean</dt>
1073 <dd>
1074 Defines whether an user should be displayed a
1075 &quot;show all (records)&quot; button in browse mode or not.
1076 <br /><br />
1077 </dd>
1079 <dt><b>$cfg['MaxRows'] </b>integer</dt>
1080 <dd>
1081 Number of rows displayed when browsing a resultset. If the resultset
1082 contains more rows, Previous/Next links will be shown.
1083 <br /><br />
1084 </dd>
1086 <dt><b>$cfg['Order'] </b>string [<tt>DESC</tt>|<tt>ASC</tt>|<tt>SMART</tt>]</dt>
1087 <dd>
1088 Defines whether fields are displayed in ascending (<tt>ASC</tt>) order,
1089 in descending (<tt>DESC</tt>) order or in a &quot;smart&quot;
1090 (<tt>SMART</tt>) order -ie descending order for fields of type TIME,
1091 DATE, DATETIME &amp; TIMESTAMP, ascending order else- by default.
1092 <br /><br />
1093 </dd>
1095 <dt><b>$cfg['ProtectBinary'] </b>boolean or string</dt>
1096 <dd>
1097 Defines whether <tt>BLOB</tt> or <tt>BINARY</tt> fields are protected
1098 from edition when browsing a table's content or not.
1099 Valid values are:<br />
1100 - <tt>FALSE</tt> to allow edition of all fields;<br />
1101 - <tt>blob</tt> to allow edition of all fields except <tt>BLOBS</tt>;
1102 <br />
1103 - <tt>all</tt> to disallow edition of all <tt>BINARY</tt> or
1104 <tt>BLOB</tt> fields.
1105 <br /><br />
1106 </dd>
1108 <dt><b>$cfg['ShowFunctionFields'] </b>boolean</dt>
1109 <dd>
1110 Defines whether MySQL functions fields should be displayed or not in
1111 edit/insert mode.
1112 <br /><br />
1113 </dd>
1115 <dt>
1116 <b>$cfg['ZipDump'] </b>boolean<br />
1117 <b>$cfg['GZipDump'] </b>boolean<br />
1118 <b>$cfg['BZipDump'] </b>boolean
1119 </dt>
1120 <dd>
1121 Defines whether to allow the use of zip/gzip/bzip compression when
1122 creating a dump file or not.
1123 <br /><br />
1124 </dd>
1126 <dt><b>$cfg['DefaultTabDatabase'] </b>string</dt>
1127 <dd>
1128 Defines the tab displayed by default on database view. Possible
1129 values: &quot;db_details_structure.php3&quot;,
1130 &quot;db_details.php3&quot; or &quot;db_search.php3&quot;.
1131 <br /><br />
1132 </dd>
1134 <dt><b>$cfg['DefaultTabTable'] </b>string</dt>
1135 <dd>
1136 Defines the tab displayed by default on table view. Possible
1137 values: &quot;tbl_properties_structure.php3&quot;,
1138 &quot;tbl_properties.php3&quot;, &quot;tbl_select.php3&quot; or
1139 &quot;tbl_change.php3&quot;.
1140 <br /><br />
1141 </dd>
1143 <dt><b>$cfg['MySQLManualBase']</b> string</dt>
1144 <dd>
1145 If set to an URL which points to the MySQL documentation (type depends
1146 on <tt>$cfg['MySQLManualType']</tt>), appropriate help links are
1147 generated.
1148 <br />
1149 See <a href="http://www.mysql.com/documentation/index.html">MySQL
1150 Documentation page</a> for more information about MySQL manuals and
1151 their types.
1152 <br /><br />
1153 </dd>
1155 <dt><b>$cfg['MySQLManualType']</b> string</dt>
1156 <dd>
1157 Type of MySQL documentation:
1158 <ul>
1159 <li>old - old style used in phpMyAdmin 2.3.0 and sooner</li>
1160 <li>searchable - &quot;Searchable, with user comments&quot;</li>
1161 <li>chapters - &quot;HTML, one page per chapter&quot;</li>
1162 <li>big - &quot;HTML, all on one page&quot;</li>
1163 <li>none - do not show documentation links</li>
1164 </ul>
1165 <br /><br />
1166 </dd>
1168 <dt><b>$cfg['DefaultLang'] </b>string</dt>
1169 <dd>
1170 Defines the default language to use, if not browser-defined or
1171 user-defined.<br />
1172 See the <i>select_lang.inc.php3</i> script to know the valid values for
1173 this setting.
1174 <br /><br />
1175 </dd>
1177 <dt><b>$cfg['Lang'] </b>string</dt>
1178 <dd>
1179 Force: always use this language (must be defined in the
1180 <i>select_lang.inc.php3</i> script).
1181 <br /><br />
1182 </dd>
1184 <dt><b>$cfg['DefaultCharset'] </b>string</dt>
1185 <dd>
1186 Default charset to use for recoding of MySQL queries. This must be
1187 enabled and it's described by <tt>$cfg['AllowAnywhereRecoding']</tt>
1188 option.<br />
1189 You can give here any charset which is in
1190 <tt>$cfg['AvailableCharsets']</tt> array and this is just default
1191 choice, user can select any of them.
1192 <br /><br />
1193 </dd>
1195 <dt><b>$cfg['AllowAnywhereRecoding'] </b>boolean</dt>
1196 <dd>
1197 Allow charset recoding of MySQL queries. You need recode or iconv
1198 support (compiled in or module) in php to allow MySQL queries recoding
1199 and used language file must have it enabled (by default only these
1200 which are in unicode, just to avoid losing some characters).
1201 <br /><br />
1202 </dd>
1204 <dt><b>$cfg['RecodingEngine'] </b>string</dt>
1205 <dd>
1206 You can select here which functions will be used for charset
1207 conversion.
1208 Possible values are:<br />
1209 <ul>
1210 <li>auto - automatically use available one (first is tested
1211 iconv, then recode)</li>
1212 <li>iconv - use iconv or libiconv functions</li>
1213 <li>recode - use recode_string function</li>
1214 </ul>
1215 Default is auto.
1216 <br /><br />
1217 </dd>
1219 <dt><b>$cfg['AvailableCharsets'] </b>array</dt>
1220 <dd>
1221 Available charsets for MySQL conversion. You can add your own (any of
1222 supported by recode/iconv) or remove these which you don't use.
1223 Charsets will be shown in same order as here listed, so if you
1224 frequently use some of these move them to the top.
1225 <br /><br />
1226 </dd>
1228 <dt><b>$cfg['LeftWidth'] </b>integer</dt>
1229 <dd>
1230 Left frame width in pixel.
1231 <br /><br />
1232 </dd>
1234 <dt>
1235 <b>$cfg['LeftBgColor'] </b>string [HTML color]<br />
1236 <b>$cfg['RightBgColor'] </b>string [HTML color]
1237 </dt>
1238 <dd>
1239 The background colors (HTML) used for both the frames.
1240 <br /><br />
1241 </dd>
1243 <dt>
1244 <b>$cfg['RightBgImage'] </b>string
1245 </dt>
1246 <dd>
1247 The URI of the background image used for the right frame. It can be
1248 absolute as well as relative from your phpMyAdmin directory.
1249 </dd>
1251 <dt><b>$cfg['LeftPointerColor'] </b>string [HTML color]</dt>
1252 <dd>
1253 The color (HTML) used for the pointer in the left frame (does not work
1254 with NS4).
1255 <br /><br />
1256 </dd>
1258 <dt><b>$cfg['Border'] </b>integer</dt>
1259 <dd>
1260 The size of a table's border.
1261 <br /><br />
1262 </dd>
1264 <dt><b>$cfg['ThBgcolor'] </b>string [HTML color]</dt>
1265 <dd>
1266 The color (HTML) used for table headers.
1267 <br /><br />
1268 </dd>
1270 <dt><b>$cfg['BgcolorOne'] </b>string [HTML color]</dt>
1271 <dd>
1272 The color (HTML) #1 for table rows.
1273 <br /><br />
1274 </dd>
1276 <dt><b>$cfg['BgcolorTwo'] </b>string [HTML color]</dt>
1277 <dd>
1278 The color (HTML) #2 for table rows.
1279 <br /><br />
1280 </dd>
1282 <dt>
1283 <b>$cfg['BrowsePointerColor'] </b>string [HTML color]<br />
1284 <b>$cfg['BrowseMarkerColor'] </b>string [HTML color]
1285 </dt>
1286 <dd>
1287 The colors (HTML) uses for the pointer and the marker in browse mode
1288 (does not work with NS4).<br />
1289 The former feature highlights the row over which your mouse is passing
1290 and the latter lets you visually mark/unmark rows by clicking on
1291 them.<br />
1292 You can disable both of these features by emptying the respective
1293 directive.
1294 <br /><br />
1295 </dd>
1297 <dt>
1298 <b>$cfg['TextareaCols'] </b>integer<br />
1299 <b>$cfg['TextareaRows'] </b>integer
1300 </dt>
1301 <dd>
1302 Number of columns and rows for the textareas.<br />
1303 This value will be emphasized (*2) for sql query textareas.
1304 <br /><br />
1305 </dd>
1307 <dt>
1308 <b>$cfg['TextareaAutoSelect'] </b>boolean<br />
1309 </dt>
1310 <dd>
1311 Defines if the whole textarea of the query box will be selected on
1312 click.
1313 <br /><br />
1314 </dd>
1316 <dt><b>$cfg['LimitChars'] </b>integer</dt>
1317 <dd>
1318 Maximal number of Chars showed in a <tt>TEXT</tt> OR a <tt>BLOB</tt>
1319 field on browse view. Can be turned off by a toggle button on the
1320 browse page.
1321 <br /><br />
1322 </dd>
1324 <dt>
1325 <b>$cfg['ModifyDeleteAtLeft'] </b>boolean<br />
1326 <b>$cfg['ModifyDeleteAtRight'] </b>boolean
1327 </dt>
1328 <dd>
1329 Defines the place where modify and delete links would be put when
1330 tables contents are displayed (you may have them displayed both at the
1331 left and at the right).
1332 &quot;Left&quot; and &quot;right&quot; are parsed as &quot;top&quot;
1333 and &quot;bottom&quot; with vertical display mode.
1334 <br /><br />
1335 </dd>
1337 <dt><b>$cfg['DefaultDisplay'] </b>string</dt>
1338 <dd>
1339 There are 2 display modes: horizontal and vertical. Define which one is
1340 displayed by default.
1341 <br /><br />
1342 </dd>
1344 <dt><b>$cfg['UploadDir'] </b>string</dt>
1345 <dd>
1346 The name of the directory, ending with a slash, where SQL files have
1347 been uploaded by other means than phpMyAdmin (for example, ftp).
1348 Those files are available under a drop-down box when you click the
1349 database name, then the SQL tab.
1350 <br /><br />
1351 Please note that the file names must have the suffix &quot;.sql&quot;.
1352 <br /><br />
1353 This feature is useful when your file is too big to be uploaded via
1354 HTTP, or when file uploads are disabled in PHP.
1355 <br /><br />
1356 Please note that if PHP is running in safe mode, this directory must
1357 be owned by the same user as the owner of the phpMyAdmin scripts.
1358 <br /><br />
1359 </dd>
1361 <dt><b>$cfg['RepeatCells'] </b>integer</dt>
1362 <dd>
1363 Repeat the headers every X cells, or 0 to deactivate.
1364 <br /><br />
1365 </dd>
1367 <dt><b>$cfg['SQP']['enable']</b> boolean</dt>
1368 <dd>
1369 As of phpMyAdmin 2.3.0, we now have a fully functional SQL Parser system.
1370 It is enabled by default, as it is used to format the SQL queries.
1371 <br />
1372 As of 2.3.1, it will become an integral part of phpMyAdmin, as it will
1373 analyze certain queries to improve the behavior of phpMyAdmin. But as
1374 it is very new, and not yet heavily used, we offer you an option to
1375 turn it off.
1376 <br /><br />
1377 </dd>
1379 <dt><b>$cfg['SQP']['fmtType']</b> string [<tt>html</tt>|<tt>none</tt>]</dt>
1380 <dd>
1381 The main use of the new SQL Parser is to pretty-print SQL queries. By
1382 default we use HTML to format the query, but you can disable this by
1383 setting this varible to <tt>'none'</tt>
1384 <br /><br />
1385 </dd>
1387 <dt><b>$cfg['SQP']['fmtInd']</b> float<br />
1388 <b>$cfg['SQP']['fmtIndUnit']</b> string [<tt>em</tt>|<tt>px</tt>|<tt>pt</tt>|<tt>ex</tt>]</dt>
1389 <dd>
1390 For the pretty-printing of SQL queries, under some cases the part of a
1391 query inside a bracket is indented. By changing
1392 <tt>$cfg['SQP']['fmtInd']</tt> you can change the amount of this indent.
1393 <br />Related in purpose is <tt>$cfg['SQP']['fmtIndUnit']</tt> which
1394 specifies the units of the indent amount that you specified. This is
1395 used via stylesheets.
1396 <br /><br />
1397 </dd>
1399 <dt><b>$cfg['SQP']['fmtColor']</b> array of string tuples</dt>
1400 <dd>
1401 This array is used to define the colours for each type of element of
1402 the pretty-printed SQL queries. The tuple format is<br />
1403 <i>class</i> =&gt; [<i>HTML colour code</i> | <i>empty string</i>]<br />
1404 If you specify an empty string for the color of a class, it is ignored
1405 in creating the stylesheet.
1406 You should not alter the class names, only the colour strings.<br />
1407 <b>Class name key:</b><br />
1408 <ul>
1409 <li><b>comment</b> Applies to all comment sub-classes</li>
1410 <li><b>comment_mysql</b> Comments as <tt>"#...\n"</tt></li>
1411 <li><b>comment_ansi</b> Comments as <tt>"-- ...\n"</tt></li>
1412 <li><b>comment_c</b> Comments as <tt>"/*...*/"</tt></li>
1413 <li><b>digit</b> Applies to all digit sub-classes</li>
1414 <li><b>digit_hex</b> Hexadecimal numbers</li>
1415 <li><b>digit_integer</b> Integer numbers</li>
1416 <li><b>digit_float</b> Floating point numbers</li>
1417 <li><b>punct</b> Applies to all punctuation sub-classes</li>
1418 <li><b>punct_bracket_open_round</b> Opening brackets<tt>"("</tt></li>
1419 <li><b>punct_bracket_close_round</b> Closing brackets <tt>")"</tt></li>
1420 <li><b>punct_listsep</b> List item seperator <tt>","</tt></li>
1421 <li><b>punct_qualifier</b> Table/Column Qualifer <tt>"."</tt> </li>
1422 <li><b>punct_queryend</b> End of query marker <tt>";"</tt></li>
1423 <li><b>alpha</b> Applies to all alphabetic classes</li>
1424 <li><b>alpha_columnType</b> Identifers matching a column type</li>
1425 <li><b>alpha_columnAttrib</b> Identifers matching a database/table/column attribute</li>
1426 <li><b>alpha_functionName</b> Identifiers matching a MySQL function name</li>
1427 <li><b>alpha_reservedWord</b> Identifiers matching any other reserved word</li>
1428 <li><b>alpha_variable</b> Identifers matching a SQL variable <tt>"@foo"</tt></li>
1429 <li><b>alpha_identifier</b> All other identifiers</li>
1430 <li><b>quote</b> Applies to all quotation mark classes</li>
1431 <li><b>quote_double</b> Double quotes <tt>"</tt></li>
1432 <li><b>quote_single</b> Single quotes <tt>'</tt></li>
1433 <li><b>quote_backtick</b> Backtick quotes <tt>`</tt></li>
1434 </ul><br />
1435 </dd>
1437 <dt><b>$cfg['SQLValidator']['use']</b> boolean</dt>
1438 <dd>
1439 phpMyAdmin now supports use of the <a class="navigation" href="http://developer.mimer.com/validator/index.htm">Mimer SQL Validator</a> service,
1440 as originally published on
1441 <a class="navigation" href="http://developers.slashdot.org/article.pl?sid=02/02/19/1720246">Slashdot</a>.
1442 <br />
1443 For help in setting up your system to use the service, see the
1444 <a class="navigation" href="#faqsqlvalidator">FAQ #6.14</a>.
1445 <br /><br />
1446 </dd>
1448 <dt><b>$cfg['SQLValidator']['username']</b> string<br />
1449 <b>$cfg['SQLValidator']['password']</b> string</dt>
1450 <dd>
1451 The SOAP service allows you to login with <tt>anonymous</tt>
1452 and any password, so we use those by default.. Instead, if
1453 you have an account with them, you can put your login details
1454 here, and it will be used in place of the anonymous login.
1455 <br /><br />
1456 </dd>
1458 <dt><b>$cfg['ColumnTypes'] </b>array</dt>
1459 <dd>
1460 All possible types of a MySQL column. In most cases you don't need to
1461 edit this.
1462 <br /><br />
1463 </dd>
1465 <dt><b>$cfg['AttributeTypes'] </b>array</dt>
1466 <dd>
1467 Possible attributes for fields. In most cases you don't need to edit
1468 this.
1469 <br /><br />
1470 </dd>
1472 <dt><b>$cfg['Functions'] </b>array</dt>
1473 <dd>
1474 A list of functions MySQL supports. In most cases you don't need to
1475 edit this.
1476 <br /><br />
1477 </dd>
1479 </dl>
1482 <!-- FAQ -->
1483 <a name="faq"></a><br />
1484 <hr noshade="noshade" width="100%" />
1485 <font size="+1">
1486 <a class="navigation2" href="#top">Top</a> &nbsp;-&nbsp;
1487 <a class="navigation2" href="#require">Requirements</a> &nbsp;-&nbsp;
1488 <a class="navigation2" href="#intro">Introduction</a> &nbsp;-&nbsp;
1489 <a class="navigation2" href="#setup">Installation</a> &nbsp;-&nbsp;
1490 <a class="navigation2" href="#config">Configuration</a> &nbsp;-&nbsp;
1491 <a class="navigation2" href="#faq">FAQ</a> &nbsp;-&nbsp;
1492 <a class="navigation2" href="#developers">Developers</a> &nbsp;-&nbsp;
1493 <a class="navigation2" href="#credits">Credits</a>
1494 </font>
1495 <hr noshade="noshade" width="100%" />
1497 <h2>FAQ - Frequently Asked Questions</h2>
1498 <a class="navigation" href="#faqserver">Server</a> &nbsp;-&nbsp;
1499 <a class="navigation" href="#faqconfig">Configuration</a> &nbsp;-&nbsp;
1500 <a class="navigation" href="#faqlimitations">Limitations</a> &nbsp;-&nbsp;
1501 <a class="navigation" href="#faqmultiuser">Multi-user</a> &nbsp;-&nbsp;
1502 <a class="navigation" href="#faqbrowsers">Browsers</a> &nbsp;-&nbsp;
1503 <a class="navigation" href="#faqusing">Usage tips</a> &nbsp;-&nbsp;
1504 <a class="navigation" href="#faqproject">Project</a>
1506 <a name="faqserver"></a>
1507 <h3>[1. Server]</h3>
1509 <b>[1.1] I'm running php 4+ and my server is crashing each time a specific
1510 action is required or phpMyAdmin sends a blank page or a page full of
1511 cryptic characters to my browser, what can I do?</b>
1512 <br />
1513 There are some known php bugs with output buffering and compression.<br />
1514 Try to set the <tt>$cfg['OBGzip']</tt> directive to <tt>FALSE</tt> in your
1515 <i>config.inc.php or .php3</i> file and the
1516 <tt>zlib.output_compression</tt> directive to <tt>Off</tt> in your php
1517 configuration file.<br />
1518 Furthermore, we know about such problems connected to the release
1519 candidates of php 4.2.0 (tested with php 4.2.0 RC1 to RC4) together with
1520 MS Internet Explorer. Please upgrade to the release version php 4.2.0.
1521 </p>
1524 <b>[1.2] My Apache server crashes when using phpMyAdmin.</b>
1525 <br />
1526 You should first try the latest versions of Apache (and possibly MySQL).
1527 <br />
1528 See also the other FAQ entry about php bugs with output buffering.
1529 <br />
1530 If your server keeps crashing, please ask for help in the various
1531 Apache support groups.
1532 </p>
1535 <b>[1.3] I'm running phpMyAdmin with "cookie" authentication mode under
1536 PHP 4.2.0 or 4.2.1 loaded as an Apache 2+ module but can't enter the
1537 script: I'm always displayed the login screen.</b>
1538 <br />
1539 This is a kown PHP bug (see this
1540 <a href="http://bugs.php.net/bug.php?id=16626">bug report</a>) from the
1541 official php bug database. It means there is and won't be any phpMyAdmin
1542 fix against it because there is no way to code a fix.
1543 </p>
1546 <b>[1.4] Using phpMyAdmin on IIS, I'm displayed the error message:
1547 &quot;The specified CGI application misbehaved by not returning a
1548 complete set of HTTP headers....&quot;</b>
1549 <br />
1550 You just forgot to read the <i>install.txt</i> file from the php
1551 distribution. Have a look at the last message in this
1552 <a href="http://bugs.php.net/bug.php?id=12061">bug report</a> from the
1553 official php bug database.
1554 </p>
1557 <b>[1.5] Using phpMyAdmin on IIS, I'm facing crashes and/or many error
1558 messages with the http or advanced authentication mode.</b>
1559 <br />
1560 This is a known problem with the php ISAPI filter: it's not so stable. For
1561 some more information and complete testings see the messages posted by
1562 André B. aka &quot;djdeluxe76&quot; in
1563 <a href="http://www.phpwizard.net/phorum/read.php?f=1&amp;i=6624&amp;t=6300">this&nbsp;thread</a>
1564 from the phpWizard forum.<br />
1565 Please use instead the cookie authentication mode.
1566 </p>
1569 <b>[1.6] I can't use phpMyAdmin on PWS: nothing is displayed!</b>
1570 <br />
1571 This seems to be a PWS bug. Filippo Simoncini found a workaroud (at this
1572 time there is no better fix): remove or comment the <tt>DOCTYPE</tt>
1573 declarations (2 lines) from the scripts <i>header.inc.php3</i>,
1574 <i>header_printview.inc.php3</i>, <i>index.php3</i>, <i>left.php3</i> and
1575 <i>libraries/common.lib.php3</i>.
1576 </p>
1579 <b>[1.7] How can I GZip or Bzip a dump or a CSV export. It seems to not
1580 work?</b>
1581 <br />
1582 These features are based on the <tt>gzencode()</tt> and
1583 <tt>bzcompress()</tt> php functions to be more independent of the platform
1584 (Unix/Windows, Safe Mode or not, and so on).
1585 So, you must have PHP4&nbsp;>=&nbsp;4.0.4 and Zlib/Bzip2 support
1586 (<tt>--with-zlib</tt> and <tt>--with-bz2</tt>).<br />
1587 We faced php crashes when trying to download a dump with MS Internet
1588 Explorer when phpMyAdmin is run with a release candidate of php 4.2.0. In
1589 this case you should switch to the release version of php 4.2.0.
1590 </p>
1593 <b>[1.8] I cannot insert a text file in a table, and I get an error about
1594 safe mode being in effect.</b>
1595 <br />
1596 Your uploaded file is saved by PHP in the &quot;upload dir&quot;, as
1597 defined in <i>php.ini</i> by the variable <tt>upload_tmp_dir</tt> (usually
1598 the system default is <i>/tmp</i>).
1599 <br />
1600 We recommend the following setup for Apache servers running in safe mode,
1601 to enable uploads of files while being reasonably secure:
1602 </p>
1603 <ul>
1604 <li>create a separate directory for uploads:
1605 <tt>mkdir /tmp/php</tt></li>
1606 <li>give ownership to the Apache server's user.group:
1607 <tt>chown apache.apache /tmp/php</tt></li>
1608 <li>give proper permission: <tt>chmod 600 /tmp/php</tt></li>
1609 <li>put <tt>upload_tmp_dir = /tmp/php</tt> in php.ini</li>
1610 <li>restart Apache</li>
1611 </ul>
1614 <b>[1.9] I'm having troubles when uploading files. In general file uploads
1615 don't work on my system and uploaded files have a <tt>Content-Type:</tt>
1616 header in the first line.</b>
1617 <br />
1618 It's not really phpMyAdmin related but RedHat 7.0. You have a RedHat 7.0
1619 and you updated your php rpm to php-4.0.4pl1-3.i386.rpm, didn't you?
1620 <br />
1621 So the problem is that this package has a serious bug that was corrected
1622 ages ago in php (2001-01-28: see
1623 <a href="http://www.php.net/bugs.php?id=8966">php's bug tracking system</a>
1624 for more details). The problem is that the bugged package is still
1625 available though it was corrected (see
1626 <a href="http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=24933">redhat's bugzilla</a>
1627 for more details).
1628 <br />
1629 So please download
1630 <a href="http://www.redhat.com/swr/i386/php-4.0.4pl1-9.i386.html">the fixed package (4.0.4pl1-9)</a>
1631 and the problem should go away.
1632 <br />
1633 And that fixes the \r\n problem with file uploads!
1634 </p>
1637 <b>[1.10] I'm having troubles when uploading files with phpMyAdmin running
1638 on a secure server. My browser is Internet Explorer and I'm using the
1639 Apache server.</b>
1640 <br />
1641 As suggested by &quot;Rob M&quot; in the phpWizard forum, add this line to
1642 your <i>httpd.conf</i>:<br />
1643 &nbsp;&nbsp;&nbsp;&nbsp;<tt>SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown</tt><br />
1644 It seems to clear up many problems between IE and SSL.
1645 </p>
1648 <b>[1.11] I get an 'open_basedir restriction' while uploading a file from
1649 the query box.</b>
1650 <br />
1651 Since version 2.2.4, phpMyAdmin supports servers with open_basedir
1652 restrictions. Assuming that the restriction allows you to open files in the
1653 current directory ('.'), all you have to do is create a 'tmp' directory
1654 under the phpMyAdmin install directory, with permissions 777 and the same
1655 owner as the owner of your phpMyAdmin directory. The uploaded files will
1656 be moved there, and after execution of your SQL commands, removed.
1657 </p>
1660 <b>[1.12] I have lost my MySQL root password, what can I do?</b>
1661 <br />
1662 The MySql manual explains how to
1663 <a href="http://www.mysql.com/doc/R/e/Resetting_permissions.html">
1664 reset the permissions</a>.
1665 </p>
1668 <b>[1.13] I get an error 'No SQL query' when trying to execute a
1669 bookmark.</b>
1670 <br />
1671 If PHP does not have read/write access to its <tt>upload_tmp_dir</tt>, it
1672 cannot access the uploaded query.
1673 </p>
1676 <b>[1.14] I get an error 'No SQL query' when trying to submit a query from
1677 the convenient text area.</b>
1678 <br />
1679 Check the <tt>post_max_size</tt> directive from your php configuration file
1680 and try to increase it.
1681 </p>
1684 <b>[1.15] I have problems with <i>mysql.user</i> field names.</b>
1685 <br />
1686 In older MySQL versions, the <tt>User</tt> and <tt>Password</tt> fields
1687 were named <tt>user</tt> and <tt>password</tt>. Please modify your field
1688 names to align with current standards.
1689 </p>
1691 <b>[1.16] I cannot upload big dump files.</b>
1692 <br />
1693 The first things to check (or ask your host provider to check) are the
1694 values of <tt>upload_max_filesize</tt>, <tt>memory_limit</tt> and
1695 <tt>post_max_size</tt> in the <i>php.ini</i> configuration file.
1696 <br />
1697 All of these three settings limit the maximum size of data that can be
1698 submitted and handled by php. One user also said that post_max_size
1699 and memory_limit need to be larger than upload_max_filesize.
1700 </p>
1703 <b>[1.17] Does phpMyAdmin support MySQL&nbsp;4?</b>
1704 <br />
1705 MySQL&nbsp;4 is not yet fully supported by phpMyAdmin.<br />
1706 Because of MySQL&nbsp;4's backwards compatibility you can use phpMyAdmin
1707 for administering MySQL&nbsp;4 servers, but phpMyAdmin does not yet
1708 support its new features. Please notice that in this case it is recommended
1709 to use php&nbsp;&gt;=&nbsp;4.1 since older versions of php are not
1710 compatible to MySQL&nbsp;4.<br />
1711 Furthermore, several users reported problems with phpMyAdmin related to
1712 bugs in MySQL&nbsp;4. <font color="#bb0000">MySQL&nbsp;4 is still an alpha
1713 release and should be used for test purposes only!</font>
1714 </p>
1717 <b>[1.18] I'm running MySQL&nbsp;&lt;=&nbsp;4.0.1 having
1718 <tt>lower_case_table_names</tt> set to 1. If I create a new table with a
1719 capital letter in its name it is changed to lowercase as it should. But
1720 if I try to DROP this table MySQL is unable to find the corresponding
1721 file.</b>
1722 <br />
1723 This is a bug of MySQL&nbsp;&lt;=&nbsp;4.0.1. Please upgrade to at least
1724 MySQL&nbsp;4.0.2 or turn off your <tt>lower_case_table_names</tt>
1725 directive.
1726 </p>
1729 <b>[1.19] I can't run the &quot;display relations&quot; feature because the
1730 script seems not to know the font face I'm using!</b>
1731 <br />
1732 The &quot;FPDF&quot; library we're using for this feature requires some
1733 special files to use font faces.<br />
1734 Please refers to the
1735 <a href="http://www.fpdf.org/" target="_blank">FPDF manual</a> to build
1736 these files.
1737 </p>
1739 <a name="faqmysql"></a>
1741 <b>[1.20] I receive the error &quot;cannot load MySQL extension, please
1742 check PHP Configuration&quot;.</b>
1743 <br />
1744 To connect to a MySQL server, PHP needs a set of MySQL functions called
1745 &quot;MySQL extension&quot;.
1746 This extension may be part of the PHP server (compiled-in), otherwise it
1747 needs to be loaded dynamically. Its name is probably <i>mysql.so</i> or
1748 <i>mysql.dll</i>. phpMyAdmin tried to load the extension but failed.
1749 <br /><br />
1750 Usually, the problem is solved by installing a software package called
1751 &quot;PHP-MySQL&quot; or something similar.
1752 </p>
1755 <b>[1.21] I am running the CGI version of PHP under Unix, and I cannot
1756 login using cookie auth.</b>
1757 <br />
1758 In <i>php.ini</i>, set <tt>mysql.max_links</tt> higher than 1.
1759 </p>
1762 <b>[1.22] I don't see the &quot;Location of text file&quot; field, so
1763 I cannot upload.</b>
1764 <br />
1765 This is most likely because in <i>php.ini</i>, your <tt>file_uploads</tt>
1766 parameter is not set to &quot;on&quot;.
1767 </p>
1770 <b>[1.23] I'm running MySQL on a Win32 machine. Each time I create a new
1771 table the table and field names are changed to lowercase!</b>
1772 <br />
1773 This happens because the MySQL directive <tt>lower_case_table_names</tt>
1774 defaults to 1 (<tt>ON</tt>) in the Win32 version of MySQL. You can change
1775 this behavior by simply changing the directive to 0 (<tt>OFF</tt>):<br />
1776 Just edit you <tt>my.ini</tt> file that should be located in your Windows
1777 directory and add the following line:<br />
1778 <tt>lower-case-table-names=0</tt><br />
1779 Next, save the file and restart the MySQL service. You can always check the
1780 value of this directive using the query<br />
1781 <tt>SHOW VARIABLES LIKE 'lower_case_table_names';</tt>
1782 </p>
1784 <a name="faqconfig"></a>
1785 <h3>[2. Configuration]</h3>
1788 <b>[2.1] The error message &quot;Warning: Cannot add header information -
1789 headers already sent by ...&quot; is displayed, what's the problem?</b>
1790 <br />
1791 Edit your <i>config.inc.php or .php3</i> file and ensure there is nothing
1792 (ie no blank lines, no spaces, no characters...) neither before the
1793 <tt>&lt;?php</tt> tag at the beginning, neither after the <tt>?&gt;</tt>
1794 tag at the end.
1795 </p>
1798 <b>[2.2] phpMyAdmin can't connect to MySQL. What's wrong?</b>
1799 <br />
1800 Either there is an error with your PHP setup or your username/password is
1801 wrong. Try to make a small script which uses mysql_connect and see if it
1802 works. If it doesn't, it may be you haven't even compiled MySQL support
1803 into PHP.
1804 </p>
1807 <b>[2.3] The error message &quot;Warning: MySQL Connection Failed: Can't
1808 connect to local MySQL server through socket '/tmp/mysql.sock'
1809 (111)...&quot; is displayed. What can I do?</b>
1810 <br /><br />
1811 For RedHat users, Harald Legner suggests this on the mailing list:
1812 <br /><br />
1813 On my RedHat-Box the socket of mysql is <i>/var/lib/mysql/mysql.sock</i>.
1814 In your php.ini you will find a line
1815 <br />
1816 &nbsp;&nbsp;&nbsp;&nbsp;<tt>mysql.default_socket = /tmp/mysql.sock</tt>
1817 <br />
1818 change it to
1819 <br />
1820 &nbsp;&nbsp;&nbsp;&nbsp;<tt>mysql.default_socket = /var/lib/mysql/mysql.sock</tt>
1821 <br />
1822 Then restart apache and it will work.
1823 <br /><br />
1824 Here is a fix suggested by Brad Ummer in the phpwizard forum:
1825 </p>
1826 <ul>
1827 <li>
1828 First, you need to determine what socket is being used by MySQL.
1829 <br />
1830 To do this, telnet to your server and go to the MySQL bin directory. In
1831 this directory there should be a file named <i>mysqladmin</i>. Type
1832 <tt>./mysqladmin variables</tt>, and this should give you a bunch of
1833 info about your MySQL server, including the socket
1834 (<i>/tmp/mysql.sock</i>, for example).
1835 </li>
1836 <li>
1837 Then, you need to tell PHP to use this socket.<br />Assuming you are
1838 using PHP 3.0.10 or better, you can specify the socket to use when you
1839 open the connection. To do this in phpMyAdmin, you need to complete the
1840 socket information in the config.inc.php3.<br />
1841 For example:
1842 <tt>$cfg['Servers'][$i]['socket']&nbsp;=&nbsp;'/tmp/mysql.sock';</tt>
1843 </li>
1844 </ul>
1846 Have also a look at the
1847 <a class="navigation" href="http://www.mysql.com/doc/C/a/Can_not_connect_to_server.html" target="_blank">
1848 corresponding section of the MySQL documentation</a>.
1849 </p>
1852 <b>[2.4] Nothing is displayed by my browser when I try to run phpMyAdmin,
1853 what can I do?</b>
1854 <br />
1855 Try to set the <tt>$cfg['OBGZip']</tt> directive to <tt>FALSE</tt> in the
1856 phpMyAdmin configuration file. It helps sometime.<br />
1857 Also have a look at your php version number: if it contains
1858 &quot;4.0b...&quot; it means you're running a beta version of PHP. That's
1859 not a so good idea, please upgrade to a plain revision.
1860 </p>
1863 <b>[2.5] Each time I want to insert or change a record or drop a database
1864 or a table, an error 404 (page not found) is displayed or, with http or
1865 cookie authentication, I'm asked to login again. What's wrong?</b>
1866 <br />
1867 Check the value you set for the <tt>$cfg['PmaAbsoluteUri']</tt> directive
1868 in the phpMyAdmin configuration file.
1869 </p>
1872 <a name="faqlimitations"></a>
1873 <h3>[3. Known limitations]</h3>
1874 <a name="login_bug"></a>
1876 <b>[3.1] When using http authentication, an user who logged out can not
1877 relog in with the same nick.</b>
1878 <br />
1879 This is related to the authentication mechanism (protocol) used by
1880 phpMyAdmin. We plan to change it as soon as we may find enough free time
1881 to do it, but you can bypass this problem: just close all the opened
1882 browser windows and then go back to phpMyAdmin. You should be able to
1883 logs in again.
1884 </p>
1887 <b>[3.2] When dumping a large table in compressed mode, I get a memory
1888 limit error or a time limit error.</b>
1889 <br />
1890 As of version 2.2.4, we build the compressed dump in memory, so large
1891 tables dumps may hang. The only alternative we can think about (using
1892 system calls to mysqldump then gzip or bzip2) would not be applicable in
1893 environments where PHP is in safe mode: access to system programs is
1894 is limited by the system administrator, and time limit is enforced.
1895 </p>
1898 <b>[3.3] With InnoDB tables, I lose foreign key relationships when I rename
1899 or alter a table.</b>
1900 <br />
1901 This seems to be a InnoDB bug (fixed in MySQL 3.23.50?). However, keep in
1902 mind that phpMyAdmin as of version 2.3.0 does not support InnoDB.
1903 </p>
1906 <a name="faqmultiuser"></a>
1907 <h3>[4. ISPs, multi-user installations ]</h3>
1909 <b>[4.1] I'm an ISP. Can I setup one central copy of phpMyAdmin or do I
1910 need to install it for each customer?</b>
1911 <br />
1912 Since version 2.0.3, you can setup a central copy of phpMyAdmin for all
1913 your users. The development of this feature was kindly sponsored by
1914 NetCologne GmbH.
1915 This requires a properly setup MySQL user management and phpMyAdmin
1916 http or cookie authentication. See the install section on
1917 &quot;Using http authentication&quot;.
1918 </p>
1921 <b>[4.2] What's the preferred way of making phpMyAdmin secure against evil
1922 access?</b>
1923 <br />
1924 This depends on your system.<br />
1925 If you're running a server which cannot be accessed by other people, it's
1926 sufficient to use the directory protection bundled with your webserver
1927 (with Apache you can use <i>.htaccess</i> files, for example).<br />
1928 If other people have telnet access to your server, you should use
1929 phpMyAdmin's http authentication feature.
1930 <br /><br />
1931 Suggestions:
1932 </p>
1933 <ul>
1934 <li>
1935 Your <i>config.inc.php3</i> file should be <tt>chmod 660</tt>.
1936 </li>
1937 <li>
1938 All your phpMyAdmin files should be chown phpmy.apache, where phpmy
1939 is a user whose password is only known to you, and apache is the
1940 group under which Apache runs.
1941 </li>
1942 <li>
1943 You should use PHP safe mode, to protect from other users that try
1944 to include your <i>config.inc.php3</i> in their scripts.
1945 </li>
1946 </ul>
1949 <b>[4.3] I get errors about not being able to include a file in
1950 <i>/lang</i> or in <i>/libraries</i>.</b>
1951 <br />
1952 Check <i>php.ini</i>, or ask your sysadmin to check it. The
1953 <tt>include_path</tt> must contain &quot;.&quot; somewhere in it, and
1954 <tt>open_basedir</tt>, if used, must contain &quot;.&quot; and
1955 &quot;./lang&quot; to allow normal operation of phpMyAdmin.
1956 </p>
1958 <b>[4.4] phpMyAdmin always gives &quot;Access denied&quot; when using http
1959 authentication.</b><br />
1960 This could happen for several reasons:
1961 </p>
1962 <ul>
1963 <li>
1964 <tt>$cfg['Servers'][$i]['controluser']</tt> and/or
1965 <tt>$cfg['Servers'][$i]['controlpass']</tt> are wrong.
1966 </li>
1967 <li>
1968 The username/password you specify in the login-dialog are invalid.
1969 </li>
1970 <li>
1971 You have already setup a security mechanism for the
1972 phpMyAdmin-directory, eg. a .htaccess file. This would interfere with
1973 phpMyAdmin's authentication, so remove it.
1974 </li>
1975 </ul>
1978 <b>[4.5] Is it possible to let users create their own databases?</b>
1979 <br />
1980 Starting with 2.2.5, in the user management page, you can enter a wildcard
1981 database name for a user, and put the privileges you want. For example,
1982 adding <tt>SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER</tt>
1983 would let a user create/manage his/her database(s).
1984 </p>
1987 <b>[4.6] How can I use the Host-based authentication additions?</b>
1988 <br />
1989 If you have existing rules from an old .htaccess file, you can take them
1990 and add a username between the <tt>'deny'</tt>/<tt>'allow'</tt> and
1991 <tt>'from'</tt> strings. Using the username wildcard of <tt>'%'</tt> would
1992 be a major benefit here if your installation is suited to using it. Then
1993 you can just add those updated lines into the
1994 <tt>$cfg['Servers'][$i]['AllowDeny']['rules']</tt> array.
1995 <br /><br />
1996 If you want a pre-made sample, you can try this fragment. It stops the
1997 'root' user from logging in from any networks other than the private
1998 network IP blocks.
1999 <br />
2000 <tt>
2001 &nbsp;&nbsp;&nbsp;&nbsp;//block root from logging in except from the private networks<br />
2002 &nbsp;&nbsp;&nbsp;&nbsp;$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';<br />
2003 &nbsp;&nbsp;&nbsp;&nbsp;$cfg['Servers'][$i]['AllowDeny']['rules'] = array(<br />
2004 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'deny root from all',<br />
2005 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'allow root from localhost',<br />
2006 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'allow root from 10.0.0.0/8',<br />
2007 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'allow root from 192.168.0.0/16',<br />
2008 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'allow root from 172.16.0.0/12',<br />
2009 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);
2010 </tt>
2011 </p>
2013 <a name="faqbrowsers"></a>
2014 <h3>[5. Browsers or client OS]</h3>
2016 <b>[5.1] I get an out of memory error, and my controls are non-functional,
2017 when trying to create a table with more than 14 fields.</b>
2018 <br />
2019 We could reproduce this problem only under Win98/98SE. Testing under
2020 WinNT4 or Win2K, we could easily create more than 60 fields.
2021 <br />
2022 A workaround is to create a smaller number of fields, then come back to
2023 your table properties and add the other fields.
2024 </p>
2027 <b>[5.2] With Xitami 2.5b4, phpMyAdmin won't process form fields.</b>
2028 <br />
2029 This is not a phpMyAdmin problem but a Xitami known bug: you'll face it
2030 with each script/website that use forms.<br />
2031 Upgrade or downgrade your Xitami server.
2032 </p>
2035 <b>[5.3] I have problems dumping tables with Konqueror
2036 (phpMyAdmin 2.2.2)</b>
2037 <br />
2038 With Konqueror 2.1.1: plain dumps, zip and gzip dumps work ok, except that
2039 the proposed file name for the dump is always 'tbl_dump.php'. Bzip2 dumps
2040 don't seem to work.<br />
2042 With Konqueror 2.2.1: plain dumps work; zip dumps are placed into
2043 the user's temporary directory, so they must be moved before closing
2044 Konqueror, or else they disappear. Gzip dumps give an error message.<br />
2046 Testing needs to be done for Konqueror 2.2.2.<br />
2047 </p>
2050 <b>[5.4] I can't use the cookie authentication mode because Internet
2051 Explorer never stores the cookies.</b>
2052 <br />
2053 MS Internet Explorer seems to be really buggy about cookies, at least till
2054 version 6. And thanks to Andrew Zivolup we've traced also a php 4.1.1 bug
2055 in this area!
2056 <br />
2057 Then, if you're running php 4.1.1, try to upgrade or downgrade... it may
2058 work!
2059 </p>
2062 <b>[5.5] In Internet Explorer 5.0, I get Javascript errors when browsing my
2063 rows.</b>
2064 <br />
2065 Upgrade to at least Internet Explorer 5.5SP2.<br />
2066 </p>
2069 <b>[5.6] In Internet Explorer 5.0, 5.5 or 6.0, I get an error when trying
2070 to modify a row in a table with many fields, or with a text field.</b>
2071 <br />
2072 Your table neither have a primary key nor an unique one, so we must use a
2073 long URL to identify this row. There is a limit on the lenght of the URL in
2074 those browsers, and this not happen in Netscape, for example. The
2075 workaround is to create a primary or unique key, or use another browser.
2076 <br />
2077 </p>
2080 <b>[5.7] I refresh (reload) my browser, and come back to the welcome
2081 page.</b>
2082 <br />
2083 Some browsers support right-clicking into the frame you want to refresh,
2084 just do this in the right frame.<br />
2085 </p>
2088 <b>[5.8] With Mozilla 0.9.7 I have problems sending a query modified in the
2089 query box.</b>
2090 <br />
2091 Looks like a Mozilla bug: 0.9.6 was ok. We will keep an eye on future
2092 Mozilla versions.<br />
2093 </p>
2096 <b>[5.9] With Mozilla 0.9.? to 1.0 and Netscape 7.0-PR1 I can't type a
2097 whitespace in the SQL-Query edit area: the page scrolls down.</b>
2098 <br />
2099 This is a Mozilla bug (see bug #26882 at
2100 <a class="navigation" href="http://bugzilla.mozilla.org/" target="_blank">Bugzilla</a>).<br />
2101 </p>
2104 <b>[5.10] With Netscape 4.75 I get empty rows between each row of data in a
2105 CSV exported file.</b>
2106 <br />
2107 This is a known Netscape 4.75 bug: it adds some line feeds when exporting
2108 data in octet-stream mode. Since we can't detect the specific Netscape
2109 version, we cannot workaround this bug.
2110 </p>
2112 <a name="faqusing"></a>
2113 <h3>[6. Using phpMyAdmin]</h3>
2115 <b>[6.1] I can't insert new rows into a table - MySQL brings up a
2116 SQL-error.</b>
2117 <br />
2118 Examine the SQL error with care. I've found that many programmers
2119 specifying a wrong field-type.<br />
2120 Common errors include:
2121 </p>
2122 <ul>
2123 <li>Using <tt>VARCHAR</tt> without a size argument</li>
2124 <li>Using <tt>TEXT</tt> or <tt>BLOB</tt> with a size argument</li>
2125 </ul>
2127 Also, look at the syntax chapter in the MySQL manual to confirm that your
2128 syntax is correct.
2129 </p>
2131 <b>[6.2] When I create a table, I click the Index checkbox for 2 fields and
2132 phpMyAdmin generates only one index with those 2 fields.</b>
2133 <br />
2134 In phpMyAdmin 2.2.0 and 2.2.1, this is the way to create a multi-fields
2135 index. If you want two indexes, create the first one when creating the
2136 table, save, then display the table properties and click the Index link to
2137 create the other index.
2138 </p>
2141 <b>[6.3] How can I insert a null value into my table?</b>
2142 <br />
2143 Since version 2.2.3, you have a checkbox for each field that can be null.
2144 Before 2.2.3, you had to enter &quot;null&quot;, without the quotes, as the
2145 field's value.
2146 </p>
2149 <b>[6.4] How can I backup my database or table?</b>
2150 <br />
2151 Click on a database or table name in the left frame, the properties will be
2152 displayed. Then on the menu, click &quot;Export&quot;, you can dump
2153 the structure, the data, or both. This will generate standard SQL
2154 statements that can be used to recreate your database/table.
2155 <br /><br />
2156 You will need to choose &quot;Save as file&quot;, so that phpMyAdmin can
2157 transmit the resulting dump to your station. Depending on your PHP
2158 configuration, you will see options to compress the dump. See also the
2159 <tt>$cfg['ExecTimeLimit']</tt> configuration variable.
2160 <br /><br />
2161 For additional help on this subject, look for the word &quot;dump&quot; in
2162 this document.
2163 </p>
2166 <b>[6.5] How can I restore (upload) my database or table using a dump?
2167 How can I run a &quot;.sql&quot; file?</b>
2168 <br />
2169 Click on a database name in the left frame, the properties will be
2170 local displayed. Then in the &quot;Run SQL query&quot; section, type in
2171 your dump filename, or use the Browse button. Then click Go.
2172 <br /><br />
2173 For additional help on this subject, look for the word &quot;upload&quot;
2174 in this document.
2175 </p>
2178 <b>[6.6] How can I use the relation table in Query-by-example?</b>
2179 <br />
2180 Here is an example with the tables persons, towns and countries, all
2181 located in the database mydb. If you don't have a <tt>PMA_relation</tt>
2182 table, create it as explained in the configuration section. Then create the
2183 example tables:
2184 <br /><br />
2185 <tt>
2186 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CREATE TABLE REL_countries (<br />
2187 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;country_code char(1) NOT NULL default '',<br />
2188 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description varchar(10) NOT NULL default '',<br />
2189 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PRIMARY KEY (country_code)<br />
2190 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) TYPE=MyISAM;<br />
2191 <br />
2192 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INSERT INTO REL_countries VALUES ('C', 'Canada');<br />
2193 <br />
2194 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CREATE TABLE REL_persons (<br />
2195 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id tinyint(4) NOT NULL auto_increment,<br />
2196 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;person_name varchar(32) NOT NULL default '',<br />
2197 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;town_code varchar(5) default '0',<br />
2198 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;country_code char(1) NOT NULL default '',<br />
2199 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PRIMARY KEY (id)<br />
2200 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) TYPE=MyISAM;<br />
2201 <br />
2202 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INSERT INTO REL_persons VALUES (11, 'Marc', 'S', '');<br />
2203 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INSERT INTO REL_persons VALUES (15, 'Paul', 'S', 'C');<br />
2204 <br />
2205 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CREATE TABLE REL_towns (<br />
2206 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;town_code varchar(5) NOT NULL default '0',<br />
2207 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description varchar(30) NOT NULL default '',<br />
2208 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PRIMARY KEY (town_code)<br />
2209 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) TYPE=MyISAM;<br />
2210 <br />
2211 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INSERT INTO REL_towns VALUES ('S', 'Sherbrooke');<br />
2212 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INSERT INTO REL_towns VALUES ('M', 'Montréal');<br />
2213 <br />
2214 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INSERT INTO `PMA_relation` VALUES ('mydb', 'REL_persons', 'town_code', 'mydb', 'REL_towns', 'town_code');<br />
2215 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INSERT INTO `PMA_relation` VALUES ('mydb', 'REL_persons', 'country_code', 'mydb', 'REL_countries', 'country_code');<br />
2216 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INSERT INTO `PMA_table_info` VALUES ('mydb', 'REL_towns', 'description');<br />
2217 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INSERT INTO `PMA_table_info` VALUES ('mydb', 'REL_countries', 'description');<br />
2218 </tt>
2219 <br />
2220 Then test like this:
2221 </p>
2222 <ul>
2223 <li>Click on your db name in the left frame</li>
2224 <li>Choose &quot;Query&quot;</li>
2225 <li>Use tables: persons, towns, countries</li>
2226 <li>Click &quot;Update query&quot;</li>
2227 <li>In the fields row, choose persons.person_name and click the
2228 &quot;Show&quot; tickbox </li>
2229 <li>Do the same for towns.description and countries.descriptions in the
2230 other 2 columns</li>
2231 <li>Click &quot;Update query&quot; and you will see in the query box that
2232 the correct joins have been generated</li>
2233 <li>Click &quot;Submit query&quot;</li>
2234 </ul>
2235 <br />
2237 <a name="faqdisplay"></a>
2239 <b>[6.7] How can I use the &quot;display field&quot; feature?</b>
2240 <br />
2241 Starting from the previous example, create the PMA_table_info as explained
2242 in the configuration section, then browse your persons table,
2243 and move the mouse over a town code or country code.
2244 </p>
2246 <a name="faqpdf"></a>
2248 <b>[6.8] How can I produce a PDF schema of my database?</b>
2249 <br />
2250 First you have to fill the &quot;relation&quot;, &quot;table_coords&quot;
2251 and &quot;pdf_pages&quot; configuration variables.
2252 <br /><br />
2253 Then, think about your schema layout: which tables will go on which pages.
2254 </p>
2255 <ul>
2256 <li>Click on your db name in the left frame</li>
2257 <li>Choose &quot;Structure&quot; in the navigation on top</li>
2258 <li>Choose &quot;Edit PDF Pages&quot; which should be somewhere at the
2259 bottom of the page</li>
2260 <li>Enter the name for a first pdf page and submit</li>
2261 <li>Choose this page to edit</li>
2262 <li>Now add a table you want to show on this page and it's coordinates and
2263 submit<br />
2264 First you will have to guess this coordinates of course, so just expect
2265 to have an area of about 297 * 210 and put the tables coordinates
2266 somewhere in there, you will be able to have a look at what happened
2267 and change them later.<br />
2268 For example, x=100 and y=200 means that the table will be at 200 mm
2269 down and 100 mm right from the upper left corner.<br />
2270 Actually if you have a width of more than 300 or a height of more than
2271 200 than it will automatically be scaled but 300*100 is a good start to
2272 have an idea of what coordinates to use.</li>
2273 <li>After every table you submitted you will have the possibility to submit
2274 more tables</li>
2275 <li>When you have entered enough tables Click on your db name in the left
2276 frame again</li>
2277 <li>Now, again at the bottom of the page you should be able to choose
2278 &quot;Display PDF schema&quot;<br />
2279 For testing it might be useful to show the grid as well, so you can see
2280 the coordinates used.<br />
2281 Maybe also choose color and submit.</li>
2282 <li>Save the file he will offer you to something like <i>Schema.pdf</i>
2283 (Internet Explorer has some bug there which might make it offer it
2284 without an extension. Under Windows it is important to have the
2285 extension &quot;.pdf&quot;, under other OSes you should be fine just
2286 saving the file under the name it offers).</li>
2287 </ul>
2290 <b>[6.9] phpMyAdmin is changing the type of one of my columns!</b>
2291 <br />
2292 No, it's MySQL that is doing
2293 <a class="navigation" href="http://www.mysql.com/doc/S/i/Silent_column_changes.html">silent column type changing</a>.
2294 </p>
2296 <a name="underscore"></a>
2298 <b>[6.10] My database has an underscore in it's name, and when I grant
2299 privileges to a user for this database, a backslash is added before the
2300 underscore.</b>
2301 <br />
2302 This is normal and means that the grant is done only for this database. If
2303 there was no backslash, this would be a wildcard grant, and the
2304 underscore would mean &quot;any character&quot;. So, if the database name
2305 is &quot;john_db&quot;, the user would get rights to john1db, john2db...
2306 instead of just john_db.<br /><br />
2307 If you really want to grant using a wildcard, there is a dialog box &quot;
2308 Database (wildcards allowed)&quot; for this.
2309 </p>
2311 <b>[6.11] What is the curious symbol &oslash; in the table statistics?</b>
2312 <br />
2313 It means &quot;average&quot;.
2314 </p>
2316 <a name="faqexport"></a>
2318 <b>[6.12] I want to understand some Export options.</b>
2319 <br />
2320 &quot;Complete inserts&quot; adds the column names on every INSERT command,
2321 for better documentation (but resulting file is bigger).<br />
2322 &quot;Extended inserts&quot; provides a shorter dump file by using only
2323 once the INSERT verb and the table name.<br />
2324 &quot;Enclose table and field names with backquotes&quot; ensures that
2325 field and table names formed with special characters are protected.<br />
2326 </p>
2329 <b>[6.13] I would like to create a database with a dot in its name.</b>
2330 <br />
2331 This is a bad idea, because in MySQL the syntax &quot;database.table&quot;
2332 is the normal way to reference a database and table name. Worse, MySQL
2333 will usually let you create a database with a dot, but then you cannot
2334 work with it, nor delete it.<br />
2335 </p>
2337 <a name="faqsqlvalidator"></a>
2339 <b>[6.14] How do I set up the SQL validator?</b>
2340 <br />
2341 To use it, you need a very recent version of PHP, built with
2342 Overload, XML and PEAR support. On your system command line, run
2343 <tt>"pear install Mail_Mime Net_DIME SOAP"</tt> to get the nessecary
2344 PEAR modules for usage.
2345 <br />
2346 If you use it, you should be aware that any SQL statement you
2347 submit will be stored anonymously (database/table/column names,
2348 strings, numbers replaced with generic values). The Mimer SQL
2349 Validator itself, is &copy; 2001 Upright Database Technology.
2350 We utilize it as free XML-SOAP service.
2351 <br />
2352 The overload module is crucial to the functionality of the validator
2353 service.
2354 </p>
2357 <b>[6.15] I want to add a BLOB field and put an index on it, but MySQL
2358 says &quot;BLOB column '...' used in key specification without a key
2359 length&quot;.</b>
2360 <br />
2361 The right way to do this, is to create the field without any indexes,
2362 then display the table structure and use the &quot;Create an index&quot;
2363 dialog. On this page, you will be able to choose your BLOB field, and
2364 set a size to the index, which is the condition to create an index on
2365 a BLOB field.
2366 <br />
2367 </p>
2369 <a name="faqproject"></a>
2370 <h3>[7. phpMyAdmin project]</h3>
2372 <b>[7.1] I have found a bug. How do I inform developers?</b>
2373 <br />
2374 Our Bug Tracker is located at
2375 <a href="http://sourceforge.net/projects/phpmyadmin/">http://sourceforge.net/projects/phpmyadmin/</a>
2376 under the Bugs section.
2377 <br /><br />
2378 But please first discuss your bug with other users:
2379 <br />
2380 <a href="http://sourceforge.net/projects/phpmyadmin/">
2381 http://sourceforge.net/projects/phpmyadmin/</a> (and choose Forums)
2382 </p>
2385 <b>[7.2] I want to translate the messages to a new language or upgrade an
2386 existing language, where do I start?</b>
2387 <br />
2388 Always use the current cvs version of your language file.
2389 For a new language, start from <i>english-iso-8859-1.inc.php3</i>. If you
2390 don't know how to get the cvs version, please ask one of the developers.
2391 <br />
2392 Please note that we try not to use html entities like &amp;eacute; in
2393 the translations, since we define the right character set in the file.
2394 With html entities, the text on buttons would not display correctly.
2395 <br />
2396 You can then put your translations, as a zip file to avoid losing special
2397 characters, on the sourceforge.net translation tracker.
2398 <br />
2399 It would be a good idea to subscribe to the phpmyadmin-translators mailing
2400 list, because this is where we ask for translations of new messages.
2401 <br />
2402 </p>
2405 <b>[7.3] I would like to help out with the development of phpMyAdmin. How
2406 should I proceed?</b>
2407 <br />
2408 The following method is preferred for new developers:
2409 </p>
2410 <ul>
2411 <li>
2412 fetch the current CVS tree over anonymous CVS:<br />
2413 <tt>cvs -d:pserver:anonymous@cvs.phpmyadmin.sourceforge.net:/cvsroot/phpmyadmin login</tt><br />
2414 [Password: simply press the Enter key]<br />
2415 <tt>cvs -z3 -d:pserver:anonymous@cvs.phpmyadmin.sourceforge.net:/cvsroot/phpmyadmin checkout phpMyAdmin</tt><br />
2416 [This will create a new sub-directory named phpMyAdmin]
2417 </li>
2418 <li>
2419 add your stuff
2420 </li>
2421 <li>
2422 put the modified files (tar'ed and gzip'ed) inside the patch tracker of
2424 <a class="navigation" href="http://sourceforge.net/projects/phpmyadmin/" target="_blank">phpMyAdmin SourceForge account</a>.
2425 </li>
2426 </ul>
2428 Write access to the CVS tree is granted only to experienced developers who
2429 have already contributed something useful to phpMyAdmin.<br />
2430 Also, have a look at the
2431 <a class="navigation" href="#developers">Developers section</a>.
2432 </p>
2436 <!-- DEVELOPERS -->
2437 <a name="developers"></a><br />
2438 <hr noshade="noshade" width="100%" />
2439 <font size="+1">
2440 <a class="navigation2" href="#top">Top</a> &nbsp;-&nbsp;
2441 <a class="navigation2" href="#require">Requirements</a> &nbsp;-&nbsp;
2442 <a class="navigation2" href="#intro">Introduction</a> &nbsp;-&nbsp;
2443 <a class="navigation2" href="#setup">Installation</a> &nbsp;-&nbsp;
2444 <a class="navigation2" href="#config">Configuration</a> &nbsp;-&nbsp;
2445 <a class="navigation2" href="#faq">FAQ</a> &nbsp;-&nbsp;
2446 <a class="navigation2" href="#developers">Developers</a> &nbsp;-&nbsp;
2447 <a class="navigation2" href="#credits">Credits</a>
2448 </font>
2449 <hr noshade="noshade" width="100%" />
2451 <h2>Developers Information</h2>
2454 phpMyAdmin is Open Source, so you're invited to contribute to it. Many
2455 great features have been written by other people and you too can help to
2456 make phpMyAdmin a useful tool.
2457 </p>
2460 If you're planning to contribute source, please read the following
2461 information:
2462 </p>
2463 <ul>
2464 <li>
2465 All files include <i>header.inc.php3</i> (layout),
2466 <i>libraries/common.lib.php3</i> (common functions) and
2467 <i>config.inc.php3</i>.
2468 <br />
2469 All configuration data belongs in <i>config.inc.php3</i>. Please keep
2470 it free from other code.
2471 <br />
2472 Commonly used functions should be added to
2473 <i>libraries/common.lib.php3</i> and more specific ones may be added
2474 within a library stored into the <i>libraries</i> sub-directory.
2475 </li>
2476 <li>
2477 Obviously, you're free to use whatever coding style you want. But
2478 please try to keep your code as simple as possible: beginners are
2479 using phpMyAdmin as an example application.<br />
2480 As far as possible, we want the scripts to be XHTML1.0 and CSS2
2481 compliant on one hand, they fit
2482 <a class="navigation" href="http://pear.php.net/" target="_blank">PEAR coding standards</a>
2483 on the other hand. Please pay attention to this.
2484 </li>
2485 <li>
2486 Please try to keep up the file-naming conventions. Table-related stuff
2487 goes to <i>tbl_*.php3</i>, db-related code to <i>db_*.php3</i> and so
2489 </li>
2490 <li>
2491 Please don't use verbose strings in your code, instead add the string
2492 (at least) to <i>english-iso-8859-1.inc.php3</i> and print() it out.
2493 </li>
2494 <li>
2495 If you want to be really helpful, write an entry for the ChangeLog.
2496 </li>
2497 </ul>
2500 IMPORTANT: With 1.4.1, development has switched to CVS. The following
2501 method is preferred for new developers:
2502 </p>
2503 <ul>
2504 <li>
2505 fetch the current CVS tree over anonymous CVS:<br />
2506 <tt>cvs -d:pserver:anonymous@cvs.phpmyadmin.sourceforge.net:/cvsroot/phpmyadmin login</tt><br />
2507 [Password: simply press the Enter key]<br />
2508 <tt>cvs -z3 -d:pserver:anonymous@cvs.phpmyadmin.sourceforge.net:/cvsroot/phpmyadmin checkout phpMyAdmin</tt><br />
2509 [This will create a new sub-directory named phpMyAdmin]
2510 </li>
2511 <li>
2512 add your stuff
2513 </li>
2514 <li>
2515 put the modified files (tar'ed and gzip'ed) inside the patch tracker
2516 of the phpMyAdmin SourceForge account
2517 (<a class="navigation" href="http://sourceforge.net/projects/phpmyadmin/" target="_blank">http://sourceforge.net/projects/phpmyadmin/</a>)
2518 </li>
2519 </ul>
2521 Write access to the CVS tree is granted only to developers who have already
2522 contributed something useful to phpMyAdmin. If you're interested in that,
2523 please contact us using the phpmyadmin-devel mailing list.
2524 </p>
2527 <!-- CREDITS -->
2528 <a name="credits"></a><br />
2529 <hr noshade="noshade" width="100%" />
2530 <font size="+1">
2531 <a class="navigation2" href="#top">Top</a> &nbsp;-&nbsp;
2532 <a class="navigation2" href="#require">Requirements</a> &nbsp;-&nbsp;
2533 <a class="navigation2" href="#intro">Introduction</a> &nbsp;-&nbsp;
2534 <a class="navigation2" href="#setup">Installation</a> &nbsp;-&nbsp;
2535 <a class="navigation2" href="#config">Configuration</a> &nbsp;-&nbsp;
2536 <a class="navigation2" href="#faq">FAQ</a> &nbsp;-&nbsp;
2537 <a class="navigation2" href="#developers">Developers</a> &nbsp;-&nbsp;
2538 <a class="navigation2" href="#credits">Credits</a>
2539 </font>
2540 <hr noshade="noshade" width="100%" />
2542 <h2>Credits</h2>
2544 <pre>
2546 phpMyAdmin - Credits
2547 ====================
2549 CREDITS, in chronological order
2550 -------------------------------
2552 - Tobias Ratschiller &lt;tobias.ratschiller_at_maguma.com&gt;
2553 * creator of the phpmyadmin project
2554 * maintainer from 1998 to summer 2000
2556 - Marc Delisle &lt;DelislMa_at_CollegeSherbrooke.qc.ca&gt;
2557 * multi-language version
2558 * various fixes and improvements
2559 * project co-administrator
2561 - Olivier M&uuml;ller &lt;om_at_omnis.ch&gt;
2562 * started SourceForge phpMyAdmin project in March 2001
2563 * sync'ed different existing CVS trees with new features and bugfixes
2564 * multi-language improvements, dynamic language selection
2565 * current project maintainer
2566 * many bugfixes and improvements
2568 - Lo&iuml;c Chapeaux &lt;lolo_at_phpheaven.net&gt;
2569 * rewrote and optimized javascript, DHTML and DOM stuff
2570 * rewrote the scripts so they fit the PEAR coding standards and
2571 generate XHTML1.0 and CSS2 compliant codes
2572 * improved the language detection system
2573 * many bugfixes and improvements
2575 - Robin Johnson &lt;robbat2_at_users.sourceforge.net&gt;
2576 * database maintence controls
2577 * table type code
2578 * Host authentication IP Allow/Deny
2579 * DB-based configuration (Not completed)
2580 * SQL parser
2581 * SQL validator
2582 * many bugfixes and improvements
2584 - Armel Fauveau &lt;armel.fauveau_at_globalis-ms.com&gt;
2585 * bookmarks feature
2586 * multiple dump feature
2587 * gzip dump feature
2588 * zip dump feature
2590 - Geert Lund &lt;glund_at_silversoft.dk&gt;
2591 * various fixes
2592 * moderator of the phpMyAdmin users forum at phpwizard.net
2594 - Korakot Chaovavanich &lt;korakot_at_iname.com&gt;
2595 * &quot;insert as new row&quot; feature
2597 - Pete Kelly &lt;webmaster_at_trafficg.com&gt;
2598 * rewrote and fix dump code
2599 * bugfixes
2601 - Steve Alberty &lt;alberty_at_neptunlabs.de&gt;
2602 * rewrote dump code for PHP4
2603 * mySQL table statistics
2604 * bugfixes
2606 - Benjamin Gandon &lt;gandon_at_isia.cma.fr&gt;
2607 * main author of the version 2.1.0.1
2608 * bugfixes
2610 - Alexander M. Turek &lt;rabus_at_bugfixes.info&gt;
2611 * XML exports
2612 * MySQL 4 related features
2613 * various small features and fixes
2614 * German language file updates
2616 - Mike Beck &lt;mike.beck_at_ibmiller.de&gt;
2617 * automatic joins in QBE
2618 * links column in printview
2619 * Relation view
2621 - Michal Cihar &lt;nijel_at_users.sourceforge.net&gt;
2622 * enhanced index creation/display feature
2623 * feature to use a different charset for HTML than for MySQL
2624 * Czech language file updates
2626 - Christophe Gesch&eacute; from the &quot;MySQL Form Generator for PHPMyAdmin&quot;
2627 (http://sourceforge.net/projects/phpmysqlformgen/)
2628 * suggested the patch for multiple table printviews
2630 - Garvin Hicking &lt;hicking_at_faktor-e.de&gt;
2631 * built the patch for vertical display of table rows
2633 - Yukihiro Kawada &lt;kawada_at_den.fujifilm.co.jp&gt;
2634 * japanese kanji encoding conversion feature
2636 - Piotr Roszatycki &lt;d3xter_at_users.sourceforge.net&gt; and Dan Wilson
2637 * the Cookie authentication mode
2639 - Axel Sander &lt;n8falke_at_users.sourceforge.net&gt;
2640 * table relation-links feature
2642 - Maxime Delorme &lt;delorme.maxime_at_free.fr&gt;
2643 * PDF schema output, thanks also to Olivier Plathey for the
2644 &quot;FPDF&quot; library (see http://www.fpdf.org/).
2646 - Olof Edlund &lt;olof.edlund_at_upright.se&gt;
2647 * SQL validator server
2649 - Ivan R. Lanin &lt;ivanlanin_at_users.sourceforfe.net&gt;
2650 * phpMyAdmin logo
2652 And also to the following people who have contributed minor changes,
2653 enhancements, bugfixes or support for a new language since version 2.1.0:
2655 Bora Alioglu, Ricardo ?, Sven-Erik Andersen, Alessandro Astarita,
2656 P&eacute;ter Bakondy, Borges Botelho, Olivier Bussier, Neil Darlow,
2657 Laurent Dhima, Kristof Hamann, Thomas Kl&auml;ger, Lubos Klokner,
2658 Martin Marconcini, Girish Nair, David Nordenberg, Andreas Pauley,
2659 Bernard M. Piller, Laurent Haas, &quot;Sakamoto&quot;, Yuval Sarna,
2660 www.securereality.com.au, Alvar Soome, Siu Sun, Peter Svec, Michael Tacelosky,
2661 Rachim Tamsjadi, Kositer Uros, Luís V., Martijn W. van der Lee,
2662 Algis Vainauskas, Daniel Villanueva, Vinay, Ignacio Vazquez-Abrams, Chee Wai,
2663 Jakub Wilk, Thomas Michael Winningham, Vilius Zigmantas.
2666 Original Credits of Version 2.1.0
2667 ---------------------------------
2669 This work is based on Peter Kuppelwieser's MySQL-Webadmin. It was his idea
2670 to create a web-based interface to MySQL using PHP3. Although I have not
2671 used any of his source-code, there are some concepts I've borrowed from
2672 him. phpMyAdmin was created because Peter told me he wasn't going to
2673 further develop his (great) tool.
2674 Thanks go to
2675 - Amalesh Kempf &lt;ak-lsml_at_living-source.com&gt; who contributed the
2676 code for the check when dropping a table or database. He also suggested
2677 that you should be able to specify the primary key on tbl_create.php3. To
2678 version 1.1.1 he contributed the ldi_*.php3-set (Import text-files) as
2679 well as a bug-report. Plus many smaller improvements.
2680 - Jan Legenhausen &lt;jan_at_nrw.net&gt;: He made many of the changes that
2681 were introduced in 1.3.0 (including quite significant ones like the
2682 authentication). For 1.4.1 he enhanced the table-dump feature. Plus
2683 bug-fixes and help.
2684 - Marc Delisle &lt;DelislMa_at_CollegeSherbrooke.qc.ca&gt; made phpMyAdmin
2685 language-independent by outsourcing the strings to a separate file. He
2686 also contributed the French translation.
2687 - Alexandr Bravo &lt;abravo_at_hq.admiral.ru&gt; who contributed
2688 tbl_select.php3, a feature to display only some fields from a table.
2689 - Chris Jackson &lt;chrisj_at_ctel.net&gt; added support for MySQL
2690 functions in tbl_change.php3. He also added the
2691 &quot;Query by Example&quot; feature in 2.0.
2692 - Dave Walton &lt;walton_at_nordicdms.com&gt; added support for multiple
2693 servers and is a regular contributor for bug-fixes.
2694 - Gabriel Ash &lt;ga244_at_is8.nyu.edu&gt; contributed the random access
2695 features for 2.0.6.
2696 The following people have contributed minor changes, enhancements, bugfixes
2697 or support for a new language:
2698 Jim Kraai, Jordi Bruguera, Miquel Obrador, Geert Lund, Thomas Kleemann,
2699 Alexander Leidinger, Kiko Albiol, Daniel C. Chao, Pavel Piankov,
2700 Sascha Kettler, Joe Pruett, Renato Lins, Mark Kronsbein, Jannis Hermanns,
2701 G. Wieggers.
2703 And thanks to everyone else who sent me email with suggestions, bug-reports
2704 and or just some feedback.
2705 </pre>
2709 <a name="bottom"></a><br />
2710 <hr noshade="noshade" width="100%" />
2711 <font size="+1">
2712 <a class="navigation2" href="#top">Top</a> &nbsp;-&nbsp;
2713 <a class="navigation2" href="#require">Requirements</a> &nbsp;-&nbsp;
2714 <a class="navigation2" href="#intro">Introduction</a> &nbsp;-&nbsp;
2715 <a class="navigation2" href="#setup">Installation</a> &nbsp;-&nbsp;
2716 <a class="navigation2" href="#config">Configuration</a> &nbsp;-&nbsp;
2717 <a class="navigation2" href="#faq">FAQ</a> &nbsp;-&nbsp;
2718 <a class="navigation2" href="#developers">Developers</a> &nbsp;-&nbsp;
2719 <a class="navigation2" href="#credits">Credits</a>
2720 </font>
2721 <hr noshade="noshade" width="100%" />
2723 <p align="right">
2724 <a href="http://validator.w3.org/check/referer" target="w3c">
2725 <img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" border="0" height="31" width="88" /></a>
2726 &nbsp;&nbsp;&nbsp;&nbsp;
2727 <a href="http://jigsaw.w3.org/css-validator/" target="w3c">
2728 <img src="http://www.w3.org/Icons/valid-css" alt="Valid CSS!" border="0" width="88" height="31" /></a>
2729 </p>
2731 </body>
2732 </html>