简体   繁体   中英

make configurable config.php file

I'm having problems with changing my configuration file config.php . At the moment, I'm trying to configure the databse details $config['db] through a form residing in the same directory, however, when I include the configuration file the channges do not materialise. Here's what config.php looks like:

<?php
//main path to resources
$resources = dirname(__DIR__);
//$root = dirname(dirname(__DIR__));
$root = dirname($resources);


//configuration array to hold
//vital information
$config = array(
    "db" => array(
            "username" => null,
            "password" => null,
            "host" => null,
            "database" => null
    ),
    "directories" => array(
            "document_root" => $root,
            "site_root" => $root . '/public_html',
            "resources" => $resources,
            "templates" => $resources . '/templates',
            "library" => $resources . '/library',
            "views" => $resources . '/views',
            "controllers" => $resources . '/controllers',
            "backups" => $resources . '/backups',
            "admin" => $resources . '/admin'
    ),
    "pages" => array(
        "index" => array(
            "title" => "Welcome, you can order your tickets to St. Tom's
                Ambulance annual ball here",
            "headers" => array("introduction", "the process", "start"),
            "views" => array("/index.form.view.php", "/index.data.view.php",
                "/index.side.view.php")
        ),
        "login" => array(
            "title" => "Log in here so as to place your order.",
            "headers" => array("log in", "guests' details", "choose seats"),
            "views" => array("/login.view.php", "/guests.view.php",
                "/table.select.order.view.php")
        ),
        "amend" => array(
            "title" => "Amend your order here.",
            "headers" => array("enter order no.", "available seats",
                "amend seats"),
            "views" => array("/amend.view.form.php",
                "/table.select.amend.view.php", "/amend.view.side.php")
        ),
        "menus" => array(
            "title" => "Select your menus and checkout here.",
            "headers" => array("view menus", "select menus",
                "check out"),
            "views" => array("/menus.see.view.php",
                "/menus.select.view.php", "/checkout.view.php")
        ),
        "message" => array(
            "title" => "Information about your order."
        ),
        "amend_message" => array(
            "title" => "Information about your ammendment."
        )
    ),
    "month" => array("January", "February", "March", "April", "May", "June",
        "July", "August", "September", "October", "November", "December"),
    "ticket_price" => 30,
    "year_limit" => (2010 - 13),
    "event_dateTime" => '2010-11-20 19:00:00'
);

require_once($config['directories']['library']. "/class/FormDB.php");


$form = new FormDB($config["db"]["host"],
    $config["db"]["username"],
    $config["db"]["password"],
    $config["db"]["database"],
    $config["event_dateTime"]);
?>

There's no code to change the config.php file itself, and that's probably where the problem lies. Often the issue is the permissions of the configuration file - if it is to be server-configurable (with forms or otherwise), the permissions on the file must allow it.

You can also try a tiny library I wrote way back to manage the configuration of scripts in a more structured way - SQLconf .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM