2010-07-27 5 views
1

Je rencontre des problèmes pour changer mon fichier de configuration config.php. À l'heure actuelle, j'essaie de configurer les détails de la base de données $config['db] via un formulaire résidant dans le même répertoire, cependant, lorsque j'inclue le fichier de configuration, les canaux ne se matérialisent pas. Voici ce que config.php ressemble à:make configurable fichier config.php

<?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"]); 
?> 
+0

Alors, où changez-vous réellement le contenu des fichiers de configuration? – NullUserException

+0

Ce n'est pas montré dans ce code. Cependant, à partir de l'entrée de formulaire, je crée un $ _SESSION ['db'] qui est ensuite passé à $ config ['db'] dans le fichier config.php en vérifiant si $ _SESSION ['db'] existe. La chose est que cela fonctionne quand j'accède au site Web avec l'URL longue http: // localhost/... cependant, lorsque j'essaie d'accéder au site à partir de l'hôte virtuel http: //st.ambulance/... alors ça ne marche plus. – Fortisimo

Répondre

1

Il n'y a pas de code pour modifier le fichier config.php lui-même, et c'est probablement là où réside le problème. Souvent, le problème réside dans les autorisations du fichier de configuration - s'il doit être configurable par le serveur (avec des formulaires ou autre), les autorisations sur le fichier doivent l'autoriser.

Vous pouvez également essayer une petite bibliothèque que j'ai écrite pour gérer la configuration des scripts de manière plus structurée - SQLconf.

Questions connexes