Config instellen als wordpress
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!
Gewijzigd op 03/12/2016 12:33:34 door - Rob -
In $setting heb je alle settings dan staan.
config.ini
Code (php)
1
2
3
4
5
2
3
4
5
[database]
db_host = localhost
db_name = mijn_website
db_user = pietje
db_password = T0P_53CR3T
db_host = localhost
db_name = mijn_website
db_user = pietje
db_password = T0P_53CR3T
En schrijven kan met dit op S.O. gevonden scriptje.
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
27
28
29
30
31
32
33
34
35
36
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
27
28
29
30
31
32
33
34
35
36
<?php
function write_php_ini($array, $file)
{
$res = array();
foreach($array as $key => $val)
{
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($file, implode("\r\n", $res));
}
function safefilerewrite($fileName, $dataToSave)
{ if ($fp = fopen($fileName, 'w'))
{
$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);
}
}
?>
function write_php_ini($array, $file)
{
$res = array();
foreach($array as $key => $val)
{
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($file, implode("\r\n", $res));
}
function safefilerewrite($fileName, $dataToSave)
{ if ($fp = fopen($fileName, 'w'))
{
$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);
}
}
?>
Gewijzigd op 03/12/2016 12:45:36 door - Ariën -
Gewijzigd op 03/12/2016 13:06:27 door - Rob -
ini is gewoon een speciaal format in een .ini file.
Lees anders mijn post nog eens.
Oké, ik heb hem nog is doorgelezen, ook de link die je stuurde. Maar ik snap het nog niet echt? Hoe kan dit helpen bij mijn vraag die ik stelde? Wel bedankt dat je zo snel reageerd!
Je moet met PHP je formulier opslaan in een array, en dan kan je met de genoemde functie deze opslaan in een .ini file.
Kan je misschien mij helpen voor het op te slaan in een .ini file? Hier is mijn code die ik heb.
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$hostname = $_POST['hostname'];
$username = $_POST['username'];
$password = $_POST['password'];
$database = $_POST['database'];
$prefix = $_POST['prefix'];
$dbArray = Array($hostname, $username, $password, $database, $prefix);
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
</body>
</html>
<form action="" method="POST">
<input type="text" name="hostname" placeholder="Hostname">
<input type="text" name="username" placeholder="Username">
<input type="text" name="password" placeholder="Password">
<input type="text" name="database" placeholder="Database">
<input type="text" name="prefix" placeholder="Prefix">
<input type="submit" name="submit" value="Save">
</form>
$hostname = $_POST['hostname'];
$username = $_POST['username'];
$password = $_POST['password'];
$database = $_POST['database'];
$prefix = $_POST['prefix'];
$dbArray = Array($hostname, $username, $password, $database, $prefix);
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
</body>
</html>
<form action="" method="POST">
<input type="text" name="hostname" placeholder="Hostname">
<input type="text" name="username" placeholder="Username">
<input type="text" name="password" placeholder="Password">
<input type="text" name="database" placeholder="Database">
<input type="text" name="prefix" placeholder="Prefix">
<input type="submit" name="submit" value="Save">
</form>
Gewijzigd op 03/12/2016 13:56:20 door - Rob -
Zo een array reconstrueer je dan, en gebruik je in de genoemde functie.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$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,
));
parse_ini_file('config.ini', true);
$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,
));
parse_ini_file('config.ini', true);
Ik heb nu zo mijn array, config.ini staat op zelfde locatie als waar het form staat.
Quote:
Hoe bedoel je precies? En hoe gebruik ik dat in de genoemde functie?Zo een array reconstrueer je dan, en gebruik je in de genoemde functie.
Gewijzigd op 03/12/2016 14:29:36 door - Rob -
Gebruik de functie van StackOverflow waar ik heen linkte.
Quote:
[default_colors]
sitebg = #F8F8F8
footerbg = #F8F8F8
link = #F8F8F8
url = #F8F8F8
bg = #F8F8F8
text = #F8F8F8
border = #F8F8F8
lu_link = #F8F8F8
lu_url = #F8F8F8
lu_bg = #F8F8F8
lu_text = #f505f5
lu_border = #F8F8F8
sitebg = #F8F8F8
footerbg = #F8F8F8
link = #F8F8F8
url = #F8F8F8
bg = #F8F8F8
text = #F8F8F8
border = #F8F8F8
lu_link = #F8F8F8
lu_url = #F8F8F8
lu_bg = #F8F8F8
lu_text = #f505f5
lu_border = #F8F8F8
is de array? Van S.O.
Gewijzigd op 03/12/2016 14:43:26 door - Ariën -
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?
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?
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..
Toevoeging op 03/12/2016 15:02:11:
- 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:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?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);
}
}
?>
$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);
}
}
?>
Gewijzigd op 03/12/2016 15:05:16 door - Rob -
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.
Gewijzigd op 03/12/2016 15:08:41 door - Ariën -
- 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.
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.
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?
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?
Gewijzigd op 03/12/2016 15:33:00 door - Rob -
Begin anders even opnieuw.
Je moet gewoon je eigen gemaakte array en de bestandsnaam in de aanroep zetten.
Gewijzigd op 03/12/2016 15:35:39 door - Ariën -