Advertisement
Paceusa

MySQL Web Interface

Nov 5th, 2021 (edited)
1,593
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 34.96 KB | None | 0 0
  1. <?
  2. /*
  3. * MySQL Web Interface Version 0.8
  4. * -------------------------------
  5. * Developed By SooMin Kim (smkim@popeye.snu.ac.kr)
  6. * License : GNU Public License (GPL)
  7. * Homepage : http://popeye.snu.ac.kr/~smkim/mysql
  8. */
  9.  
  10. $HOSTNAME = "localhost";
  11.  
  12. function logon() {
  13.     global $PHP_SELF;
  14.  
  15.     setcookie( "mysql_web_admin_username" );
  16.     setcookie( "mysql_web_admin_password" );
  17.     echo "<html>\n";
  18.     echo "<head>\n";
  19.     echo "<title>MySQL Web Interface</title>\n";
  20.     echo "</head>\n";
  21.     echo "<body>\n";
  22.     echo "<table width=100% height=100%><tr><td><center>\n";
  23.     echo "<table cellpadding=2><tr><td bgcolor=#a4a260><center>\n";
  24.     echo "<table cellpadding=20><tr><td bgcolor=#ffffff><center>\n";
  25.     echo "<h1>MySQL Web Interface</h1>\n";
  26.     echo "<form action='$PHP_SELF'>\n";
  27.     echo "<input type=hidden name=action value=logon_submit>\n";
  28.     echo "<table cellpadding=5 cellspacing=1>\n";
  29.     echo "<tr><td>Username </td><td> <input type=text
  30. name=username></td></tr>\n";
  31.     echo "<tr><td>Password </td><td> <input type=password
  32. name=password></td></tr>\n";
  33.     echo "</table><p>\n";
  34.     echo "<input type=submit value='Enter'>\n";
  35.     echo "<input type=reset value='Clear'><br>\n";
  36.     echo "</form>\n";
  37.     echo "</center></td></tr></table>\n";
  38.     echo "</center></td></tr></table>\n";
  39.     echo "<p><hr width=300>\n";
  40.     echo "<font size=2>\n";
  41.     echo "Copyleft &copy; since 1999,\n";
  42.     echo "<a href='mailto:smkim76@icqmail.com'>SooMin Kim</a><br>\n";
  43.     echo "<a href='http://popeye.snu.ac.kr/~smkim/mysql'>Hompage<a> is
  44. available<br>";
  45.     echo "</font>\n";
  46.     echo "</center></td></tr></table>\n";
  47.     echo "</body>\n";
  48.     echo "</html>\n";
  49. }
  50.  
  51. function logon_submit() {
  52.     global $username, $password, $PHP_SELF;
  53.  
  54.     setcookie( "mysql_web_admin_username", $username );
  55.     setcookie( "mysql_web_admin_password", $password );
  56.     echo "<html>";
  57.     echo "<head>";
  58.     echo "<META HTTP-EQUIV=Refresh CONTENT='0;
  59. URL=$PHP_SELF?action=listDBs'>";
  60.     echo "</head>";
  61.     echo "</html>";
  62. }
  63.  
  64. function echoQueryResult() {
  65.     global $queryStr, $errMsg;
  66.  
  67.     if( $errMsg == "" ) $errMsg = "Success";
  68.     if( $queryStr != "" ) {
  69.         echo "<table cellpadding=5>\n";
  70.         echo "<tr><td>Query</td><td>$queryStr</td></tr>\n";
  71.         echo "<tr><td>Result</td><td>$errMsg</td></tr>\n";
  72.         echo "</table><p>\n";
  73.     }
  74. }
  75.  
  76. function listDatabases() {
  77.     global $mysqlHandle, $PHP_SELF;
  78.  
  79.     echo "<h1>Database List</h1>\n";
  80.  
  81.     echo "<form action='$PHP_SELF'>\n";
  82.     echo "<input type=hidden name=action value=createDB>\n";
  83.     echo "<input type=text name=dbname>\n";
  84.     echo "<input type=submit value='Create Database'>\n";
  85.     echo "</form>\n";
  86.     echo "<hr>\n";
  87.  
  88.     echo "<table cellspacing=1 cellpadding=5>\n";
  89.  
  90.     $pDB = mysql_list_dbs( $mysqlHandle );
  91.     $num = mysql_num_rows( $pDB );
  92.     for( $i = 0; $i < $num; $i++ ) {
  93.         $dbname = mysql_dbname( $pDB, $i );
  94.         echo "<tr>\n";
  95.         echo "<td>$dbname</td>\n";
  96.         echo "<td><a
  97. href='$PHP_SELF?action=listTables&dbname=$dbname'>Table</a></td>\n";
  98.         echo "<td><a href='$PHP_SELF?action=dropDB&dbname=$dbname'
  99. onClick=\"return confirm('Drop Database
  100. \'$dbname\'?')\">Drop</a></td>\n";
  101.         echo "<td><a
  102. href='$PHP_SELF?action=dumpDB&dbname=$dbname'>Dump</a></td>\n";
  103.         echo "</tr>\n";
  104.     }
  105.     echo "</table>\n";
  106. }
  107.  
  108. function createDatabase() {
  109.     global $mysqlHandle, $dbname, $PHP_SELF;
  110.  
  111.     mysql_create_db( $dbname, $mysqlHandle );
  112.     listDatabases();
  113. }
  114.  
  115. function dropDatabase() {
  116.     global $mysqlHandle, $dbname, $PHP_SELF;
  117.  
  118.     mysql_drop_db( $dbname, $mysqlHandle );
  119.     listDatabases();
  120. }
  121.  
  122. function listTables() {
  123.     global $mysqlHandle, $dbname, $PHP_SELF;
  124.  
  125.     echo "<h1>Table List</h1>\n";
  126.     echo "<p class=location>$dbname</p>\n";
  127.     echoQueryResult();
  128.     echo "<form action='$PHP_SELF'>\n";
  129.     echo "<input type=hidden name=action value=createTable>\n";
  130.     echo "<input type=hidden name=dbname value=$dbname>\n";
  131.     echo "<input type=text name=tablename>\n";
  132.     echo "<input type=submit value='Create Table'>\n";
  133.     echo "</form>\n";
  134.     echo "<form action='$PHP_SELF'>\n";
  135.     echo "<input type=hidden name=action value=query>\n";
  136.     echo "<input type=hidden name=dbname value=$dbname>\n";
  137.     echo "<input type=text size=40 name=queryStr>\n";
  138.     //echo "<textarea cols=30 rows=3 name=queryStr></textarea><br>";
  139.     echo "<input type=submit value='Query'>\n";
  140.     echo "</form>\n";
  141.     echo "<hr>\n";
  142.  
  143.     $pTable = mysql_list_tables( $dbname );
  144.  
  145.     if( $pTable == 0 ) {
  146.         $msg  = mysql_error();
  147.         echo "<h3>Error : $msg</h3><p>\n";
  148.         return;
  149.     }
  150.     $num = mysql_num_rows( $pTable );
  151.  
  152.     echo "<table cellspacing=1 cellpadding=5>\n";
  153.  
  154.     for( $i = 0; $i < $num; $i++ ) {
  155.         $tablename = mysql_tablename( $pTable, $i );
  156.  
  157.         echo "<tr>\n";
  158.         echo "<td>\n";
  159.         echo "$tablename\n";
  160.         echo "</td>\n";
  161.         echo "<td>\n";
  162.         echo "<a
  163. href='$PHP_SELF?action=viewSchema&dbname=$dbname&tablename=$tablename'>Schema</a>\n";
  164.         echo "</td>\n";
  165.         echo "<td>\n";
  166.         echo "<a
  167. href='$PHP_SELF?action=viewData&dbname=$dbname&tablename=$tablename'>Data</a>\n";
  168.         echo "</td>\n";
  169.         echo "<td>\n";
  170.         echo "<a
  171. href='$PHP_SELF?action=dropTable&dbname=$dbname&tablename=$tablename'
  172. onClick=\"return confirm('Drop Database \'$dbname\'?')\">Drop</a>\n";
  173.         echo "</td>\n";
  174.         echo "<td>\n";
  175.         echo "<a
  176. href='$PHP_SELF?action=dumpTable&dbname=$dbname&tablename=$tablename'>Dump</a>\n";
  177.         echo "</td>\n";
  178.         echo "</tr>\n";
  179.     }
  180.  
  181.     echo "</table>";
  182. }
  183.  
  184. function createTable() {
  185.     global $mysqlHandle, $dbname, $tablename, $PHP_SELF, $queryStr,
  186. $errMsg;
  187.  
  188.     $queryStr = "CREATE TABLE $tablename ( no INT )";
  189.     mysql_select_db( $dbname, $mysqlHandle );
  190.     mysql_query( $queryStr, $mysqlHandle );
  191.     $errMsg = mysql_error();
  192.  
  193.     listTables();
  194. }
  195.  
  196. function dropTable() {
  197.     global $mysqlHandle, $dbname, $tablename, $PHP_SELF, $queryStr,
  198. $errMsg;
  199.  
  200.     $queryStr = "DROP TABLE $tablename";
  201.     mysql_select_db( $dbname, $mysqlHandle );
  202.     mysql_query( $queryStr, $mysqlHandle );
  203.     $errMsg = mysql_error();
  204.  
  205.     listTables();
  206. }
  207.  
  208. function viewSchema() {
  209.     global $mysqlHandle, $dbname, $tablename, $PHP_SELF, $queryStr,
  210. $errMsg;
  211.  
  212.     echo "<h1>Table Schema</h1>\n";
  213.     echo "<p class=location>$dbname &gt; $tablename</p>\n";
  214.  
  215.     echoQueryResult();
  216.  
  217.     echo "<a
  218. href='$PHP_SELF?action=addField&dbname=$dbname&tablename=$tablename'>Add
  219. Field</a> | \n";
  220.     echo "<a
  221. href='$PHP_SELF?action=viewData&dbname=$dbname&tablename=$tablename'>View
  222. Data</a>\n";
  223.     echo "<hr>\n";
  224.  
  225.     $pResult = mysql_db_query( $dbname, "SHOW fields FROM $tablename" );
  226.     $num = mysql_num_rows( $pResult );
  227.  
  228.     echo "<table cellspacing=1 cellpadding=5>\n";
  229.     echo "<tr>\n";
  230.     echo "<th>Field</th>\n";
  231.     echo "<th>Type</th>\n";
  232.     echo "<th>Null</th>\n";
  233.     echo "<th>Key</th>\n";
  234.     echo "<th>Default</th>\n";
  235.     echo "<th>Extra</th>\n";
  236.     echo "<th colspan=2>Action</th>\n";
  237.     echo "</tr>\n";
  238.  
  239.     for( $i = 0; $i < $num; $i++ ) {
  240.         $field = mysql_fetch_array( $pResult );
  241.         echo "<tr>\n";
  242.         echo "<td>".$field["Field"]."</td>\n";
  243.         echo "<td>".$field["Type"]."</td>\n";
  244.         echo "<td>".$field["Null"]."</td>\n";
  245.         echo "<td>".$field["Key"]."</td>\n";
  246.         echo "<td>".$field["Default"]."</td>\n";
  247.         echo "<td>".$field["Extra"]."</td>\n";
  248.         $fieldname = $field["Field"];
  249.         echo "<td><a
  250. href='$PHP_SELF?action=editField&dbname=$dbname&tablename=$tablename&fieldname=$fieldname'>Edit</a></td>\n";
  251.         echo "<td><a
  252. href='$PHP_SELF?action=dropField&dbname=$dbname&tablename=$tablename&fieldname=$fieldname'
  253. onClick=\"return confirm('Drop Field
  254. \'$fieldname\'?')\">Drop</a></td>\n";
  255.         echo "</tr>\n";
  256.     }
  257.     echo "</table>\n";
  258. }
  259.  
  260. function manageField( $cmd ) {
  261.     global $mysqlHandle, $dbname, $tablename, $fieldname, $PHP_SELF;
  262.  
  263.     if( $cmd == "add" )
  264.         echo "<h1>Add Field</h1>\n";
  265.     else if( $cmd == "edit" ) {
  266.         echo "<h1>Edit Field</h1>\n";
  267.         $pResult = mysql_db_query( $dbname, "SHOW fields FROM $tablename" );
  268.         $num = mysql_num_rows( $pResult );
  269.         for( $i = 0; $i < $num; $i++ ) {
  270.             $field = mysql_fetch_array( $pResult );
  271.             if( $field["Field"] == $fieldname ) {
  272.                 $fieldtype = $field["Type"];
  273.                 $fieldkey = $field["Key"];
  274.                 $fieldextra = $field["Extra"];
  275.                 $fieldnull = $field["Null"];
  276.                 $fielddefault = $field["Default"];
  277.                 break;
  278.             }
  279.         }
  280.         $type = strtok( $fieldtype, " (,)\n" );
  281.         if( strpos( $fieldtype, "(" ) ) {
  282.             if( $type == "enum" | $type == "set" ) {
  283.                 $valuelist = strtok( " ()\n" );
  284.             } else {
  285.                 $M = strtok( " (,)\n" );
  286.                 if( strpos( $fieldtype, "," ) )
  287.                     $D = strtok( " (,)\n" );
  288.             }
  289.         }
  290.     }
  291.  
  292.     echo "<p class=location>$dbname &gt; $tablename</p>\n";
  293.     echo "<form action=$PHP_SELF>\n";
  294.  
  295.     if( $cmd == "add" )
  296.         echo "<input type=hidden name=action value=addField_submit>\n";
  297.     else if( $cmd == "edit" ) {
  298.         echo "<input type=hidden name=action value=editField_submit>\n";
  299.         echo "<input type=hidden name=old_name value=$fieldname>\n";
  300.     }
  301.     echo "<input type=hidden name=dbname value=$dbname>\n";
  302.     echo "<input type=hidden name=tablename value=$tablename>\n";
  303.  
  304.     echo "<h3>Name</h3>\n";
  305.     echo "<input type=text name=name value=$fieldname><p>\n";
  306. ?>
  307.  
  308. <h3>Type</h3>
  309.  
  310. <font size=2>
  311. * `M' indicates the maximum display size.<br>
  312. * `D' applies to floating-point types and indicates the number of
  313. digits
  314. following the decimal point.<br>
  315. </font>
  316.  
  317. <table>
  318. <tr>
  319. <th>Type</th><th>&nbspM&nbsp</th><th>&nbspD&nbsp</th><th>unsigned</th><th>zerofill</th><th>binary</th>
  320. </tr>
  321. <tr>
  322. <td><input type=radio name=type value="TINYINT" <? if( $type ==
  323. "tinyint" )
  324. echo "checked";?>>TINYINT (-128 ~ 127)</td>
  325. <td align=center>O</td>
  326. <td>&nbsp</td>
  327. <td align=center>O</td>
  328. <td align=center>O</td>
  329. <td>&nbsp</td>
  330. </tr>
  331. <tr>
  332. <td><input type=radio name=type value="SMALLINT" <? if( $type ==
  333. "smallint"
  334. ) echo "checked";?>>SMALLINT (-32768 ~ 32767)</td>
  335. <td align=center>O</td>
  336. <td>&nbsp</td>
  337. <td align=center>O</td>
  338. <td align=center>O</td>
  339. <td>&nbsp</td>
  340. </tr>
  341. <tr>
  342. <td><input type=radio name=type value="MEDIUMINT" <? if( $type ==
  343. "mediumint" ) echo "checked";?>>MEDIUMINT (-8388608 ~ 8388607)</td>
  344. <td align=center>O</td>
  345. <td>&nbsp</td>
  346. <td align=center>O</td>
  347. <td align=center>O</td>
  348. <td>&nbsp</td>
  349. </tr>
  350. <tr>
  351. <td><input type=radio name=type value="INT" <? if( $type == "int" )
  352. echo
  353. "checked";?>>INT (-2147483648 ~ 2147483647)</td>
  354. <td align=center>O</td>
  355. <td>&nbsp</td>
  356. <td align=center>O</td>
  357. <td align=center>O</td>
  358. <td>&nbsp</td>
  359. </tr>
  360. <tr>
  361. <td><input type=radio name=type value="BIGINT" <? if( $type == "bigint"
  362. )
  363. echo "checked";?>>BIGINT (-9223372036854775808 ~
  364. 9223372036854775807)</td>
  365. <td align=center>O</td>
  366. <td>&nbsp</td>
  367. <td align=center>O</td>
  368. <td align=center>O</td>
  369. <td>&nbsp</td>
  370. </tr>
  371. <tr>
  372. <td><input type=radio name=type value="FLOAT" <? if( $type == "float" )
  373. echo
  374. "checked";?>>FLOAT</td>
  375. <td align=center>O</td>
  376. <td align=center>O</td>
  377. <td>&nbsp</td>
  378. <td align=center>O</td>
  379. <td>&nbsp</td>
  380. </tr>
  381. <tr>
  382. <td><input type=radio name=type value="DOUBLE" <? if( $type == "double"
  383. )
  384. echo "checked";?>>DOUBLE</td>
  385. <td align=center>O</td>
  386. <td align=center>O</td>
  387. <td>&nbsp</td>
  388. <td align=center>O</td>
  389. <td>&nbsp</td>
  390. </tr>
  391. <tr>
  392. <td><input type=radio name=type value="DECIMAL" <? if( $type ==
  393. "decimal" )
  394. echo "checked";?>>DECIMAL(NUMERIC)</td>
  395. <td align=center>O</td>
  396. <td align=center>O</td>
  397. <td>&nbsp</td>
  398. <td align=center>O</td>
  399. <td>&nbsp</td>
  400. </tr>
  401. <tr>
  402. <td><input type=radio name=type value="DATE" <? if( $type == "date" )
  403. echo
  404. "checked";?>>DATE (1000-01-01 ~ 9999-12-31, YYYY-MM-DD)</td>
  405. <td>&nbsp</td>
  406. <td>&nbsp</td>
  407. <td>&nbsp</td>
  408. <td>&nbsp</td>
  409. <td>&nbsp</td>
  410. </tr>
  411. <tr>
  412. <td><input type=radio name=type value="DATETIME" <? if( $type ==
  413. "datetime"
  414. ) echo "checked";?>>DATETIME (1000-01-01 00:00:00 ~ 9999-12-31
  415. 23:59:59,
  416. YYYY-MM-DD HH:MM:SS)</td>
  417. <td>&nbsp</td>
  418. <td>&nbsp</td>
  419. <td>&nbsp</td>
  420. <td>&nbsp</td>
  421. <td>&nbsp</td>
  422. </tr>
  423. <tr>
  424. <td><input type=radio name=type value="TIMESTAMP" <? if( $type ==
  425. "timestamp" ) echo "checked";?>>TIMESTAMP (1970-01-01 00:00:00 ~
  426. 2106...,
  427. YYYYMMDD[HH[MM[SS]]])</td>
  428. <td align=center>O</td>
  429. <td>&nbsp</td>
  430. <td>&nbsp</td>
  431. <td>&nbsp</td>
  432. <td>&nbsp</td>
  433. </tr>
  434. <tr>
  435. <td><input type=radio name=type value="TIME" <? if( $type == "time" )
  436. echo
  437. "checked";?>>TIME (-838:59:59 ~ 838:59:59, HH:MM:SS)</td>
  438. <td>&nbsp</td>
  439. <td>&nbsp</td>
  440. <td>&nbsp</td>
  441. <td>&nbsp</td>
  442. <td>&nbsp</td>
  443. </tr>
  444. <tr>
  445. <td><input type=radio name=type value="YEAR" <? if( $type == "year" )
  446. echo
  447. "checked";?>>YEAR (1901 ~ 2155, 0000, YYYY)</td>
  448. <td>&nbsp</td>
  449. <td>&nbsp</td>
  450. <td>&nbsp</td>
  451. <td>&nbsp</td>
  452. <td>&nbsp</td>
  453. </tr>
  454. <tr>
  455. <td><input type=radio name=type value="CHAR" <? if( $type == "char" )
  456. echo
  457. "checked";?>>CHAR</td>
  458. <td align=center>O</td>
  459. <td>&nbsp</td>
  460. <td>&nbsp</td>
  461. <td>&nbsp</td>
  462. <td align=center>O</td>
  463. </tr>
  464. <tr>
  465. <td><input type=radio name=type value="VARCHAR" <? if( $type ==
  466. "varchar" )
  467. echo "checked";?>>VARCHAR</td>
  468. <td align=center>O</td>
  469. <td>&nbsp</td>
  470. <td>&nbsp</td>
  471. <td>&nbsp</td>
  472. <td align=center>O</td>
  473. </tr>
  474. <tr>
  475. <td><input type=radio name=type value="TINYTEXT" <? if( $type ==
  476. "tinytext"
  477. ) echo "checked";?>>TINYTEXT (0 ~ 255)</td>
  478. <td>&nbsp</td>
  479. <td>&nbsp</td>
  480. <td>&nbsp</td>
  481. <td>&nbsp</td>
  482. <td>&nbsp</td>
  483. </tr>
  484. <tr>
  485. <td><input type=radio name=type value="TEXT" <? if( $type == "text" )
  486. echo
  487. "checked";?>>TEXT (0 ~ 65535)</td>
  488. <td>&nbsp</td>
  489. <td>&nbsp</td>
  490. <td>&nbsp</td>
  491. <td>&nbsp</td>
  492. <td>&nbsp</td>
  493. </tr>
  494. <tr>
  495. <td><input type=radio name=type value="MEDIUMTEXT" <? if( $type ==
  496. "mediumtext" ) echo "checked";?>>MEDIUMTEXT (0 ~ 16777215)</td>
  497. <td>&nbsp</td>
  498. <td>&nbsp</td>
  499. <td>&nbsp</td>
  500. <td>&nbsp</td>
  501. <td>&nbsp</td>
  502. </tr>
  503. <tr>
  504. <td><input type=radio name=type value="LONGTEXT" <? if( $type ==
  505. "longtext"
  506. ) echo "checked";?>>LONGTEXT (0 ~ 4294967295)</td>
  507. <td>&nbsp</td>
  508. <td>&nbsp</td>
  509. <td>&nbsp</td>
  510. <td>&nbsp</td>
  511. <td>&nbsp</td>
  512. </tr>
  513. <tr>
  514. <td><input type=radio name=type value="TINYBLOB" <? if( $type ==
  515. "tinyblob"
  516. ) echo "checked";?>>TINYBLOB (0 ~ 255)</td>
  517. <td>&nbsp</td>
  518. <td>&nbsp</td>
  519. <td>&nbsp</td>
  520. <td>&nbsp</td>
  521. <td>&nbsp</td>
  522. </tr>
  523. <tr>
  524. <td><input type=radio name=type value="BLOB" <? if( $type == "blob" )
  525. echo
  526. "checked";?>>BLOB (0 ~ 65535)</td>
  527. <td>&nbsp</td>
  528. <td>&nbsp</td>
  529. <td>&nbsp</td>
  530. <td>&nbsp</td>
  531. <td>&nbsp</td>
  532. </tr>
  533. <tr>
  534. <td><input type=radio name=type value="MEDIUMBLOB" <? if( $type ==
  535. "mediumblob" ) echo "checked";?>>MEDIUMBLOB (0 ~ 16777215)</td>
  536. <td>&nbsp</td>
  537. <td>&nbsp</td>
  538. <td>&nbsp</td>
  539. <td>&nbsp</td>
  540. <td>&nbsp</td>
  541. </tr>
  542. <tr>
  543. <td><input type=radio name=type value="LONGBLOB" <? if( $type ==
  544. "longblob"
  545. ) echo "checked";?>>LONGBLOB (0 ~ 4294967295)</td>
  546. <td>&nbsp</td>
  547. <td>&nbsp</td>
  548. <td>&nbsp</td>
  549. <td>&nbsp</td>
  550. <td>&nbsp</td>
  551. </tr>
  552. <tr>
  553. <td><input type=radio name=type value="ENUM" <? if( $type == "enum" )
  554. echo
  555. "checked";?>>ENUM</td>
  556. <td colspan=5><center>value list</center></td>
  557. </tr>
  558. <tr>
  559. <td><input type=radio name=type value="SET" <? if( $type == "set" )
  560. echo
  561. "checked";?>>SET</td>
  562. <td colspan=5><center>value list</center></td>
  563. </tr>
  564.  
  565. </table>
  566. <table>
  567. <tr><th>M</th><th>D</th><th>unsigned</th><th>zerofill</th><th>binary</th><th>value
  568. list (ex: 'apple', 'orange', 'banana') </th></tr>
  569. <tr>
  570. <td align=center><input type=text size=4 name=M <? if( $M != "" ) echo
  571. "value=$M";?>></td>
  572. <td align=center><input type=text size=4 name=D <? if( $D != "" ) echo
  573. "value=$D";?>></td>
  574. <td align=center><input type=checkbox name=unsigned value="UNSIGNED" <?
  575. if(
  576. strpos( $fieldtype, "unsigned" ) ) echo "checked";?>></td>
  577. <td align=center><input type=checkbox name=zerofill value="ZEROFILL" <?
  578. if(
  579. strpos( $fieldtype, "zerofill" ) ) echo "checked";?>></td>
  580. <td align=center><input type=checkbox name=binary value="BINARY" <? if(
  581. strpos( $fieldtype, "binary" )  ) echo "checked";?>></td>
  582. <td align=center><input type=text size=60 name=valuelist <? if(
  583. $valuelist
  584. != "" ) echo "value=\"$valuelist\"";?>></td>
  585. </tr>
  586. </table>
  587.  
  588.  
  589. <h3>Flags</h3>
  590. <table>
  591. <tr><th>not null</th><th>default value</th><th>auto
  592. increment</th><th>primary key</th></tr>
  593. <tr>
  594. <td align=center><input type=checkbox name=not_null value="NOT NULL" <?
  595. if(
  596. $fieldnull != "YES" ) echo "checked";?>></td>
  597. <td align=center><input type=text name=default_value <? if(
  598. $fielddefault !=
  599. "" ) echo "value=$fielddefault";?>></td>
  600. <td align=center><input type=checkbox name=auto_increment
  601. value="AUTO_INCREMENT" <? if( $fieldextra == "auto_increment" ) echo
  602. "checked";?>></td>
  603. <td align=center><input type=checkbox name=primary_key value="PRIMARY
  604. KEY"
  605. <? if( $fieldkey == "PRI" ) echo "checked";?>></td>
  606. </tr>
  607. </table>
  608.  
  609. <p>
  610.  
  611. <?
  612.     if( $cmd == "add" )
  613.         echo "<input type=submit value='Add Field'>\n";
  614.     else if( $cmd == "edit" )
  615.         echo "<input type=submit value='Edit Field'>\n";
  616.     echo "<input type=button value=Cancel onClick='history.back()'>\n";
  617.     echo "</form>\n";
  618. }
  619.  
  620. function manageField_submit( $cmd ) {
  621.     global $mysqlHandle, $dbname, $tablename, $old_name, $name, $type,
  622. $PHP_SELF, $queryStr, $errMsg,
  623.         $M, $D, $unsigned, $zerofill, $binary, $not_null, $default_value,
  624. $auto_increment, $primary_key, $valuelist;
  625.  
  626.     if( $cmd == "add" )
  627.         $queryStr = "ALTER TABLE $tablename ADD $name ";
  628.     else if( $cmd == "edit" )
  629.         $queryStr = "ALTER TABLE $tablename CHANGE $old_name $name ";
  630.  
  631.     if( $M != "" )
  632.         if( $D != "" )
  633.             $queryStr .= "$type($M,$D) ";
  634.         else
  635.             $queryStr .= "$type($M) ";
  636.     else if( $valuelist != "" ) {
  637.         $valuelist = stripslashes( $valuelist );
  638.         $queryStr .= "$type($valuelist) ";
  639.     } else
  640.         $queryStr .= "$type ";
  641.  
  642.     $queryStr .= "$unsigned $zerofill $binary ";
  643.  
  644.     if( $default_value != "" )
  645.         $queryStr .= "DEFAULT '$default_value' ";
  646.  
  647.     $queryStr .= "$not_null $auto_increment";
  648.  
  649.     mysql_select_db( $dbname, $mysqlHandle );
  650.     mysql_query( $queryStr, $mysqlHandle );
  651.     $errMsg = mysql_error();
  652.  
  653.     // key change
  654.     $keyChange = false;
  655.     $result = mysql_query( "SHOW KEYS FROM $tablename" );
  656.     $primary = "";
  657.     while( $row = mysql_fetch_array($result) )
  658.         if( $row["Key_name"] == "PRIMARY" ) {
  659.             if( $row[Column_name] == $name )
  660.                 $keyChange = true;
  661.             else
  662.                 $primary .= ", $row[Column_name]";
  663.         }
  664.     if( $primary_key == "PRIMARY KEY" ) {
  665.         $primary .= ", $name";
  666.         $keyChange = !$keyChange;
  667.     }
  668.     $primary = substr( $primary, 2 );
  669.     if( $keyChange == true ) {
  670.         $q = "ALTER TABLE $tablename DROP PRIMARY KEY";
  671.         mysql_query( $q );
  672.         $queryStr .= "<br>\n" . $q;
  673.         $errMsg .= "<br>\n" . mysql_error();
  674.         $q = "ALTER TABLE $tablename ADD PRIMARY KEY( $primary )";
  675.         mysql_query( $q );
  676.         $queryStr .= "<br>\n" . $q;
  677.         $errMsg .= "<br>\n" . mysql_error();
  678.     }
  679.  
  680.     viewSchema();
  681. }
  682.  
  683. function dropField() {
  684.     global $mysqlHandle, $dbname, $tablename, $fieldname, $PHP_SELF,
  685. $queryStr,
  686. $errMsg;
  687.  
  688.     $queryStr = "ALTER TABLE $tablename DROP COLUMN $fieldname";
  689.     mysql_select_db( $dbname, $mysqlHandle );
  690.     mysql_query( $queryStr , $mysqlHandle );
  691.     $errMsg = mysql_error();
  692.  
  693.     viewSchema();
  694. }
  695.  
  696. function viewData( $queryStr ) {
  697.     global $mysqlHandle, $dbname, $tablename, $PHP_SELF, $errMsg, $page,
  698. $rowperpage, $orderby;
  699.  
  700.     echo "<h1>Data in Table</h1>\n";
  701.     if( $tablename != "" )
  702.         echo "<p class=location>$dbname &gt; $tablename</p>\n";
  703.     else
  704.         echo "<p class=location>$dbname</p>\n";
  705.  
  706.     $queryStr = stripslashes( $queryStr );
  707.     if( $queryStr == "" ) {
  708.         $queryStr = "SELECT * FROM $tablename";
  709.         if( $orderby != "" )
  710.             $queryStr .= " ORDER BY $orderby";
  711.         echo "<a
  712. href='$PHP_SELF?action=addData&dbname=$dbname&tablename=$tablename'>Add
  713. Data</a> | \n";
  714.         echo "<a
  715. href='$PHP_SELF?action=viewSchema&dbname=$dbname&tablename=$tablename'>Schema</a>\n";
  716.     }
  717.  
  718.     $pResult = mysql_db_query( $dbname, $queryStr );
  719.     $errMsg = mysql_error();
  720.  
  721.     $GLOBALS[queryStr] = $queryStr;
  722.  
  723.     if( $pResult == false ) {
  724.         echoQueryResult();
  725.         return;
  726.     }
  727.     if( $pResult == 1 ) {
  728.         $errMsg = "Success";
  729.         echoQueryResult();
  730.         return;
  731.     }
  732.  
  733.     echo "<hr>\n";
  734.  
  735.     $row = mysql_num_rows( $pResult );
  736.     $col = mysql_num_fields( $pResult );
  737.  
  738.     if( $row == 0 ) {
  739.         echo "No Data Exist!";
  740.         return;
  741.     }
  742.  
  743.     if( $rowperpage == "" ) $rowperpage = 20;
  744.     if( $page == "" ) $page = 0;
  745.     else $page--;
  746.     mysql_data_seek( $pResult, $page * $rowperpage );
  747.  
  748.     echo "<table cellspacing=1 cellpadding=2>\n";
  749.     echo "<tr>\n";
  750.     for( $i = 0; $i < $col; $i++ ) {
  751.         $field = mysql_fetch_field( $pResult, $i );
  752.         echo "<th>";
  753.         echo "<a
  754. href='$PHP_SELF?action=viewData&dbname=$dbname&tablename=$tablename&orderby=".$field->name."'>".$field->name."</a>\n";
  755.         echo "</th>\n";
  756.     }
  757.     echo "<th colspan=2>Action</th>\n";
  758.     echo "</tr>\n";
  759.  
  760.     for( $i = 0; $i < $rowperpage; $i++ ) {
  761.         $rowArray = mysql_fetch_row( $pResult );
  762.         if( $rowArray == false ) break;
  763.         echo "<tr>\n";
  764.         $key = "";
  765.         for( $j = 0; $j < $col; $j++ ) {
  766.             $data = $rowArray[$j];
  767.  
  768.             $field = mysql_fetch_field( $pResult, $j );
  769.             if( $field->primary_key == 1 )
  770.                 $key .= "&" . $field->name . "=" . $data;
  771.  
  772.             if( strlen( $data ) > 20 )
  773.                 $data = substr( $data, 0, 20 ) . "...";
  774.             $data = htmlspecialchars( $data );
  775.             echo "<td>\n";
  776.             echo "$data\n";
  777.             echo "</td>\n";
  778.         }
  779.  
  780.         if( $key == "" )
  781.             echo "<td colspan=2>no Key</td>\n";
  782.         else {
  783.             echo "<td><a
  784. href='$PHP_SELF?action=editData&dbname=$dbname&tablename=$tablename$key'>Edit</a></td>\n";
  785.             echo "<td><a
  786. href='$PHP_SELF?action=deleteData&dbname=$dbname&tablename=$tablename$key'
  787. onClick=\"return confirm('Delete Row?')\">Delete</a></td>\n";
  788.         }
  789.         echo "</tr>\n";
  790.     }
  791.     echo "</table>\n";
  792.  
  793.     echo "<font size=2>\n";
  794.     echo "<form
  795. action='$PHP_SELF?action=viewData&dbname=$dbname&tablename=$tablename'
  796. method=post>\n";
  797.     echo "<font color=green>\n";
  798.     echo ($page+1)."/".(int)($row/$rowperpage+1)." page";
  799.     echo "</font>\n";
  800.     echo " | ";
  801.     if( $page > 0 ) {
  802.         echo "<a
  803. href='$PHP_SELF?action=viewData&dbname=$dbname&tablename=$tablename&page=".($page);
  804.         if( $orderby != "" )
  805.             echo "&orderby=$orderby";
  806.         echo "'>Prev</a>\n";
  807.     } else
  808.         echo "Prev";
  809.     echo " | ";
  810.     if( $page < ($row/$rowperpage)-1 ) {
  811.         echo "<a
  812. href='$PHP_SELF?action=viewData&dbname=$dbname&tablename=$tablename&page=".($page+2);
  813.         if( $orderby != "" )
  814.             echo "&orderby=$orderby";
  815.         echo "'>Next</a>\n";
  816.     } else
  817.         echo "Next";
  818.     echo " | ";
  819.     if( $row > $rowperpage ) {
  820.         echo "<input type=text size=4 name=page>\n";
  821.         echo "<input type=submit value='Go'>\n";
  822.     }
  823.     echo "</form>\n";
  824.     echo "</font>\n";
  825. }
  826.  
  827. function manageData( $cmd ) {
  828.     global $mysqlHandle, $dbname, $tablename, $PHP_SELF;
  829.  
  830.     if( $cmd == "add" )
  831.         echo "<h1>Add Data</h1>\n";
  832.     else if( $cmd == "edit" ) {
  833.         echo "<h1>Edit Data</h1>\n";
  834.         $pResult = mysql_list_fields( $dbname, $tablename );
  835.         $num = mysql_num_fields( $pResult );
  836.  
  837.         $key = "";
  838.         for( $i = 0; $i < $num; $i++ ) {
  839.             $field = mysql_fetch_field( $pResult, $i );
  840.             if( $field->primary_key == 1 )
  841.                 if( $field->numeric == 1 )
  842.                     $key .= $field->name . "=" . $GLOBALS[$field->name] . " AND ";
  843.                 else
  844.                     $key .= $field->name . "='" . $GLOBALS[$field->name] . "' AND ";
  845.         }
  846.         $key = substr( $key, 0, strlen($key)-4 );
  847.  
  848.         mysql_select_db( $dbname, $mysqlHandle );
  849.         $pResult = mysql_query( $queryStr =  "SELECT * FROM $tablename WHERE
  850. $key", $mysqlHandle );
  851.         $data = mysql_fetch_array( $pResult );
  852.     }
  853.  
  854.     echo "<p class=location>$dbname &gt; $tablename</p>\n";
  855.  
  856.     echo "<form action='$PHP_SELF' method=post>\n";
  857.     if( $cmd == "add" )
  858.         echo "<input type=hidden name=action value=addData_submit>\n";
  859.     else if( $cmd == "edit" )
  860.         echo "<input type=hidden name=action value=editData_submit>\n";
  861.     echo "<input type=hidden name=dbname value=$dbname>\n";
  862.     echo "<input type=hidden name=tablename value=$tablename>\n";
  863.     echo "<table cellspacing=1 cellpadding=2>\n";
  864.     echo "<tr>\n";
  865.     echo "<th>Name</th>\n";
  866.     echo "<th>Type</th>\n";
  867.     echo "<th>Function</th>\n";
  868.     echo "<th>Data</th>\n";
  869.     echo "</tr>\n";
  870.  
  871.     $pResult = mysql_db_query( $dbname, "SHOW fields FROM $tablename" );
  872.     $num = mysql_num_rows( $pResult );
  873.  
  874.     $pResultLen = mysql_list_fields( $dbname, $tablename );
  875.  
  876.     for( $i = 0; $i < $num; $i++ ) {
  877.         $field = mysql_fetch_array( $pResult );
  878.         $fieldname = $field["Field"];
  879.         $fieldtype = $field["Type"];
  880.         $len = mysql_field_len( $pResultLen, $i );
  881.  
  882.         echo "<tr>";
  883.         echo "<td>$fieldname</td>";
  884.         echo "<td>".$field["Type"]."</td>";
  885.         echo "<td>\n";
  886.         echo "<select name=${fieldname}_function>\n";
  887.         echo "<option>\n";
  888.         echo "<option>ASCII\n";
  889.         echo "<option>CHAR\n";
  890.         echo "<option>SOUNDEX\n";
  891.         echo "<option>CURDATE\n";
  892.         echo "<option>CURTIME\n";
  893.         echo "<option>FROM_DAYS\n";
  894.         echo "<option>FROM_UNIXTIME\n";
  895.         echo "<option>NOW\n";
  896.         echo "<option>PASSWORD\n";
  897.         echo "<option>PERIOD_ADD\n";
  898.         echo "<option>PERIOD_DIFF\n";
  899.         echo "<option>TO_DAYS\n";
  900.         echo "<option>USER\n";
  901.         echo "<option>WEEKDAY\n";
  902.         echo "<option>RAND\n";
  903.         echo "</select>\n";
  904.         echo "</td>\n";
  905.         $value = htmlspecialchars($data[$i]);
  906.         if( $cmd == "add" ) {
  907.             $type = strtok( $fieldtype, " (,)\n" );
  908.             if( $type == "enum" || $type == "set" ) {
  909.                 echo "<td>\n";
  910.                 if( $type == "enum" )
  911.                     echo "<select name=$fieldname>\n";
  912.                 else if( $type == "set" )
  913.                     echo "<select name=$fieldname size=4 multiple>\n";
  914.                 echo strtok( "'" );
  915.                 while( $str = strtok( "'" ) ) {
  916.                     echo "<option>$str\n";
  917.                     strtok( "'" );
  918.                 }
  919.                 echo "</select>\n";
  920.                 echo "</td>\n";
  921.             } else {
  922.                 if( $len < 40 )
  923.                     echo "<td><input type=text size=40 maxlength=$len
  924. name=$fieldname></td>\n";
  925.                 else
  926.                     echo "<td><textarea cols=40 rows=3 maxlength=$len
  927. name=$fieldname></textarea>\n";
  928.             }
  929.         } else if( $cmd == "edit" ) {
  930.             $type = strtok( $fieldtype, " (,)\n" );
  931.             if( $type == "enum" || $type == "set" ) {
  932.                 echo "<td>\n";
  933.                 if( $type == "enum" )
  934.                     echo "<select name=$fieldname>\n";
  935.                 else if( $type == "set" )
  936.                     echo "<select name=$fieldname size=4 multiple>\n";
  937.                 echo strtok( "'" );
  938.                 while( $str = strtok( "'" ) ) {
  939.                     if( $value == $str )
  940.                         echo "<option selected>$str\n";
  941.                     else
  942.                         echo "<option>$str\n";
  943.                     strtok( "'" );
  944.                 }
  945.                 echo "</select>\n";
  946.                 echo "</td>\n";
  947.             } else {
  948.                 if( $len < 40 )
  949.                     echo "<td><input type=text size=40 maxlength=$len name=$fieldname
  950. value=\"$value\"></td>\n";
  951.                 else
  952.                     echo "<td><textarea cols=40 rows=3 maxlength=$len
  953. name=$fieldname>$value</textarea>\n";
  954.             }
  955.         }
  956.         echo "</tr>";
  957.     }
  958.     echo "</table><p>\n";
  959.     if( $cmd == "add" )
  960.         echo "<input type=submit value='Add Data'>\n";
  961.     else if( $cmd == "edit" )
  962.         echo "<input type=submit value='Edit Data'>\n";
  963.     echo "<input type=button value='Cancel' onClick='history.back()'>\n";
  964.     echo "</form>\n";
  965. }
  966.  
  967. function manageData_submit( $cmd ) {
  968.     global $mysqlHandle, $dbname, $tablename, $fieldname, $PHP_SELF,
  969. $queryStr,
  970. $errMsg;
  971.  
  972.     $pResult = mysql_list_fields( $dbname, $tablename );
  973.     $num = mysql_num_fields( $pResult );
  974.  
  975.     mysql_select_db( $dbname, $mysqlHandle );
  976.     if( $cmd == "add" )
  977.         $queryStr = "INSERT INTO $tablename VALUES (";
  978.     else if( $cmd == "edit" )
  979.         $queryStr = "REPLACE INTO $tablename VALUES (";
  980.     for( $i = 0; $i < $num-1; $i++ ) {
  981.         $field = mysql_fetch_field( $pResult );
  982.         $func = $GLOBALS[$field->name."_function"];
  983.         if( $func != "" )
  984.             $queryStr .= " $func(";
  985.         if( $field->numeric == 1 ) {
  986.             $queryStr .= $GLOBALS[$field->name];
  987.             if( $func != "" )
  988.                 $queryStr .= "),";
  989.             else
  990.                 $queryStr .= ",";
  991.         } else {
  992.             $queryStr .= "'" . $GLOBALS[$field->name];
  993.             if( $func != "" )
  994.                 $queryStr .= "'),";
  995.             else
  996.                 $queryStr .= "',";
  997.         }
  998.     }
  999.     $field = mysql_fetch_field( $pResult );
  1000.     if( $field->numeric == 1 )
  1001.         $queryStr .= $GLOBALS[$field->name] . ")";
  1002.     else
  1003.         $queryStr .= "'" . $GLOBALS[$field->name] . "')";
  1004.  
  1005.     mysql_query( $queryStr , $mysqlHandle );
  1006.     $errMsg = mysql_error();
  1007.  
  1008.     viewData( "" );
  1009. }
  1010.  
  1011. function deleteData() {
  1012.     global $mysqlHandle, $dbname, $tablename, $fieldname, $PHP_SELF,
  1013. $queryStr,
  1014. $errMsg;
  1015.  
  1016.     $pResult = mysql_list_fields( $dbname, $tablename );
  1017.     $num = mysql_num_fields( $pResult );
  1018.  
  1019.     $key = "";
  1020.     for( $i = 0; $i < $num; $i++ ) {
  1021.         $field = mysql_fetch_field( $pResult, $i );
  1022.         if( $field->primary_key == 1 )
  1023.             if( $field->numeric == 1 )
  1024.                 $key .= $field->name . "=" . $GLOBALS[$field->name] . " AND ";
  1025.             else
  1026.                 $key .= $field->name . "='" . $GLOBALS[$field->name] . "' AND ";
  1027.     }
  1028.     $key = substr( $key, 0, strlen($key)-4 );
  1029.  
  1030.     mysql_select_db( $dbname, $mysqlHandle );
  1031.     $queryStr =  "DELETE FROM $tablename WHERE $key";
  1032.     mysql_query( $queryStr, $mysqlHandle );
  1033.     $errMsg = mysql_error();
  1034.  
  1035.     viewData( "" );
  1036. }
  1037.  
  1038. function dump() {
  1039.     global $PHP_SELF, $USERNAME, $PASSWORD, $action, $dbname, $tablename;
  1040.  
  1041.     if( $action == "dumpTable" )
  1042.         $filename = $tablename;
  1043.     else
  1044.         $filename = $dbname;
  1045.  
  1046.     header("Content-disposition: filename=$filename.sql");
  1047.     header("Content-type: application/octetstream");
  1048.     header("Pragma: no-cache");
  1049.     header("Expires: 0");
  1050.  
  1051.     $pResult = mysql_query( "show variables" );
  1052.     while( 1 ) {
  1053.         $rowArray = mysql_fetch_row( $pResult );
  1054.         if( $rowArray == false ) break;
  1055.         if( $rowArray[0] == "basedir" )
  1056.             $bindir = $rowArray[1]."bin/";
  1057.     }
  1058.  
  1059.     passthru( $bindir."mysqldump --user=$USERNAME --password=$PASSWORD
  1060. $dbname
  1061. $tablename" );
  1062. }
  1063.  
  1064. function utils() {
  1065.     global $PHP_SELF, $command;
  1066.     echo "<h1>Utilities</h1>\n";
  1067.     if( $command == "" || substr( $command, 0, 5 ) == "flush" ) {
  1068.         echo "<hr>\n";
  1069.         echo "Show\n";
  1070.         echo "<ul>\n";
  1071.         echo "<li><a
  1072. href='$PHP_SELF?action=utils&command=show_status'>Status</a>\n";
  1073.         echo "<li><a
  1074. href='$PHP_SELF?action=utils&command=show_variables'>Variables</a>\n";
  1075.         echo "<li><a
  1076. href='$PHP_SELF?action=utils&command=show_processlist'>Processlist</a>\n";
  1077.         echo "</ul>\n";
  1078.         echo "Flush\n";
  1079.         echo "<ul>\n";
  1080.         echo "<li><a
  1081. href='$PHP_SELF?action=utils&command=flush_hosts'>Hosts</a>\n";
  1082.         if( $command == "flush_hosts" ) {
  1083.             if( mysql_query( "Flush hosts" ) != false )
  1084.                 echo "<font size=2 color=red>- Success</font>";
  1085.             else
  1086.                 echo "<font size=2 color=red>- Fail</font>";
  1087.         }
  1088.         echo "<li><a
  1089. href='$PHP_SELF?action=utils&command=flush_logs'>Logs</a>\n";
  1090.         if( $command == "flush_logs" ) {
  1091.             if( mysql_query( "Flush logs" ) != false )
  1092.                 echo "<font size=2 color=red>- Success</font>";
  1093.             else
  1094.                 echo "<font size=2 color=red>- Fail</font>";
  1095.         }
  1096.         echo "<li><a
  1097. href='$PHP_SELF?action=utils&command=flush_privileges'>Privileges</a>\n";
  1098.         if( $command == "flush_privileges" ) {
  1099.             if( mysql_query( "Flush privileges" ) != false )
  1100.                 echo "<font size=2 color=red>- Success</font>";
  1101.             else
  1102.                 echo "<font size=2 color=red>- Fail</font>";
  1103.         }
  1104.         echo "<li><a
  1105. href='$PHP_SELF?action=utils&command=flush_tables'>Tables</a>\n";
  1106.         if( $command == "flush_tables" ) {
  1107.             if( mysql_query( "Flush tables" ) != false )
  1108.                 echo "<font size=2 color=red>- Success</font>";
  1109.             else
  1110.                 echo "<font size=2 color=red>- Fail</font>";
  1111.         }
  1112.         echo "<li><a
  1113. href='$PHP_SELF?action=utils&command=flush_status'>Status</a>\n";
  1114.         if( $command == "flush_status" ) {
  1115.             if( mysql_query( "Flush status" ) != false )
  1116.                 echo "<font size=2 color=red>- Success</font>";
  1117.             else
  1118.                 echo "<font size=2 color=red>- Fail</font>";
  1119.         }
  1120.         echo "</ul>\n";
  1121.     } else {
  1122.         $queryStr = ereg_replace( "_", " ", $command );
  1123.         $pResult = mysql_query( $queryStr );
  1124.         if( $pResult == false ) {
  1125.             echo "Fail";
  1126.             return;
  1127.         }
  1128.         $col = mysql_num_fields( $pResult );
  1129.  
  1130.         echo "<p class=location>$queryStr</p>\n";
  1131.         echo "<hr>\n";
  1132.  
  1133.         echo "<table cellspacing=1 cellpadding=2 border=0>\n";
  1134.         echo "<tr>\n";
  1135.         for( $i = 0; $i < $col; $i++ ) {
  1136.             $field = mysql_fetch_field( $pResult, $i );
  1137.             echo "<th>".$field->name."</th>\n";
  1138.         }
  1139.         echo "</tr>\n";
  1140.  
  1141.         while( 1 ) {
  1142.             $rowArray = mysql_fetch_row( $pResult );
  1143.             if( $rowArray == false ) break;
  1144.             echo "<tr>\n";
  1145.             for( $j = 0; $j < $col; $j++ )
  1146.                 echo "<td>".htmlspecialchars( $rowArray[$j] )."</td>\n";
  1147.             echo "</tr>\n";
  1148.         }
  1149.         echo "</table>\n";
  1150.     }
  1151. }
  1152.  
  1153. function header_html() {
  1154.     global $PHP_SELF;
  1155.  
  1156. ?>
  1157. <html>
  1158. <head>
  1159. <title>MySQL Web Interface</title>
  1160. <style type="text/css">
  1161. <!--
  1162. p.location {
  1163.     color: #11bb33;
  1164.     font-size: small;
  1165. }
  1166. h1 {
  1167.     color: #A4A260;
  1168. }
  1169. th {
  1170.     background-color: #BDBE42;
  1171.     color: #FFFFFF;
  1172.     font-size: x-small;
  1173. }
  1174. td {
  1175.     background-color: #DEDFA5;
  1176.     font-size: x-small;
  1177. }
  1178. form {
  1179.     margin-top: 0;
  1180.     margin-bottom: 0;
  1181. }
  1182. a {
  1183.     text-decoration:none;
  1184.     color: #848200;
  1185.     font-size:x-small;
  1186. }
  1187. a:link {
  1188. }
  1189. a:hover {
  1190.     background-color:#EEEFD5;
  1191.     color:#646200;
  1192.     text-decoration:none
  1193. }
  1194. //-->
  1195. </style>
  1196. </head>
  1197. <body>
  1198. <?
  1199. }
  1200.  
  1201. function footer_html() {
  1202.     global $mysqlHandle, $dbname, $tablename, $PHP_SELF, $USERNAME;
  1203.  
  1204.     echo "<hr>\n";
  1205.     echo "<font size=2>\n";
  1206.     echo "<font color=blue>[$USERNAME]</font> - \n";
  1207.  
  1208.     echo "<a href='$PHP_SELF?action=listDBs'>Database List</a> | \n";
  1209.     if( $tablename != "" )
  1210.         echo "<a
  1211. href='$PHP_SELF?action=listTables&dbname=$dbname&tablename=$tablename'>Table
  1212. List</a> | ";
  1213.     echo "<a href='$PHP_SELF?action=utils'>Utils</a> |\n";
  1214.     echo "<a href='$PHP_SELF?action=logout'>Logout</a>\n";
  1215.     echo "</font>\n";
  1216.     echo "</body>\n";
  1217.     echo "</html>\n";
  1218. }
  1219.  
  1220. //------------------------------------------------------ MAIN
  1221.  
  1222. if( $action == "logon" || $action == "" || $action == "logout" )
  1223.     logon();
  1224. else if( $action == "logon_submit" )
  1225.     logon_submit();
  1226. else if( $action == "dumpTable" || $action == "dumpDB" ) {
  1227.     while( list($var, $value) = each($HTTP_COOKIE_VARS) ) {
  1228.         if( $var == "mysql_web_admin_username" ) $USERNAME = $value;
  1229.         if( $var == "mysql_web_admin_password" ) $PASSWORD = $value;
  1230.     }
  1231.     $mysqlHandle = mysql_pconnect( $HOSTNAME, $USERNAME, $PASSWORD );
  1232.     dump();
  1233. } else {
  1234.     while( list($var, $value) = each($HTTP_COOKIE_VARS) ) {
  1235.         if( $var == "mysql_web_admin_username" ) $USERNAME = $value;
  1236.         if( $var == "mysql_web_admin_password" ) $PASSWORD = $value;
  1237.     }
  1238.     echo "<!--";
  1239.     $mysqlHandle = mysql_pconnect( $HOSTNAME, $USERNAME, $PASSWORD );
  1240.     echo "-->";
  1241.  
  1242.     if( $mysqlHandle == false ) {
  1243.         echo "<html>\n";
  1244.         echo "<head>\n";
  1245.         echo "<title>MySQL Web Interface</title>\n";
  1246.         echo "</head>\n";
  1247.         echo "<body>\n";
  1248.         echo "<table width=100% height=100%><tr><td><center>\n";
  1249.         echo "<h1>Wrong Password!</h1>\n";
  1250.         echo "<a href='$PHP_SELF?action=logon'>Logon</a>\n";
  1251.         echo "</center></td></tr></table>\n";
  1252.         echo "</body>\n";
  1253.         echo "</html>\n";
  1254.     } else {
  1255.         header_html();
  1256.         if( $action == "listDBs" )
  1257.             listDatabases();
  1258.         else if( $action == "createDB" )
  1259.             createDatabase();
  1260.         else if( $action == "dropDB" )
  1261.             dropDatabase();
  1262.         else if( $action == "listTables" )
  1263.             listTables();
  1264.         else if( $action == "createTable" )
  1265.             createTable();
  1266.         else if( $action == "dropTable" )
  1267.             dropTable();
  1268.         else if( $action == "viewSchema" )
  1269.             viewSchema();
  1270.         else if( $action == "query" )
  1271.             viewData( $queryStr );
  1272.         else if( $action == "addField" )
  1273.             manageField( "add" );
  1274.         else if( $action == "addField_submit" )
  1275.             manageField_submit( "add" );
  1276.         else if( $action == "editField" )
  1277.             manageField( "edit" );
  1278.         else if( $action == "editField_submit" )
  1279.             manageField_submit( "edit" );
  1280.         else if( $action == "dropField" )
  1281.             dropField();
  1282.         else if( $action == "viewData" )
  1283.             viewData( "" );
  1284.         else if( $action == "addData" )
  1285.             manageData( "add" );
  1286.         else if( $action == "addData_submit" )
  1287.             manageData_submit( "add" );
  1288.         else if( $action == "editData" )
  1289.             manageData( "edit" );
  1290.         else if( $action == "editData_submit" )
  1291.             manageData_submit( "edit" );
  1292.         else if( $action == "deleteData" )
  1293.             deleteData();
  1294.         else if( $action == "utils" )
  1295.             utils();
  1296.  
  1297.         mysql_close( $mysqlHandle);
  1298.         footer_html();
  1299.     }
  1300. }
  1301.  
  1302. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement