.TXT súbor v PHP s fopen (w) – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

.TXT súbor v PHP s fopen (w) – PHP – Fórum – Programujte.com.TXT súbor v PHP s fopen (w) – PHP – Fórum – Programujte.com

 

Martin
~ Anonymní uživatel
1602 příspěvků
24. 1. 2017   #1
-
0
-

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.

Nahlásit jako SPAM
IP: 84.16.53.–
Martin
~ Anonymní uživatel
1602 příspěvků
24. 1. 2017   #2
-
0
-

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

Nahlásit jako SPAM
IP: 84.16.53.–
Martin
~ Anonymní uživatel
1602 příspěvků
24. 1. 2017   #3
-
0
-

   

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

Nahlásit jako SPAM
IP: 84.16.53.–
peter
~ Anonymní uživatel
4014 příspěvků
24. 1. 2017   #4
-
0
-

- 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

 

Nahlásit jako SPAM
IP: 2001:718:2601:26c:18ae:6a...–
peter
~ Anonymní uživatel
4014 příspěvků
24. 1. 2017   #5
-
0
-

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
Nahlásit jako SPAM
IP: 2001:718:2601:26c:18ae:6a...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 59 hostů

Podobná vlákna

Syntax pre txt subor — založil Mato

TXT súbor ako databáza — založil Redix

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý