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.
Een waarde uit een formulier wordt na een POST opgeslagen met de name als index. Dus $_POST['input1'] etc...

Kijk om eens naar:[php]file_put_contents[/php].
Ariën

Dit had ik dus al in een eerder post al klaar.

Ik bedoel het file_put_contents voorbeeld.


 <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>

?> 
Je doet niks met de inhoud uit je formulier. Als je $_POST[] waardes toevoegt aan je file_put_contents in je vorige post, dan moet het werken.

Jij doet dit, wat fout is:
$text = $regels;
$regels komt uit het niets, en bevat geen enkele waarde uit je formulier.
Met het script hieronder gebeurt er wel iets in de config.txt alleen geen wijzigingen (volgens notepadqq)

Maar ik zie de bomen door het bos niet meer.


 <?php
$filename = "config.txt";
$file = file($filename);
//$current = file_get_contents($file);
if($_SERVER['REQUEST_METHOD']=="POST")
{
file_put_contents($filename,$post,$file[0],['input1'],$file[1],['input2']);
}
else
{
?>
<form action="" method="post">
<div>
<label>1e naam</label>
<input type="text" name="input1" size="5" value="<?php echo substr($file [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($file [1], 13, 2);?>">
    <label>de standaard waarde is 65</label>
</div>
<input type="submit" value="Opslaan" > <br>
</form>
<?php
}
?> 
Andreas Krale op 25/01/2016 12:39:35

Met het script hieronder gebeurt er wel iets in de config.txt alleen geen wijzigingen (volgens notepadqq)

Maar ik zie de bomen door het bos niet meer.


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




Misschien eens de basis van PHP gaan leren?
Kijk ook vooral eens op php.net naar de functies die je gebruikt..
Zoals ik al zei: [php]file_put_contents[/php]
Hier tref ik twee verplichte parameters aan, voor de bestandsnaam en de data die je wilt invoegen.

Jij gebruikt er maar liefst 6 in een andere volgorde.

Maar de basis van PHP leren is overigens zeker geen slecht idee dan dat je steeds gaat gokken met wat variabelen en functies.

Op je maar even een stukje op weg te helpen:
<?php
$inhoud = $_POST['input1'].PHP_EOL.$_POST['input2'];
file_put_contents($filename,$inhoud);
?>

De rest mag je zelf proberen uit te zoeken, want het is natuurlijk ook fijn om een melding te te tonen als iets verstuurd is (of je formulier vanzelf te resfreshen met de juiste inhoud). Ook moet je het configuratiebestand op de juiste manier weer opbouwen.
Eerst even voor de duidelijkheid ik ben druk lerend, maar als je steeds andere en tegenstrijdige methodes tegen komt kijk alleen maar op de 1e pagina van deze threat.

Ik ben erg blij met de hulp hier probeer ook alles te begrijpen maar dit gedeelte krijg ik niet onder de knie.
zoals nu ook weer met onderstaand script uitlezen gaat goed wijzigen gaat goed opslaan gaat nu goed behalve dat de rest van de regels weg is.

Voor het opslaan:
int timer1 = 10;
int timer2 = 20;
int timer3 = 30;
int timer4 = 40;
int timer5 = 50;

1e regel gewijzigd in 30 en na opslaan:
30
20

Dus kan mijn microcontroller er niets mee en de website ook niet meer.

Nogmaals ik ben lerende en doe mijn best.

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

Ik neem aan dat er maar steeds twee waardes veranderd hoeven te worden?
Dan kan je toch de rest van het bestand proberen op te bouwen met de niet aangepaste waardes?
Ariën

Ik heb nu maar steeds twee waardes het worden er 12 tot 15 daar ben ik nog niet over uit.

Bedoel je zoiets 1e regel vanaf 1 tot 12 karakters en dan de ['input1'] zodat ik dit weer krijg int timer1 = 10;


<?php echo substr($file [0], 0, 12);?>
Die substr staat er los van. Tenzij je de hele regel of meer dan het getal wilt zien in het tekstveld.

Kort samengevat overschrijf je nu je configuratie-bestand met onvoldoende gegevens.
Dus moet je die ontbrekende gegevens toevoegen aan je variabele $inhoud.

Reageren