database openen?
- waar staat test.ini (wat is de locatie ten opzichte van de pagina van bovenstaande broncode)?
- hoe ziet test.ini er inhoudelijk uit?
- wat gebeurt er als je bovenaan je pagina het volgende toevoegt:
krijg je in dat geval foutmeldingen?
Gewijzigd op 17/08/2017 01:09:25 door Thomas van den Heuvel
Het bestand staat daar waar hij eigenlijk niet moet staan volgens dit forum. Maar daar wil ik later aan werken. Het staat naast de index.php (In de root dus)
Na het toevoegen van die code, krijg ik deze melding:
Quote:
Fatal error: Call to undefined function print_r() in /share/MD0_DATA/Web/test.nl/index.php on line 17
De inhoud van Test.ini is:
Quote:
[algemene instellingen]
programmanaam = Test
versie = 0.1.0.alpha.8
[connectie]
host = localhost
user = Test
pass = Test
database = db_test
programmanaam = Test
versie = 0.1.0.alpha.8
[connectie]
host = localhost
user = Test
pass = Test
database = db_test
Gewijzigd op 17/08/2017 16:10:37 door Frits van Leeuwen
Die zou normaal gesproken een associatieve array moeten geven. omdat je sections ook in je array wilt verwerken.
Ik zou graag iets in beeld krijgen, waarmee ik de array kan bekijken. Dan weet ik daarna ook weer hoe ik weer verder moet.
Nu krijg ik dus met Thoms z'n aanvulling in de code de melding:
Quote:
Fatal error: Call to undefined function print_r() in /share/MD0_DATA/Web/test.nl/index.php on line 17
Gewijzigd op 17/08/2017 16:16:25 door Frits van Leeuwen
print_r() is gewoon een bestaande functie in PHP 4,5,6 en 7.
precies, dus ik dacht ook,... als ik het zo doe, dan moet het lukken. Maar helaas...Dus ik snap het niet.
Misschien heeft de server het moeilijk met geheugen. Ik heb ooit een keer meegemaakt dat in een dergelijk geval ook vreemde foutmeldingen te zien waren.
Gewijzigd op 17/08/2017 16:29:09 door - Ariën -
De server is mijn eigen NAS.
Ik zou ik eens kijken of een reboot helpt, en als dat niet helpt een klacht/vraag bij de helpdesk van de fabrikant van je NAS te openen. (welke heb je?)
print_r() is gewoon een vaste PHP-functie die er al heel lang in zit, en ik zie geen bepaalde voorwaarden waarom dit niet zou werken (soms zijn functies Windows/Linux only, om maar wat te noemen).
Is het niet een beter idee om een webserver op je PC te gebruiken? Denkend aan XAMPP? Dan heb je geen vreemde PHP-versie met rare fratsen... ;-)
Toevoeging op 17/08/2017 17:35:44:
Laat anders je code nog eens zien. Misschien heb je een vreemd spatie-achtig karakter voor je print_r staan.
Desnoods even die regel opnieuw typen.
Ik gebruik de NAS als PHP server, want dan kan mijn vrouw er ook bij op verschillende delen in het huis.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'stdout');
?>
<!DOCTYPE html>
<html>
<head>
<title>Basisbestand Test</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<header>
</header>
<content>
<?php
$b=print_r(parse_ini_file("test.ini",true),true);
echo $b;
//database openen
echo $b['algemeen']['programmanaam'];
?>
</content>
<footer>
</footer>
</body>
</html>
error_reporting(E_ALL);
ini_set('display_errors', 'stdout');
?>
<!DOCTYPE html>
<html>
<head>
<title>Basisbestand Test</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<header>
</header>
<content>
<?php
$b=print_r(parse_ini_file("test.ini",true),true);
echo $b;
//database openen
echo $b['algemeen']['programmanaam'];
?>
</content>
<footer>
</footer>
</body>
</html>
- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 17/08/2017 20:35:15 door - Ariën -
Zou je dat voortaan ook zelf willen doen?
Ik denk dat er toch iets mis is met de php-ondersteuning van de NAS, of je hebt een heel rare bug in PHP getriggerd. Laten we de code eens meer uit elkaar vlechten:
Code (php)
1
2
3
4
2
3
4
<?php
$parse = parse_ini_file("test.ini",true);
echo "<pre>".print_r($parse,true)."</pre>";
?>
$parse = parse_ini_file("test.ini",true);
echo "<pre>".print_r($parse,true)."</pre>";
?>
Geeft dit wel een mooie array-boom?
Gewijzigd op 17/08/2017 20:35:25 door - Ariën -
Dank voor je geduld en moeite. Wat mijbetreft kan kan deze topic gesloten worden.
Ik ben blij.
Fijn dat het nu lijkt te werken. Ik heb geen idee waarom de functie niet herkend werd, maar misschien hielp het wel met het uitelkaar trekken van de code. Die <pre> is bedoeld om het als preformatted tekst te tonen, zodat alle enters en spaties netjes zichtbaar zijn.
Over die foutmelding: ik zie 2 spaties staan voor de functienaam ipv de gebruikelijke 1. Is hier mogelijk iets misgegaan bij een copy/paste?
Voortaan maar overtikken i.p.v. copy/past.
Welke editor gebruik je eigenlijk?
Misschien helpt het als je eerst copy/paste in kladblok en het dan vanuit daar weer copy/paste naar je editor.
idd... copy/paste naar kladblok is ook een goed en snelle optie
Bedankt.
Maar vervuilen we hier niet het forum? Of is deze vraagstellingen en antwoorden van belang tot de vraag die ik stelde aan het begin?
Toch nog eens allemaal bedankt voor de lieve snelle assistentie.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
file_put_contents('config.php',"<?php\n\nreturn " . var_export($config,true) . ';');
In je script doe je dan:
$config = require('config.php);
In je script doe je dan:
$config = require('config.php);
Gewijzigd op 18/08/2017 13:44:10 door Rob Doemaarwat