Archief - PHP: cfg file gebruiken werkt niet al te goed

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Bram

Legacy Member
ik ben bezig aan een klein cms'je en had een .cfg bestand gemaakt om wat variabelen in op te slaan (en gemakkelijk te kunnen editten) dingen zoals het adminemail voor het contact form e.d. (op dezelfde manier bv als phpbb)

nu include ik dat bestand in config.php dat bovenaan m'n index wordt geinclude (met de database connectie enzo), maar als ik in contact.php een variabele uit diezelfde .cfg probeer aan te roepen werkt het niet, het werkt pas als ik die .cfg nog eens in contact.php include ook, wat niet echt de bedoeling was.

Iemand een idee om dit op te lossen?

WHiSPy

Legacy Member
1. Paswoorden opslaan in 'n .cfg-file (plain-text) is a big nono.
2. Zoek eens op internet naar visibiliteit van variablen? Ik heb zo'n klein vermoeden dat uw probleem zich daar gaat bevinden.
3. PHP is een geïnterpreteerde taal. Dus hij gaat de waarden uit de config-file niet in memory bijhouden. Als je de file overschrijft, dan gaat hij die met andere woorden gewoon de volgende keer gebruiken.

Tyfius

Legacy Member
Als uw contact.php in uw index.php wordt geinclude zou dit zonder probleem moeten werken. Als contact.php een volledige aparte pagina is (dus de URL zal dan iets zijn als www.site.tld/contact.php) dan gaat dit niet werken, omdat config.cfg daar niet in wordt geinclude.
Je moet dit zo bekijken: elke include gaat gewoon vervangen worden door de inhoud van het te includen bestand. Dus:
a.php
PHP:
define("A", 10);
b.php
PHP:
define("B", 20);
c.php
PHP:
include("a.php");
include("b.php");
c.php zal dus intern worden voorgestend als:
PHP:
define("A", 10);
define("B", 20);
Maar in d.php zal de waarde van A of van B dus niet gekend zijn zonder deze te includen.

On a sidenote: .cfg bestanden gebruiken om plain-text wachtwoorden op te slaan is een zeer slecht idee. Gebruik best een .inc.php bestand of iets dergelijks, op die manier scherm je je code toch af want .php zal eerst verwerkt worden door bvb Apache alvorens weer te geven. Een .cfg bestand is een plain-text bestand en zal dus als plain-text worden weergegeven in de webbrowser.

Bram

Legacy Member
het gaat niet om paswoorden maar om emailadressen enzo... de paswoorden van de login zitten in een database... (met md5 encryptie...)...
mja, config.cfg wordt in index.php geinclude, waar ook main.php wordt geinclude, maar pas in main.php wordt contact.php geinclude... het is dus daardoor dat ie die waarden niet onthoudt veronderstel ik?

Tyfius

Legacy Member
Dit zou dan hetvolgende moeten opleveren:
index.php
PHP:
// index dingen
   // main dingen
      // contact dingen
Pas als je expliciet de URL main.php of contact.php oproept zal er natuurlijk niets geinclude worden, maar als main.php binnen index.php komt te staan (in wezen wordt dus de tekst include(); vervangen door de inhoud van het bestand) zou dit geen probleem mogen opleveren.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan