Location: PHPKode > scripts > SQLconf > sqlconf/install.php
<?php
/*
  INSTALL.PHP                                             SQLconf v1.1
  -----------                                             ------------
  Copyright (C) 2003 by Max Timchenko    http://www.maxvt.com/sqlconf/
  
  Writing and reading configuration for your scripts has never been so 
  easy. Using MySQL as the backend and a minimal, automatically updated
  conf.php file, SQLconf provides a solution for all your configuration
  needs.
  
* This file:
  - This file installs the SQLconf for use on your website.
  
* What does it do?
  - SQLconf requires a conf.php file accessible to it (in current
    directory) with MySQL access info, and the corresponding data in the
    DB in case conf.php needs to be rewritten. 
  - First, the script checks if conf.php file can be created,
    and asks for MySQL access info.
  - Then, the script checks the info and writes out the conf.php file,
    inserting the corresponding variables into the database.    
  
* License:
  - This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License (GPL)
    as published by the Free Software Foundation; either version 2
    of the License, or (at your option) any later version.
  
  - This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
  
  - To read the license please visit http://www.gnu.org/copyleft/gpl.html 
*/

// Write the header
?>
<html><body bgcolor="white">
<h1>SQLconf v1.0 Installation</h1>
<?php

// DB creation query
$db_query = <<<ENDQ
CREATE TABLE conf (
    module varchar(32) NOT NULL default '',
    name varchar(32) NOT NULL default '',
    value blob NOT NULL,
    exported tinyint(1) NOT NULL default '0',
    PRIMARY KEY  (module,name)
) TYPE=MyISAM COMMENT='This table stores the information for SQLconf.'
ENDQ;

// If the form has been filled already...
if ($_GET['mode'] == 'do') {
    if (FALSE == @mysql_connect($_POST['host'], $_POST['user'], $_POST['pass'])) {
        print "<h2>Can't connect to MySQL database - check the values again!</h2>";
        unset($_GET['mode']); // return to form
    }
    
    else // SQL connection established
    if (FALSE == @mysql_select_db($_POST['db'])) { 
        print "<h2>Can't select a database - check the 'database' value again!</h2>";
        unset($_GET['mode']); // return to form        
    }
    
    else { // DB is ok, too -- create a table
        @mysql_query('DROP TABLE IF EXISTS conf');
        if (FALSE == @mysql_query($db_query)) { 
            print "<h2>Table creation failed! Does your user have CREATE and DROP rights for the database?</h2>";
            print mysql_error();
            unset($_GET['mode']); // return to form        
        } 
    
        else { 
            print "<p>Adding values to the table...";
            $query = "INSERT INTO conf VALUES('MySQL', 'Server', '{$_POST['host']}', 1)";
            mysql_query($query);
            $query = "INSERT INTO conf VALUES('MySQL', 'User', '{$_POST['user']}', 1)";
            mysql_query($query);
            $query = "INSERT INTO conf VALUES('MySQL', 'Pass', '{$_POST['pass']}', 1)";
            mysql_query($query);
            $query = "INSERT INTO conf VALUES('MySQL', 'DB', '{$_POST['db']}', 1)";
            mysql_query($query);                                    
            print "OK</p>\n";
            
            print "<p>Creating environment for SQLconf...";
            define(MYSQL_SERVER, $_POST['host']);
            define(MYSQL_USER, $_POST['user']);
            define(MYSQL_PASS, $_POST['pass']);
            define(MYSQL_DB, $_POST['db']);
            print "OK</p>\n";
            
            print "<p>Creating empty CONF.PHP...";
            $f = fopen('conf.php', 'w');
            fwrite($f, "<?php ?".">");
            fclose($f);
            print "OK</p>\n";
            
            print "<p>Including SQLconf...";
            include("sqlconf.php");
            print "OK</p>\n";
            
            print "<p>Making a real CONF.PHP...";
            regenConf();
            print "OK</p>\n";
            
            print "<h2>If all the lines above end with OK, the installation has been successful!<br>".
                  "Enjoy using SQLconf!</h2>";
            print "<p>For security considerations, you <b>must</b> delete install.php <b>now</b>.</p>";
            print "</body></html>";
            exit;                  
        }
    }
}

// otherwise, first call : check if conf.php can be written
if (!isset($_GET['mode'])) {
    if (FALSE == ($f = @fopen('conf.php', 'w'))) {
        print "<h2>Can't write to conf.php file!</h2>";
        exit;
    }
    
    // ...and print the SQL data input form 
    ?>
    <h2>Please enter the MySQL data below...</h2>
    <form method="POST" action="install.php?mode=do">
    <table border="0" cellpadding="5">
    <tr><td>Host</td><td>
        <input type="text" name="host" length="30" maxlength="80" value="<?php echo $_POST['host']; ?>"></td></tr>
    <tr><td>User</td><td>
        <input type="text" name="user" length="30" maxlength="80" value="<?php echo $_POST['user']; ?>"></td></tr>
    <tr><td>Password</td><td>
        <input type="password" name="pass" length="30" maxlength="80"></td></tr>
    <tr><td>Database</td><td>
        <input type="text" name="db" length="30" maxlength="80" value="<?php echo $_POST['db']; ?>"></td></tr>
    </table><br><input type="submit" value="Proceed"></form></body></html>
    <?php   
}
?>
Return current item: SQLconf