write_php_ini

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET Core developer wordt jij onderdeel van ons team met drie breed ontwikkelde software engineers en een flexibele schil met zes ervaren freelancers. Jij gaat mee in de visie van onze organisatie om als IoT partner in deze branche specifieke markt “het” platform te blijven innoveren en deze ook steeds slimmer te maken. Wij hopen dan ook zeker dit in de toekomst te kunnen realiseren met bijvoorbeeld Artificial Intelligence. De architectuur van ons platform is opgemaakt uit een deel eigen protocol, een interface laag en een laag welke de protocollen van derde partijen vertaald naar het eigen

Bekijk vacature »

.NET Developer

Dit ga je doen Binnen het team bouw je aan een applicatie met andere .Net Developers, testers een Product Owner en een Business Analyst. Met het team wordt de backlog besproken. In overleg claim jij jouw deel en zorgt ervoor dat onderhoud en innovatie wordt gerealiseerd. Het project dat momenteel draait is het opgraden van de omgeving. Doorontwikkelen van de huidige applicatie; Overleggen met teamleden om de backlog te verdelen; Onderhouden van de huidige omgeving; Sparren met de business en het ophalen van nieuwe requirements. Hier ga je werken De organisatie is een van de grootste landelijke aanbieder van diverse

Bekijk vacature »

(Junior) Back-end Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Altijd al willen werken bij een organisatie, die maatwerk applicaties bouwt, die echt impact hebben in de maatschappij? Dit is je kans. Voor een kleine organisatie in de regio van Eindhoven ben ik op zoek naar een C# Ontwikkelaar. Jij gaat aan de slag met de ontwikkeling van maatwerk software en applicaties. Deze organisatie werkt voor grote organisaties in Nederland, maar ook voor het MKB. De projecten waar je aan gaat werken zijn erg divers, waardoor je werk uitdagend blijft en je erg veel kan leren. Verder ga je aan

Bekijk vacature »

Full stack developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

C# .NET developer voor innovatieve applicaties gez

Bedrijfsomschrijving Deze werkgever houdt zich al ruim 20 jaar bezig met het ontwikkelen van innovatieve software en dat willen ze graag nog lang doorzetten. En dat merk je ook als je als .NET developer hier aan de slag gaat. De applicaties worden continu doorontwikkeld met altijd als uitgangspunt dat zowel de kwaliteit als het gebruikersgemak van hoog niveau is. Het bedrijf telt inmiddels ruim 25 medewerkers waarvan meer dan de helft op de development afdeling werken. Meer weten over deze werkgever? Mail naar [email protected] of bel 0657578548 Functieomschrijving Je komt te werken in een Scrum team met andere .NET developers

Bekijk vacature »

SQL developer

Functieomschrijving Voor een erkende werkgever in de omgeving van Tilburg zijn wij op zoek naar een ervaren SQL ontwikkelaar. Hier wordt jij mede verantwoordelijk voor zowel de design en implementatie van SQL-databases als voor het verstaan van de processen van klanten naar het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt er als volgt uit te zien: Het ontwerpen en implementeren van databaseschema's: Je bent in staat om een database te ontwerpen en de structuur van tabellen, relaties, indexen en andere objecten te definiëren; Het schrijven van complexe SQL-query's: Je kunt complexe query's schrijven om gegevens uit de database

Bekijk vacature »

SAP Integratie Ontwikkelaar

Ben jij ambitieus in de verdere ontwikkeling van SAP binnen HANOS, en heb je kennis van SAP PI, CPI (SAP integration suite) en of andere middleware tooling? Dan ben jij mogelijk onze nieuwe SAP Integratie (middleware) Ontwikkelaar! Lees snel verder en solliciteer! Wat ga je doen? Als SAP Financieel Consultant ben je, als deel van een gedreven team van interne SAP consultants, de schakel tussen de gebruikersorganisatie en ICT. Je draagt proactief bij aan een optimale aansluiting van de SAP-functionaliteit (een applicatielandschap met o.a. Suite on HANA, Fiori, Hybris, C4C en BO), op de bedrijfsprocessen. Verder ondersteun je de HANOS

Bekijk vacature »

SQL database developer

Functie omschrijving Voor een softwarebedrijf gespecialiseerd in het ontwikkelen van logistieke software in omgeving Tilburg zijn wij op zoek naar een ervaren SQL database developer. Je gaat werken aan uitdagende, complexe projecten. Iedere klant/project betekent maatwerk in de database. Jouw werkzaamheden zullen er als volgt uit zien: Je bent verantwoordelijk voor de gehele ontwikkelstraat. Van architectuur tot ontwikkeling Je gaat je bezig houden met het ontwerpen en ontwikkelen van MS SQL server databases. Je gebruikt hiervoor T-SQL als programmeer laag. Je begeleidt als lead developer de projecten bij klanten van A – Z. Je sluit aan bij meetings met klanten,

Bekijk vacature »

Software developer

Functieomschrijving Voor een gewaardeerde werkgever in de regio van Middelburg zijn wij op zoek naar een ambitieuze PHP/Symfony Developer. Een enthousiast persoon die het development team komt versterken met het aanpakken van complexe en nieuwe projecten. Ben jij op zoek naar een baan met veel uitdaging binnen een snelgroeiend e-commerce bedrijf, waar je de tijd en ruimte krijgt voor zowel persoonlijke als professionele groei? Lees dan snel verder! Dit ga je doen: Aanpassingssuggesties van collega’s in kaart brengen, vervolgens te analyseren en daarna te concluderen of de aanpassing een verbetering is; Ontwikkeling en beheer van de serviceportal in Symfony en

Bekijk vacature »

Medior Front-end Developer

Bij Getnoticed doen wij wat we leuk vinden, websites bouwen en online marketing. Voor veel van onze klanten doen we dan ook allebei. Wel zo fijn om campagnes te draaien voor conversiegerichte websites die in eigen beheer zijn. In onze vestiging in Nederweert zit onze development afdeling en worden de websites gebouwd. Op dit moment zijn we op zoek naar jou: dé Medior Front-end Developer die net als wij, het hoofd boven het maaiveld durft uit te steken! In het kort Even een paar punten die omschrijven wat deze toffe baan inhoudt: Het uitwerken van designs tot functionele layouts Je

Bekijk vacature »

.NET developer

Functie Als junior .NET Developer start jij in een team met 15 developers. In het team is er genoeg senioriteit om ervoor te zorgen dat jij de juiste begeleiding krijgt. Jij begint als eerst alle software pakketten en processen eigen te maken. Vervolgens ga jij deze software programmeren, onderhouden en testen. Ook ga jij research doen naar nieuwe mogelijkheden en zoek jij uit hoe je dit kan implementeren. Jullie werken intern op project basis en afhankelijk van het project werken jullie wel of niet iedere ochtend met een standup. 50% van jullie werkzaamheden is maatwerk en de overige 50% is

Bekijk vacature »

Medior PHP Developer

Functie omschrijving Ben jij een getalenteerde PHP Developer en aan de slag in een gemotiveerd team? Lees dan snel verder! Voor onze opdrachtgever in de omgeving van Valkenswaard zijn we op zoek naar een ervaren PHP developer. Jij gaat hier zorg dragen voor het optimaliseren en up-to-date houden van de bestaande applicaties. Je werkt verder aan de applicaties die jij verder ontwikkelt. Dit doe je voornamelijk met PHP en MySQL. Verder ga je je bezig houden met: Het uitbouwen van het E-commerce software platform. Deelnemen aan overleggen met het team. Het ondersteunen van jouw team developers (3 man) en helpen

Bekijk vacature »

C# developer

Functie Als C# ontwikkelaar ben jij de spin in het web bij deze organisatie. Jij begeleidt en traint de field engineers die bij de klanten machines leveren en installeren. Daarnaast ondersteun jij de field engineers als zij bij de klant vastlopen bij het installeren van de machine m.b.t. software matige vragen. Jouw doel is dan ook om de technische kennis van de field engineers door middel van training zoveel mogelijk uit te breiden. Dit om ervoor te zorgen dat zij zelfstandiger software matige problemen kunnen oplossen. Ook ben jij verantwoordelijk voor het bedenken van software oplossingen voor klanten en dit

Bekijk vacature »

Software Developer C# .NET

Functie omschrijving Zoek jij een nieuwe uitdaging binnen development waar je komt te werken binnen een flexibel, jong en ondernemend bedrijf? Wij zijn voor deze functie op zoek naar een C# .NET Developer die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Verder begeleid je complexe projecten, ben jij iemand die altijd kansen ziet? Dan zoeken wij jou! Verder ga jij je bezighouden met: Het verbeteren van functionaliteiten binnen het dataplatform; Meedenken in oplossingsrichtingen; Werken aan de architectuur; Ontwikkelen van nieuwe technologieën. Bedrijfsprofiel Waar ga je werken? De organisatie waar je voor gaat werken heeft een onafhankelijk

Bekijk vacature »
- Rob -

- Rob -

29/12/2016 15:35:04
Quote Anchor link
Hallo,

Ik ben bezig geweest met data naar een ini file te zetten. Maar ik kom er niet achter hoe ik iets update.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
$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($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, '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);
    }
}

maar als ik dan bijvoorbeeld iets erbij wilt zoals
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
'naam' => $naam,
maar zonder dat je die andere velden hoeft in te vullen, hoe doe ik dat dan? Met een hidden form? Of...
 
PHP hulp

PHP hulp

16/05/2024 09:26:28
 
- Ariën  -
Beheerder

- Ariën -

29/12/2016 15:56:00
Quote Anchor link
Ja, die kan je dan in een hidden form zetten of met parse_ini_file() uit je databestand halen.
 
Thomas van den Heuvel

Thomas van den Heuvel

29/12/2016 16:10:23
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
write_php_ini('config.ini', true);

function write_php_ini($array, $file)

Dit lijkt mij niet kloppen. Het gebruik van parameters in de declaratie en de aanroep stemt niet overeen.
 
- Ariën  -
Beheerder

- Ariën -

29/12/2016 16:14:33
Quote Anchor link
Inderdaad, hij verwacht eerst je array met ALLE gegevens die je wilt opslaan, en daarna de bestandsnaam van je .ini-file die hij moet beschrijven.
 
- Rob -

- Rob -

29/12/2016 16:36:14
Quote Anchor link
Dit script is van - Ariën - :P
 
- Ariën  -
Beheerder

- Ariën -

29/12/2016 16:42:17
Quote Anchor link
Maar mijn voorbeeld die ik eerder gaf werkte prima.
 
- Rob -

- Rob -

29/12/2016 16:55:56
Quote Anchor link
Dit werkt ook prima:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
<?php
error_reporting(0);
if ($_GET['stap'] == 1) {
    $headertitle = "Stap 1";
    $subtitle = "Hieronder kunt u uw database gegevens invullen. Als je hier niet zeker van bent, neem dan contact op met je webhost.";
    $content = '<form method="POST" action="/installeren?stap=1">
    <table class="form-table">
        <tbody><tr>
            <th scope="row"><label for="dbname">Database naam</label></th>
            <td><input name="database" id="dbname" type="text" size="25" value="paneel"></td>
            <td>De naam van de database die je wilt gebruiken voor het paneel.</td>
        </tr>
        <tr>
            <th scope="row"><label for="uname">Gebruikersnaam</label></th>
            <td><input name="username" id="uname" type="text" size="25" value="gebruikersnaam"></td>
            <td>Uw database gebruikersnaam.</td>
        </tr>
        <tr>
            <th scope="row"><label for="pwd">Wachtwoord</label></th>
            <td><input name="password" id="pwd" type="text" size="25" value="wachtwoord" autocomplete="off"></td>
            <td>Uw database wachtwoord.</td>
        </tr>
        <tr>
            <th scope="row"><label for="dbhost">Database Host</label></th>
            <td><input name="hostname" id="dbhost" type="text" size="25" value="localhost"></td>
            <td>Je zou deze informatie kunen krijgen door je webhost, als <code>localhost</code> niet werkt.</td>
        </tr>
        <tr>
            <th scope="row"><label for="prefix">Tabel Prefix</label></th>
            <td><input name="prefix" id="prefix" type="text" value="panel_" size="25"></td>
            <td>Als je meerdere panelen in 1 database wilt, verander dan dit.</td>
        </tr>
    </tbody></table>
    <p class="step"><input name="datadb" type="submit" value="Verzenden" class="button button-large"></p>
</form>'
;
    
}
elseif ($_GET['stap'] == 2) {
        $headertitle = "Stap 2";
    $subtitle = "Hieronder kunt u uw bedrijf gegevens invullen. Deze gegevens kan je later nog veranderen.";
    $content = '<form method="POST" action="/installeren?stap=1">
    <table class="form-table">
        <tbody><tr>
            <th scope="row"><label for="company">Bedrijfsnaam</label></th>
            <td><input name="company" id="company" type="text" size="25" value="paneel"></td>
            <td>De naam van het bedrijf.</td>
        </tr>
        <tr>
            <th scope="row"><label for="logo1">Logo</label></th>
            <td><input name="logo" id="logo1" type="text" size="25" value=""></td>
            <td>Het logo van het bedrijf.</td>
        </tr>
        <tr>
            <th scope="row"><label for="ss">Site status</label></th>
            <td><input name="sitestatus" id="ss" type="text" size="25" value="Online" autocomplete="off"></td>
            <td>De status van het paneel, standaard is online.</td>
        </tr>
    </tbody></table>
    <p class="step"><input name="datadb" type="submit" value="Verzenden" class="button button-large"></p>
</form>'
;
}
elseif ($_GET['stap'] == 3) {
    $headertitle = "Stap 3";
    $title = "";
}
elseif (empty($_GET['stap'])) {
    $headertitle = "Start";
    $title = "<h1>Voor we gaan starten</h1>";
    $subtitle = "Welkom op de configuratie voor het nieuwste community paneel. Voor we gaan starten, hebben we wat informatie nodig voor de website optezetten. Je moet de volgende dingen weten voor je verder gaat.";
    $content = "<ol>
            <li>Database gegevens</li>
            <li>Bedrijf gegeven/details</li>
        </ol>"
;
    $subcontent = "We gaan deze informatie gebruiken voor de configuratie het paneel en het instellen van de database, mocht het niet werken kun je het op een later tijdstip opnieuw proberen.";
    $extra = "Als het goed is, werden de database gegevens aan u geleverd door uw webhost. Als u deze informatie niet hebt, dan moet u uw webhost contacteren. Als je al klaar bent...";
    $button = '<a href="?stap=1" class="button button-large">Beginnen!</a>';
}
else {
    $headertitle = "...";
    $title = "Deze stap kan niet worden gevonden.";
}


    $hostname    = $_POST['hostname'];
    $username    = $_POST['username'];
    $password    = $_POST['password'];
    $database    = $_POST['database'];
    $prefix      = $_POST['prefix'];
    $company     = $_POST['company'];
    $logo        = $_POST['logo'];
    $sitestatus = $_POST['sitestatus'];

    if (empty($hostname)) {
        $_CONFIG = parse_ini_file($_SERVER["DOCUMENT_ROOT"] . '/../datafile.ini');
        $hostname = $_CONFIG['hostname'];
    }

    if (empty($username)) {
        $_CONFIG = parse_ini_file($_SERVER["DOCUMENT_ROOT"] . '/../datafile.ini');
        $username = $_CONFIG['username'];
    }

    if (empty($password)) {
        $_CONFIG = parse_ini_file($_SERVER["DOCUMENT_ROOT"] . '/../datafile.ini');
        $password = $_CONFIG['password'];
    }

    if (empty($database)) {
        $_CONFIG = parse_ini_file($_SERVER["DOCUMENT_ROOT"] . '/../datafile.ini');
        $database = $_CONFIG['database'];
    }

    if (empty($prefix)) {
        $_CONFIG = parse_ini_file($_SERVER["DOCUMENT_ROOT"] . '/../datafile.ini');
        $prefix = $_CONFIG['prefix'];
    }

    if (empty($company)) {
        $_CONFIG = parse_ini_file($_SERVER["DOCUMENT_ROOT"] . '/../datafile.ini');
        $company = $_CONFIG['company'];
    }

    if (empty($logo)) {
        $_CONFIG = parse_ini_file($_SERVER["DOCUMENT_ROOT"] . '/../datafile.ini');
        $logo = "https://upload.wikimedia.org/wikipedia/commons/3/33/Vanamo_Logo.png";
    }

    if (empty($sitestatus)) {
        $_CONFIG = parse_ini_file($_SERVER["DOCUMENT_ROOT"] . '/../datafile.ini');
        $sitestatus = "Online";
    }


    $array = array(
        'hostname' => $hostname,
        'username' => $username,
        'password' => $password,
        'database' => $database,
        'prefix'   => $prefix,
        'company'  => $company,
        'logo'     => $logo,
        'site_status' => $sitestatus,
        '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);
           header('?stap=2');
        }
    }


    if (isset($_POST['datadb'])) {
        $_CONFIG = parse_ini_file($_SERVER["DOCUMENT_ROOT"] . '/../datafile.ini');
        $mysqli = @new mysqli ($_CONFIG['hostname'], $_CONFIG['username'], $_CONFIG['password'], $_CONFIG['database']);

        if (mysqli_connect_error()) {
            echo '<p style="color: red;">Niet alle gegevens zijn goed ingevoerd. Probeer het opnieuw.</p>';    
        }
else {
            header('Location: ?stap=2');
        }
    }


?>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta name="viewport" content="width=device-width">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title><?=$headertitle?> - Configuratie</title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
        <link rel='stylesheet' id='buttons-css'  href='paneel/assets/css/installation.button.css' type='text/css' media='all'>
        <link rel='stylesheet' id='install-css'  href='paneel/assets/css/installation.css' type='text/css' media='all'>
    </head>
    <body class="wp-core-ui">
        <?=$title?>
        <p><?=$subtitle?></p>
        <?=$content?>
        <p><?=$subcontent?>
        <p><?=$extra?></p>
        <p class="step"><?=$button?></p>
    </body>
</html>
Gewijzigd op 29/12/2016 16:56:42 door - Rob -
 
- Ariën  -
Beheerder

- Ariën -

29/12/2016 17:32:42
Quote Anchor link
Waarom haal je de data met parse_ini_file niet gewoon 1 keer op om het in een variabele op te slaan? Nu doe je per keer in je code bij alle statements.
 
- Rob -

- Rob -

29/12/2016 18:14:23
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
$adminpass = password_hash($_CONFIG['adminpass'], DEFAULT_PASSWORD);
        $adminuser = $_CONFIG['adminuser'];
        $table = $_CONFIG['prefix']."users";
        $sql = "INSERT INTO `$table` (`username`, `password`) VALUES ($adminuser, $adminpass)";
$mysqli = @new mysqli ($_CONFIG['hostname'], $_CONFIG['username'], $_CONFIG['password'], $_CONFIG['database']);
        if ($mysqli->query($sql) === TRUE) {
            header('Location: ?stap=3');
        }

Ik heb nu deze query, maar hij voert hem niet goed uit. Ik weet niet waar het probleem ligt en ook niet hoe ik het moet oplossen.. De verbinding is correct, dat weet ik zeker. Ik heb wel een vermoeden wat er fout is. Hij pakt uit datafile.ini "Admin" met "" maar in de query moet het '' zijn.. en als ik de query met '' begin doet de query het niet.

dit is de datafile.ini
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
prefix = "panel_"
adminuser = "Admin"
adminpass = "SEhUPe9D"
Gewijzigd op 29/12/2016 18:18:21 door - Rob -
 
- Ariën  -
Beheerder

- Ariën -

29/12/2016 21:08:17
Quote Anchor link
Escapen met $mysqli->real_escape_string()
 
- Rob -

- Rob -

03/01/2017 12:21:27
Quote Anchor link
Dat werkt helaas niet, als ik var_dump() doe blijft het met "" dus ook in de sql
 
- Ariën  -
Beheerder

- Ariën -

03/01/2017 12:30:38
Quote Anchor link
Hoe pas je het dan toe? Want $mysqli->real_escape_string() meot in de query gebruiken, en uiteraard moet new mysqli() al eerste uitgevoerd worden. Het beste voer je die bovenaan je script uit, nadat je de configuratie hebt geladen.
 
- Rob -

- Rob -

03/01/2017 14:36:15
Quote Anchor link
T werkt al, alleen als ik een query toevoeg, en die met een POST activeer, wordt heel het beeld wit...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if (isset($_POST['login'])) {
    $prefix = $mysqli->real_escape_string($_CONFIG['prefix']);
    $table = $prefix.'users';
    $adminuser = $mysqli->real_escape_string($_CONFIG['adminuser']);
    $adminpass = $mysqli->real_escape_string(password_hash($_CONFIG['adminpass'], PASSWORD_DEFAULT));
    $adminemail = $mysqli->real_escape_string($_CONFIG['adminemail']);
    $sql = "INSERT INTO `$table` (`username`, `password`, `email`) VALUES ('$adminuser', '$adminpass', '$adminemail')";
    if ($mysqli->query($sql) === TRUE) {
        header('Location: /');
        exit();
    } else {
            echo "Error: " . $sql . "<br>" . $mysqli->error;
    }
    header('Location: /');
    exit();
}


de voledige code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
<?php
error_reporting(0);
session_start();
$_CONFIG = parse_ini_file($_SERVER["DOCUMENT_ROOT"] . '/../datafile.ini');
if ($_CONFIG['installation'] == 1) {
    header('Location: /');
    exit();
}

if ($_CONFIG['configuration'] == 0) {
    header('Location: /configuration');
    exit();    
}

if (empty($_GET['stap'])) {
    if ($_CONFIG['language'] == "nl") {
    $content = '
        <body class="wp-core-ui">
        <h1>Welkom</h1>
        <p>Welkom bij de vijf minuten installatieproces van het paneel. Vul gewoon de informatie hieronder in en u bent klaar om nieuwste community paneel te gebruiken.</p>
        <h2>Benodigde informatie</h2>
        <p>De volgende informatie invoeren. Geen zorgen, deze gegevens kunnen in een later stadium worden gewijzigd.</p>
        <form id="setup" method="post" novalidate="novalidate">
            <table class="form-table">
                <tbody><tr>
                    <th scope="row"><label for="company">Bedrijfsnaam</label></th>
                    <td><input name="company" type="text" id="company" size="25" value="" required></td>
                </tr>
                <tr>
                    <th scope="row"><label for="adminuser">Gebruikersnaam</label></th>
                    <td>
                    <input name="adminuser" type="text" id="adminuser" size="25" value="">
                        <p>Gebruikersnamen mogen alleen alfanumerieke karakters, spaties, underscores, koppeltekens, punten en het @ symbool bevatten.</p>
                                </td>
                </tr>
                        <tr class="form-field form-required user-pass1-wrap">
                    <th scope="row">
                        <label for="adminpass">
                            Wachtwoord                </label>
                    </th>
                    <td>
                        <div class="password">
                                                <input type="text" name="adminpass" id="adminpass" autocomplete="off" data-reveal="1" value="XlX6WZB@Fg7pe!JV47" required>
                        </div>
                        <p><span class="description important">
                        <strong>Belangrijk:</strong>
                                        Dit wachtwoord is nodig om in te loggen. Zorg ervoor dat u het bewaard op een geheime locatie.</span></p>
                    </td>
                </tr>
                <tr>
                    <th scope="row"><label for="adminemail">Uw e-mailadres</label></th>
                    <td><input name="adminemail" type="adminemail" id="adminemail" size="25" value="" required>
                    <p>Controleer uw e-mailadres voordat u verder gaat.</p></td>
                </tr>
                <tr>
                <tr>
                    <th scope="row"><label for="companylogo">Bedrijfslogo</label></th>
                    <td><input name="companylogo" type="text" id="companylogo" size="25" value="" required>
                    <p>Zorg voor een werkende link die transparant is.</p></td>
                </tr>
                </tr>
            </tbody></table>
            <p class="step"><input type="submit" name="Submit" id="submit" class="button button-large" value="Het paneel installeren"></p>
        </form>
        </body>
    '
;
    }
else {
        $content = '
                <body class="wp-core-ui">
        <h1>Welcome</h1>
        <p>Welcome by the five minutes installationpreces for the panel. Just full in the information below and you are ready to use the neweest community panel.</p>
        <h2>Needed information</h2>
        <p>Full in the next information. Don'
."''".'t worry, those details can be changed in another stadium.</p>
        <form id="setup" method="post" novalidate="novalidate">
            <table class="form-table">
                <tbody><tr>
                    <th scope="row"><label for="company">Company name</label></th>
                    <td><input name="company" type="text" id="company" size="25" value="" required></td>
                </tr>
                <tr>
                    <th scope="row"><label for="adminuser">Username</label></th>
                    <td>
                    <input name="adminuser" type="text" id="adminuser" size="25" value="">
                        <p>
Usernames can only contain alphanumeric characters, spaces, underscores, hyphens, periods and the @ symbol.</p>
                                </td>
                </tr>
                        <tr class="form-field form-required user-pass1-wrap">
                    <th scope="row">
                        <label for="adminpass">
                            Password                </label>
                    </th>
                    <td>
                        <div class="password">
                                                <input type="text" name="adminpass" id="adminpass" autocomplete="off" data-reveal="1" value="XlX6WZB@Fg7pe!JV47" required>
                        </div>
                        <p><span class="description important">
                        <strong>Important:</strong>
This password is required to log in. Make sure you are safe it in a secret location.</span></p>
                    </td>
                </tr>
                <tr>
                    <th scope="row"><label for="adminemail">Your email</label></th>
                    <td><input name="adminemail" type="adminemail" id="adminemail" size="25" value="" required>
                    <p>
Check your email before continuing.</p></td>
                </tr>
                <tr>
                <tr>
                    <th scope="row"><label for="companylogo">Company logo</label></th>
                    <td><input name="companylogo" type="text" id="companylogo" size="25" value="" required>
                    <p>
Provide a working link that is transparent.</p></td>
                </tr>
                </tr>
            </tbody></table>
            <p class="step"><input type="submit" name="Submit" id="submit" class="button button-large" value="Install the panel"></p>
        </form>
        </body>
        '
;
    }
}
elseif ($_GET['stap'] == 1) {
    if ($_CONFIG['language'] == "nl") {
        $content = '
        <body class="wp-core-ui">
            <h1>Gelukt!</h1>
            <p>Het paneel is geïnstalleerd. Had je meer stappen verwacht? Sorry voor u teleur te stellen.</p>
            <form method="post">
            <table class="form-table">
            <tbody>
            <tr>
                <th scope="row"><label for="user">Gebruikersnaam</label></th>
                <td>'
.$_CONFIG["adminuser"].'</td>
            </tr>
            <tr>
                <th scope="row"><label for="user">Wachtwoord</label></th>
                <td><i>Je gekozen wachtwoord.</i></td>
            </tr>
            </tbody>
            </table>
            <input type="hidden" name="installation" value="1">
            <p class="step"><input type="submit" name="login" id="submit" class="button button-large" value="Inloggen"></p>
            </form>
            </body>
        '
;
    }
else {
        $content = '
                    <body class="wp-core-ui">
            <h1>Succes!</h1>
            <p>The panel has been installed. Were you expecting more steps? Sorry to dissapoint you.</p>
            <form method="post">
            <table class="form-table">
            <tbody>
            <tr>
                <th scope="row"><label for="user">Username</label></th>
                <td>'
.$_CONFIG["adminuser"].'</td>
            </tr>
            <tr>
                <th scope="row"><label for="user">Password</label></th>
                <td><i>Your chosen password.</i></td>
            </tr>
            </tbody>
            </table>
            <input type="hidden" name="installation" value="1">
            <p class="step"><input type="submit" name="login" id="submit" class="button button-large" value="Log in"></p>
            </form>
            </body>
        '
;
    }
}

    if (isset($_POST['language'])) {
        header('Location: ?stap=1');
    }

    if (empty($_POST['language'])) {
        $_POST['language'] = $_CONFIG['language'];
    }

    if (empty($_POST['hostname'])) {
        $_POST['hostname'] = $_CONFIG['hostname'];
    }

    if (empty($_POST['user'])) {
        $_POST['user'] = $_CONFIG['username'];
    }

    if (empty($_POST['pass'])) {
        $_POST['pass'] = $_CONFIG['password'];
    }

    if (empty($_POST['database'])) {
        $_POST['database'] = $_CONFIG['database'];
    }

    if (empty($_POST['prefix'])) {
        $_POST['prefix'] = $_CONFIG['prefix'];
    }

    if (empty($_POST['configuration'])) {
        $_POST['configuration'] = $_CONFIG['configuration'];
    }

    if (empty($_POST['company'])) {
        $_POST['company'] = $_CONFIG['company'];
    }

    if (empty($_POST['companylogo'])) {
        $_POST['companylogo'] = $_CONFIG['companylogo'];
    }

    if (empty($_POST['adminuser'])) {
        $_POST['adminuser'] = $_CONFIG['adminuser'];
    }

    if (empty($_POST['adminpass'])) {
        $_POST['adminpass'] = $_CONFIG['adminpass'];
    }

    if (empty($_POST['adminemail'])) {
        $_POST['adminemail'] = $_CONFIG['adminemail'];
    }

    if (empty($_POST['installation'])) {
        $_POST['installation'] = $_CONFIG['installation'];
    }

    $array = array(
         'language' => $_POST['language'],
        'hostname' => $_POST['hostname'],
        'username' => $_POST['user'],
        'password' => $_POST['pass'],
        'database' => $_POST['database'],
        'prefix'   => $_POST['prefix'],
        'company'  => $_POST['company'],
        'companylogo' => $_POST['companylogo'],
        'adminuser' => $_POST['adminuser'],
        'adminpass' => $_POST['adminpass'],
        'adminemail' => $_POST['adminemail'],
        'configuration' => $_POST['configuration'],
        'installation' => $_POST['installation'],
         '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);
           header('?stap=');
        }
    }


if (isset($_POST['login'])) {
    $prefix = $mysqli->real_escape_string($_CONFIG['prefix']);
    $table = $prefix.'users';
    $adminuser = $mysqli->real_escape_string($_CONFIG['adminuser']);
    $adminpass = $mysqli->real_escape_string(password_hash($_CONFIG['adminpass'], PASSWORD_DEFAULT));
    $adminemail = $mysqli->real_escape_string($_CONFIG['adminemail']);
    $sql = "INSERT INTO `$table` (`username`, `password`, `email`) VALUES ('$adminuser', '$adminpass', '$adminemail')";
    if ($mysqli->query($sql) === TRUE) {
        header('Location: /');
        exit();
    }
else {
            echo "Error: " . $sql . "<br>" . $mysqli->error;
    }

    header('Location: /');
    exit();
}

if (isset($_POST['Submit'])) {
        header('Location: ?stap=1');
    }

?>

<!DOCTYPE html>
<html>
    <head>
        <meta name="viewport" content="width=device-width">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Paneel - <?php if ($_CONFIG['language'] == "nl") { echo 'Installatie';} else { echo 'Installation';} ?></title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
        <link rel='stylesheet' id='buttons-css'  href='paneel/assets/css/installation.button.css' type='text/css' media='all'>
        <link rel='stylesheet' id='install-css'  href='paneel/assets/css/installation.css' type='text/css' media='all'>
    </head>
    <?php
    echo $content;
    ?>

</html>


bij fclose($fp); daaronder heb ik  header('?stap='); gezet anders werd het ook wit scherm..?
 
- Ariën  -
Beheerder

- Ariën -

03/01/2017 14:40:27
Quote Anchor link
Waarom pas je die safefilerewrite() aan met een redirect? Dat lijkt mij niet het juiste onderdeel van deze functie.

Kan je je code even aanpassen naar relevante code i.p.v. +/- 300 regels? En kan je dan ook vertellen wat je aangepast hebt, en wat er fout gaat?
 
- Rob -

- Rob -

03/01/2017 14:42:26
Quote Anchor link
Quote:
Waarom pas je die safefilerewrite() aan met een redirect? Dat lijkt mij niet het juiste onderdeel van deze functie.

anders werkt het niet, dan wordt het wit scherm..

Toevoeging op 03/01/2017 14:43:36:

Verder heb ik niks daaraan aangepast

Toevoeging op 03/01/2017 14:44:07:

en wat er fout gaat heb ik geen idee, hij geeft geen errors.

Toevoeging op 03/01/2017 14:52:34:

O SORRY!! O god ik was vergeten dat ik error_reporting(0) had -_- sorry!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.