Config instellen als wordpress
- Ariën - op 03/12/2016 15:34:34:
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.
Begin anders even opnieuw.
Je moet gewoon je eigen gemaakte array en de bestandsnaam in de aanroep zetten.
Maar de bestandnaam van welke file? Waar de function enz in staat of een andere file?
Je ini-file...
- Ariën - op 03/12/2016 16:10:11:
Je ini-file...
Maar die staat er al, maar dan staat het er dubbel bij de 2e function want daar is fileName dus config.ini en daarachter staat dat er nog een keer? EN bij de 1e functie ook?
Je hoeft alleen maar die write_php_ini_() functie aan te roepen met je zelfgemaakte array, en de locatie van je .ini-file.
Die functie zelf hoef je echt niet aan te passen.
Wat heb je nu dan? Als het niet lukt bouw ik wel wat als ik thuis ben.
Gewijzigd op 03/12/2016 18:32:30 door - Ariën -
- Ariën - op 03/12/2016 18:29:48:
Het is echt niet zo moeilijk als het lijkt. :-)
Je hoeft alleen maar die write_php_ini_() functie aan te roepen met je zelfgemaakte array, en de locatie van je .ini-file.
Die functie zelf hoef je echt niet aan te passen.
Wat heb je nu dan? Als het niet lukt bouw ik wel wat als ik thuis ben.
Je hoeft alleen maar die write_php_ini_() functie aan te roepen met je zelfgemaakte array, en de locatie van je .ini-file.
Die functie zelf hoef je echt niet aan te passen.
Wat heb je nu dan? Als het niet lukt bouw ik wel wat als ik thuis ben.
Wat ik hierboven heb, heb ik maar verder niks..
Quote:
Als het niet lukt bouw ik wel wat als ik thuis ben.
Dat zou wel nice zijn, en aardig! :D
Probeer maar, laat maar even zien.
Als het echt niet lukt, open ik mijn code editor wel.
Gewijzigd op 03/12/2016 20:47:50 door - Ariën -
- Ariën - op 03/12/2016 12:41:52:
Een mooie oplossing is om met een .ini file te werken die je buiten de webroot (!) zet. Het is plain tekst, en kan iedereen de inloggegevens lezen.
Kun je een .ini file dan niet beveiligen met een.htaccess 'je ?
Gewijzigd op 03/12/2016 23:11:43 door - Ariën -
Gewijzigd op 04/12/2016 19:18:34 door Jamie Trip
Jamie, niet lullig bedoeld, en ook niet persoonlijk, maar misschien wil je je post herzien als je weer nuchter bent? Ik mis een beetje het constructieve deel van je antwoord.
Toevoeging op 04/12/2016 11:02:34:
Ariën? Zou je dan voor mij nog die script willen maken? :D
Gewijzigd op 04/12/2016 11:04:14 door - Rob -
Het enige nadeel is dat de hoofdstukken ([database]) niet worden opgeslagen. PHP vindt die blijkbaar niet zo belangrijk. Maar met het gebruik van prefixes (db_host) kan je zelf toch voldoende groeperen.
readini.php
Code (php)
1
2
3
4
2
3
4
<?php
$setting = parse_ini_file('datafile.ini');
echo "<pre>".print_r($setting,true)."</pre>";
?>
$setting = parse_ini_file('datafile.ini');
echo "<pre>".print_r($setting,true)."</pre>";
?>
makeini.php
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
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
<?php
/* NIEUWE SETTINGS! Je kan hier je POST variabelen gebruiken in de values. Verder gewoon fictieve waardes en keys */
$array = array(
'db_host' => 'localhost',
'db_name' => 'a',
'db_user' => 'a',
'db_password' => 'c',
'sitestatus' => 1,
'encoding' => 'ANSI'
);
write_php_ini($array, "datafile.ini");
/*DO NOT EDIT UNDER THIS LINE! */
/* ==============================================================*/
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);
}
}
?>
/* NIEUWE SETTINGS! Je kan hier je POST variabelen gebruiken in de values. Verder gewoon fictieve waardes en keys */
$array = array(
'db_host' => 'localhost',
'db_name' => 'a',
'db_user' => 'a',
'db_password' => 'c',
'sitestatus' => 1,
'encoding' => 'ANSI'
);
write_php_ini($array, "datafile.ini");
/*DO NOT EDIT UNDER THIS LINE! */
/* ==============================================================*/
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);
}
}
?>
datafile.ini
Code (php)
1
2
3
4
5
6
2
3
4
5
6
db_host = localhost
db_name = mijn_website
db_user = pietje
db_password = T0P_53CR3T
sitestatus = 1
encoding = UTF8
db_name = mijn_website
db_user = pietje
db_password = T0P_53CR3T
sitestatus = 1
encoding = UTF8
Gewijzigd op 04/12/2016 11:15:21 door - Ariën -
- Ariën - op 04/12/2016 11:11:29:
Ik heb het script uitgetest, en het draait prima. En zo moeilijk was het ook niet eens ;-).
Het enige nadeel is dat de hoofdstukken ([database]) niet worden opgeslagen. PHP vindt die blijkbaar niet zo belangrijk. Maar met het gebruik van prefixes (db_host) kan je zelf toch voldoende groeperen.
readini.php
makeini.php
datafile.ini
Het enige nadeel is dat de hoofdstukken ([database]) niet worden opgeslagen. PHP vindt die blijkbaar niet zo belangrijk. Maar met het gebruik van prefixes (db_host) kan je zelf toch voldoende groeperen.
readini.php
Code (php)
1
2
3
4
2
3
4
<?php
$setting = parse_ini_file('datafile.ini');
echo "<pre>".print_r($setting,true)."</pre>";
?>
$setting = parse_ini_file('datafile.ini');
echo "<pre>".print_r($setting,true)."</pre>";
?>
makeini.php
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
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
<?php
/* NIEUWE SETTINGS! Je kan hier je POST variabelen gebruiken in de values. Verder gewoon fictieve waardes en keys */
$array = array(
'db_host' => 'localhost',
'db_name' => 'a',
'db_user' => 'a',
'db_password' => 'c',
'sitestatus' => 1,
'encoding' => 'ANSI'
);
write_php_ini($array, "datafile.ini");
/*DO NOT EDIT UNDER THIS LINE! */
/* ==============================================================*/
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);
}
}
?>
/* NIEUWE SETTINGS! Je kan hier je POST variabelen gebruiken in de values. Verder gewoon fictieve waardes en keys */
$array = array(
'db_host' => 'localhost',
'db_name' => 'a',
'db_user' => 'a',
'db_password' => 'c',
'sitestatus' => 1,
'encoding' => 'ANSI'
);
write_php_ini($array, "datafile.ini");
/*DO NOT EDIT UNDER THIS LINE! */
/* ==============================================================*/
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);
}
}
?>
datafile.ini
Code (php)
1
2
3
4
5
6
2
3
4
5
6
db_host = localhost
db_name = mijn_website
db_user = pietje
db_password = T0P_53CR3T
sitestatus = 1
encoding = UTF8
db_name = mijn_website
db_user = pietje
db_password = T0P_53CR3T
sitestatus = 1
encoding = UTF8
Harstikke bedankt! Hier kan ik echt veel mee :D
Gewijzigd op 04/12/2016 11:54:16 door - Rob -
Met dit kan je bijvoorbeeld je waarde van db_user ophalen.
Gewijzigd op 04/12/2016 12:00:57 door - Ariën -
Gewijzigd op 04/12/2016 12:14:30 door - Rob -
komt het op een wit scherm met de error: Fatal error: Uncaught Error: Call to undefined function write_php_ini() in C:\xampp\htdocs\Bedrijfspaneel\install.php:21 Stack trace: #0 {main} thrown in C:\xampp\htdocs\Bedrijfspaneel\install.php on line 21. hieronder staat de code die ik heb gebruikt.
Toevoeging op 14/01/2017 10:38:02:
Zonder te controleren of er een POST is gedaan met start geeft die deze error niet.
Toevoeging op 14/01/2017 10:43:19:
SOLVED
Functies moeten buiten de controleer functie van de POST, anders werkt het niet.
Hallo! Ik wil graag dat hij dat script alleen uitvoerd als er een $_POST is gebeurd, maar als ik dit instell met 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
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
if (isset($_POST["start"])) {
$array = array(
'db_host' => 'localhost',
'db_name' => 'b',
'db_user' => 'a',
'db_password' => 'c',
'sitestatus' => 1,
'encoding' => 'ANSI'
);
write_php_ini($array, $_SERVER["DOCUMENT_ROOT"]."/../datafile.ini");
/*DO NOT EDIT UNDER THIS LINE! */
/* ==============================================================*/
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);
}
}
}
$array = array(
'db_host' => 'localhost',
'db_name' => 'b',
'db_user' => 'a',
'db_password' => 'c',
'sitestatus' => 1,
'encoding' => 'ANSI'
);
write_php_ini($array, $_SERVER["DOCUMENT_ROOT"]."/../datafile.ini");
/*DO NOT EDIT UNDER THIS LINE! */
/* ==============================================================*/
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);
}
}
}
Toevoeging op 14/01/2017 10:38:02:
Zonder te controleren of er een POST is gedaan met start geeft die deze error niet.
Toevoeging op 14/01/2017 10:43:19:
SOLVED
Functies moeten buiten de controleer functie van de POST, anders werkt het niet.
Als er meerdere knoppen zijn die je kan submitten, dan kan je daarbinnen nog een controle met isset() doen op de bewuste knoppen.
Gewijzigd op 14/01/2017 10:59:54 door - Ariën -
Wat is het verschil tussen deze twee manieren?
Misschien is die knop er geeneens, en dan kan je het ook niet versturen.
Gewijzigd op 14/01/2017 11:34:55 door - Ariën -
Iemand kan code voor je kloppen, maar op den duur moet je zelf weten van de hoed en de rand. Behandel één onderwerp per keer en werk dit af voordat je aan iets ander begint. Persoonlijk kom je nogal chaotisch over.
En als je dan toch code dumpt met print_r(), doe dit dan veilig. Zelfs in een testomgeving (die vaak in verbinding staat met het internet). Hetgeen je uitpoept op het scherm kan HTML / JavaScript bevatten.
EDIT: daarnaast doe je er verstandig aan om functies in aparte bestanden onder te brengen die je, mits je deze vaak gebruikt, altijd include. Het is niet handig / verstandig om deze "inline" of zelfs binnen conditionele statements te zetten omdat deze dan maar (heel) soms gedeclareerd zijn.
Gewijzigd op 14/01/2017 14:53:20 door Thomas van den Heuvel