Ik ben met een "input" bezig om de waarde uit een regel te lezen en dan te wijzigen.
Krijg wel netjes het label te zien en het textvak maar niet de waarde.
Zie momenteel de fout niet.

<div>
<label>naam</label>
<input type="text" $regels = file('config.txt'); substr($regels[0], 13, 2);></input>
</div>

Als ik het van elkaar los haal.

$regels = file('config.txt');
echo substr($regels[0], 13, 2);

Dan krijg ik wel de waarde te zien.

Graag jullie hulp.
Zou je de titel van het topic graag willen verduidelijken?

Alvast bedankt!
Serieus? Zie je de fout echt niet? Zucht.

<?php
$regels = file('config.txt');
?>
<div>
<label>naam</label>
<input type="text" value="<?php echo substr($regels[0], 13, 2);?>">
</div>


Uiteraard moet je nog wel even rekening houden met escaping, zie htmlspecialchars().
Oke ik heb het werkend leest nu netjes de waarde uit kan de waarde wijzigen maar bij het opslaan krijg ik de oude waarde weer en in de "config.txt" staat ook de oude waarde.
Het "config.txt" staat op CHMOD 777 dus dat kan niet het probleem zijn, maar wat is het dan wel.

	<form action="" method="post">
<?php
$regels = file('config.txt');
?>
<div>
<label>naam</label>
<input type="text" size="5" value="<?php echo substr($regels[0], 13, 2);?>">
</div> 
	<div>
<label>naam</label>
<input type="text" size="5" value="<?php echo substr($regels[1], 13, 2);?>">
</div> 
		<input type="submit" value="Opslaan" > <br> 

</form>


Graag een tip.
Je leest alleen nu je waarde uit, en schrijft nog niks weg. Kijk eens naar file_put_contents().
En om de gegevens na het posten uit een inputveld te kunnen halen moet ie wel een name hebben.
- Ariën - op 23/01/2016 15:45:56

Je leest alleen nu je waarde uit, en schrijft nog niks weg. Kijk eens naar file_put_contents().


Inderdaad met file_input_comtents() ben ik alweer een heel stuk verder.
Alleen maakt het script nu mijn config.txt leeg


<form action="" method="post">
<?php
$text = $regels;
$bestand = 'config.txt';
file_put_contents($bestand, $text);
?>
<div>
<label>naam</label>
<input type="text" size="5" value="<?php echo substr($regels[0], 13, 2);?>">
</div> 
<div>
<label>naam</label>
<input type="text" size="5" value="<?php echo substr($regels[1], 13, 2);?>">
</div> 
<input type="submit" value="Opslaan" > <br> 

</form>


Waarom maakt dit script het bestand leeg??????????
Omdat $regels leeg is, en hij dan direct met het uitvoeren begint bij het schrijven naar het bestand.
Je moet namelijk wel eerst netjes controleren of je formulier is verstuurd:


<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
	// voer hier alles uit zodra het formulier verstuurd is...
} else {
?>
<!-- Plaats hier je formulier -->
<?php
}
?>

Naar mijn mening heb ik het goed staan maar het gaat nog steeds mis.



<?php
if($_SERVER['REQUEST_METHOD']=="POST")
{
$text = $regels;
$bestand = 'config.txt';
file_put_contents($bestand, $text);
}
else 
{
?>
<form action="" method="post">
<div>
<label>1e naam</label>
<input type="text" size="5" value="<?php echo substr($regels[0], 13, 2);?>">
</div> 
<div>
<label>2e naam</label>
<input type="text" size="5" value="<?php echo substr($regels[1], 13, 2);?>">
</div> 
<input type="submit" value="Opslaan" > <br> 
</form>
<?php
}
?>


Of heb ik het nu niet goed begrepen????
Dit is al een stuk beter, echter gebruik je nergens de waarde uit je formulier. Geef je input-elementen eerst beiden een unieke naam met name="naam1"

Dan kan je ze oproepen met: $_POST['naam1'] en $_POST['naam2']
Dat met naam begrijp ik had ik ook al ergens gelezen maar helemaal vergeten.

Nu heb ik er dit van gemaakt, helaas geen input in config.txt gewoon weer leeg.


<?php
$regels = file('config.txt');
if($_SERVER['REQUEST_METHOD']=="POST")
{
file_put_contents($_POST['input1'],$_POST['input2']);
}
else 
{
?>
<form action="" method="post">
<div>
<label>1e naam</label>
<input type="text" name="input1" size="5" value="<?php echo substr($regels[0], 13, 2);?>">
	<label>de standaard waarde is 40</label>
</div> 
<div>
<label>2e naam</label>
<input type="text" name="input2" size="5" value="<?php echo substr($regels[1], 13, 2);?>">
	<label>de standaard waarde is 65</label>
</div> 
<input type="submit" value="Opslaan" > <br> 
</form>
<?php
}
?>



Ik waardeer het heel erg dat je mij op het goede pad brengt, alvast mijn grote dank.

Reageren