Hallo!

Ik had een vraag, hoe kan ik netzo als wordpress de config instellen met een form? Dat je gegevens invoert, zoals language, database-naam, wachtwoord, database-host en tabelprefix. Als jullie weten waar ik dit kan vinden kan je ook een link sturen, of gewoon een bericht met de info. Alvast bedankt!
Dat is geen array, maar een ini-file format.

Met de write_php_ini() functie kan je de array met je de $dbData van jouw script naar je .ini file schrijven.
Ik snap er echt helemaal niks meer van :P. write_php_ini() is geen functie, als ik de functie pak van S.O. werkt het niet (ook als ik het aangepast). ZOu je voor mij alstublieft een voorbeeld willen maken hoe het moet?
Niet lullig bedoel Rob, maar waarom wil je dit precies zo instellen?
Als ik het topic zo lees heb je nog niet zo heel veel verstand en ervaring van/met php.

Ga je het .ini bestand wel buiten de root opslaan?
Die functie heb ik in mijn eerste post laten zien. Ik heb nu geen PC om het uit te testen, maar wat heb je nu geprobeerd? En wat gebeurt er nu op dit moment?
Ramon van Dongen op 03/12/2016 14:56:48

Niet lullig bedoel Rob, maar waarom wil je dit precies zo instellen?
Als ik het topic zo lees heb je nog niet zo heel veel verstand en ervaring van/met php.

Ga je het .ini bestand wel buiten de root opslaan?


Nou, ik wil alles gewoon uittesten, dit is dus om te testen en misschien kan ik het later dan nog eens gebruiken..

[size=xsmall]Toevoeging op 03/12/2016 15:02:11:[/size]

- Ariën - op 03/12/2016 14:57:20

Die functie heb ik in mijn eerste post laten zien. Ik heb nu geen PC om het uit te testen, maar wat heb je nu geprobeerd? En wat gebeurt er nu op dit moment?


Hij gaf eerst een error: "Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\installeren.php on line 21", daarvoor gaf die aan dat de functie niet gedifend was, maar dat is al opgelost.

Dit is de function code, daar geeft die de error in:

<?php
$hostname = $_POST['hostname'];
$username = $_POST['username'];
$password = $_POST['password'];
$database = $_POST['database'];
$prefix   = $_POST['prefix'];

$dbData = array(
                'dbData' => array(
                    'hostname' => $hostname,
                    'username' => $username,
                    'password' => $password,
                    'database' => $database,
                    'prefix' => $prefix,
                ));
write_php_ini('config.ini', true);

function write_php_ini($dbData)
{
    $res = array();
    foreach($dbData as $key => $val) // Hier geeft die de error steeds
    {
        if(is_array($val))
        {
            $res[] = "[$key]";
            foreach($val as $skey => $sval) $res[] = "$skey = ".(is_numeric($sval) ? $sval : '"'.$sval.'"');
        }
        else $res[] = "$key = ".(is_numeric($val) ? $val : '"'.$val.'"');
    }
    safefilerewrite($dbData, implode("\r\n", $res));
}


function safefilerewrite($fileName, $dataToSave)
{    if ($fp = fopen($fileName, 'config.ini'))
    {
        $startTime = microtime(TRUE);
        do
        {            $canWrite = flock($fp, LOCK_EX);
           // If lock not obtained sleep for 0 - 100 milliseconds, to avoid collision and CPU load
           if(!$canWrite) usleep(round(rand(0, 100)*1000));
        } while ((!$canWrite)and((microtime(TRUE)-$startTime) < 5));

        //file was locked so now we can store information
        if ($canWrite)
        {            fwrite($fp, $dataToSave);
            flock($fp, LOCK_UN);
        }
        fclose($fp);
    }
}
?>
Je roept de functie fout aan op regel 16. Gebruik de array en dan de bestandsnaam.

Update:
Je maakt er wel een potje van door alles bij elkaar te gokken. Je functie moet je NIET aanpassen, alleen juist aanroepen

Een tutorial over functies lijkt me een beter idee.
- Ariën - op 03/12/2016 15:05:52

Je roept de functie fout aan op regel 16. Gebruik de array en dan de bestandsnaam.

Update:
Je maakt er wel een potje van door alles bij elkaar te gokken. Je functie moet je NIET aanpassen, alleen juist aanroepen

Een tutorial over functies lijkt me een beter idee.


In die TUT die je stuurde stond deze functie, maar niet de array dus hoe moet ik weten wat ik fout doe. EN ja ik maak er een potje van maar als ik het probeer leer ik er mee van.

Die array moet je in de aanroep meegeven. Niet op de plek waar je de functie aanmaakt.

Je weet waar je de functie aanmaakt, en waar je hem aanroept?
- Ariën - op 03/12/2016 15:28:46

Die array moet je in de aanroep meegeven. Niet op de plek waar je de functie aanmaakt.

Je weet waar je de functie aanmaakt, en waar je hem aanroept?


Ja dat weet ik. Alleen ik snap niks van deze functie, wat doet de functie precies? Hoe werkt deze functie?
Waarom pas je de functie zelf dan aan?
Begin anders even opnieuw.

Je moet gewoon je eigen gemaakte array en de bestandsnaam in de aanroep zetten.

Reageren