Ahojte, potrebujem poradiť. Mám .TXT súbor, kde bude buď 1, alebo 0, otvárať sa bude cez fopen s parametrom w, teda sa zmaže to, čo tam je a zapíše 0, resp. 1.
Chcem urobiť toto:
Ak súbor obsahuje 0, chcem aby sa mi vykreslilo tlačidlo, ktorým súbor otvorím a zapíšem 1.
Ak súbor obsahuje 1, chcem aby sa mi vykreslilo tlačidlo, ktorým súbor otvorím a zapíšem 0.
Budem s tým ovládať relé cez mikroprocesor. Potrebujem niečo ako strlen, ktorý prečíta čo je v súbore bez toho, aby ho otváral cez fopen, lebo by ho zmazal. Skúste mi poradiť, ako by to bolo najvhodnejšie. Musí to byť riešené takto, používam client mód pre mikroprocesor, ktorý vie len posielať requesty HTTP, neprijíma ich, nemám ako naň nasmerovať script keď to nie je server.
Mikropočítač si stiahne .txt súbor a prečíta, že obsahuje 1, tak prepne relé a tento súbor si stiahne raz za 5 sekúnd. Ak zistí, že bude 0 v .txt súbore, odpojí relé od prúdu a odpojí vetvu. Dúfam, že som to vysvetlil dosť dobre. Poprosím v procedurálnom kóde, prípadne ak je to možné tak by to mohlo byť cez AJAX, ale s tým nemám skúsenosti.
Súbor som nazval readme.txt a nachádza sa v root priečinku. Ďakujem vám veľmi pekne za pomoc, veľmi by ste mi uľahčili prácu. Pre ostatné relé si už urobím sám, potrebujem iba vzor.
Fórum › PHP
.TXT súbor v PHP s fopen (w)
Ide to, urobil som to cez file_get_contents. Avšak po kliknutí na tlačidlo sa PHP časť vykoná, ale bohužiaľ sa mi tlačidlo neprepne do druhej polohy (nezobrazí sa tlačidlo opačné, na opačný stav) ale až po opakovanom refreshi stránky. Vie mi niekto pomôcť?
<?php
$homepage = file_get_contents('readme.txt');
if ($homepage == 1){
?>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
<input type="submit" name="submit" value="Stav 0">
</form> <?php
if (isset($_POST['submit'])){
$subor = fopen('readme.txt', 'w');
fwrite($subor, 0);
fclose($subor);
}
}
else{
?> <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
<input type="submit" name="submit" value="Stav 1">
</form> <?php
if (isset($_POST['submit'])){
$subor = fopen('readme.txt', 'w');
fwrite($subor, 1);
fclose($subor);
}
}
?>
Používam takýto kód.
- urcite nedavej nicemu v html name/id=submit, protoze existuje js funkce formular.submit() a pak existuje soucasne html element jako js formular.submit. Tak pak funguje bud funkce nebo ten element, ted ti nepovim, ktere z toho :)
- tez se snaz vyhnout pojmenovavani submit tlacitka, normalne tam pridej input type=hidden nebo pouzij GET
<form action="...?nastav=1" method="post"> <input type="hidden" value="1"><input type="submit" value="Stav 1"></form> // POST
<form action="...?nastav=1" method="get"> <input type="submit" value="Stav 1"></form> // GET
<a href="...?nastav=1"> Stav 1</a> // GET
// $_GET['nastav']
- nemichej php a html (php echo). Pokud chces neco vypisovat, vypisuj to az pod php kodem.
- zkus pouzit var_dump, abys vedel, zda je tam presne to, co tam ma byt, vcetne delky
var_dump($_POST);
var_dump($homepage);
- pokud to pouzivas na vic pc, tak se zkus podivat v manualu php na priklady pouziti flock. Jiny pc ti muze totiz prepsat prave otevreny soubor, protoze se spusti dva php temer sucasne a vysledkem je prazdny soubor.
Jinak se mi to jevi teda v zasade dobre, ze by to mohlo fungovat
ups, jo, u toho POST to melo byt bez toho form action=... ?nastav=1. Tam je mozne nastavit ruzne mody u formu a ne vzdy to bere GET i POST.
A jeste tam melo byt u inputu 'name'.
<form action="..." method="post"> <input name=nastav type="hidden" value="1"><input type="submit" value="Stav 1"></form> // POST
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Syntax pre txt subor — založil Mato
TXT súbor ako databáza — založil Redix
Registrace/login php s ulozenim do .txt — založil Predict
PHP správné napojení 2 kodu TXT souboru — založil arcam
Registrace/login php s ulozenim do file.txt — založil Predict
Moderátoři diskuze