Hallo allemaal,

Ik ben al een tijdje opzoek naar een goed werkent script.
Ik heb een aantal forms zoals :

Aantal producten: [_____1____]
Aantal verzendingen: [_____2____]
Link : [_test.com_]
Aan / Uit : [____aan___]

Ik zoek een oplossing om de variables in een .ini bestand te zetten in een bepaalde map op de webserver ( of dezelfde map )

config.ini

producten=1
verzendingen=2
link=test.com
active=aan

Hebben jullie een voorbeeld?

Alvast super bedankt!

Joey
Michael - op 14/02/2014 11:39:33

file_put_contents
of het een .txt, .ini of .onzin is, maakt niks uit.


Bedankt voor de snelle reactie!

Sorry, ik ben aardig nieuw op dit vlak.
Heb je misschien een voorbeeld?

Bedankt!
Zoiets?

<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
	$file = 'config.ini';
    
    if(!isset($_POST['active'])) { $_POST['active'] = 'uit'; }
    
    $data = '';
    foreach($_POST AS $name=>$value) {
        $data .= $name . '=' . $value .PHP_EOL;
    }

    file_put_contents($file, $data, LOCK_EX);
    if(file_exists($file)) {
        echo 'Saved in <a href="' . $file . '">' . $file . '</a>';
    } else {
        echo 'Failed';
    }
}
?>
<form method="POST">

<label>Aantal producten</label>
<input type="number" name="producten" value="1" /><br />

<label>Aantal verzendingen</label>
<input type="number" name="verzendingen" value="1" /><br />

<label>Link</label>
<input type="text" name="link" value="http://www.phphulp.nl" /><br />

<label>Active</label>
<input type="checkbox" name="active" value="aan" checked="checked" /><br />

<button>Save</button>
</form>
@Aar: Bedankt voor de tip. Ik ken deze functie nog niet. Ik heb een aantal voorbeelden bekeken, maar kan nog niet bedenken waarom dit een goede oplossing voor TS zou zijn. Je kunt een string parsen, niet saven naar een ini bestand. Wel kun je een php.ini inladen, iets 'overschrijven' wat in werkelijkheid niet wordt overschreven?
Als je een voorbeeld hebt hoe je TS' vraag zou oplossen d.m.v. parse_ini_string ben ik erg benieuwd.

Wel is het handig een bestand uit te lezen (parse_ini_file) en dit heb ik toegepast in een nieuw voorbeeld

<?php
$file = 'config.ini';
	
if($_SERVER['REQUEST_METHOD'] == 'POST') {

    $_POST['active'] = (isset($_POST['active']) ? 'aan' : 'uit');
    
    $data = '';
    foreach($_POST AS $name=>$value) {
        $data .= $name . '=' . $value .PHP_EOL;
    }

    file_put_contents($file, $data, LOCK_EX);
    if(file_exists($file)) {
        echo 'Saved in <a href="' . $file . '">' . $file . '</a>';
    } else {
        echo 'Failed';
    }
}

if(file_exists($file)) {
	$ini = parse_ini_file($file);
}
?>
<form method="POST">

<label>Aantal producten</label>
<input type="number" name="producten" value="<?php echo (isset($ini['producten']) ? $ini['producten'] : '1'); ?>" /><br />

<label>Aantal verzendingen</label>
<input type="number" name="verzendingen" value="<?php echo (isset($ini['verzendingen']) ? $ini['verzendingen'] : '1'); ?>" /><br />

<label>Link</label>
<input type="text" name="link" value="<?php echo (isset($ini['link']) ? $ini['link'] : 'http://'); ?>" /><br />

<label>Active</label>
<input type="checkbox" name="active" <?php echo (isset($ini['active']) && $ini['active'] == 'aan' ? 'checked="checked"' : ''); ?> /><br />

<button>Save</button>
</form>
Ik ben zelf ook niet zo bekend met die parse_ini functie, en dacht zelf het idee te hebben dat dit volgens zijn naam wel een flink eind in de goede richting is.
@Joey, is het gelukt?
Hey sorry voor deze late reactie!

Ja het is zeker gelukt!

Een mooie CSS erop gegooid en nu kan ik mijn gebruikers laten communiceren met mijn private server die .ini bestanden leest.

Super bedankt allemaal!
Oké top! :)

Reageren