Wpis z mikrobloga

#programowanie #javascript
Powiedzcie mi, bo jestem początkujący, chciałbym by akcja użytkownika, modyfikowała plik na serwerze.
Chodzi mi o to, by inny program uruchomiony na serwerze mógł z tego pliku odczytywać.
Przykładowo mam stany urządzeń w tym pliku zapisane jako 010011100. Ktoś z zewnątrz che któryś z bitów zmodyfikować, by włączyć lub wyłączyć urządzenie podpięte do serwera.
Czy jest jakiś sposób by łatwo taką funkcjonalność zrealizować?
  • 31
@SirKir: Nic mi to nie mówi. Chodzi mi o to, że mam np. lampkę sterowaną przez arduino. Na moim kompie jest program który obsługuje komunikację z Arduino, ale o tym czy właczyć czy wyłączyć lampkę (wysłać do arduino polecenie), decyduje na podstawie zawartości pliku. Np. znaku "0" albo "1" albo "ON"/"OFF".
Chodzi mi o to, że użytkownik klikając przycisk "ON" Albo "OFF" powoduje modyfikację pliku na serwerze. Potem zewnętrzny program to
@Syntax: To będzie ciężki problem :) Znasz jakikolwiek język programowania?
Musisz postawić server a na nim stronę WWW (tam będą przełączniki), kliknięcie w przełącznik powinno spowodować wywołanie takiego kodu: (pseudo kod)
twoja strona ma link: mojastrona.wypok.pl/IdUrządzenia=1&Status=1

File.Open(sciezkadopliku)
AktualneUstawienie = File.ReadLine();
AktualneUstawienie[IdUrządzenia] = Status// np. 1 lub 0
FIle.Write(AktualneUstawienie)
File.Close;

Nie za bardzo wiem jak to uprościć...
@SirKir: Umiem programować, nie o to chodzi. Pytam jak to zrobić w javascript. Chodzi o to że wiem jak odczytać plik z serwera w realtime. Ale nie wiem jak zapisać dane do pliku na serwerze w wyniku akcji klienta...
Napisałem to:
http://78.11.190.161/
Chcę teraz np. włączyć wentylator albo nawilżacz powietrza. Potrzebuję od strony klienta, zmodyfikować plik na serwerze, by zmienić stany podpiętych do niego urządzeń.
Jak najbardziej mów do mnie w
@Syntax: Potrzebujesz do tego języka który działa po stronie serwera a nie przeglądarki. Np. PHP, Java czy jak wspomniałem NodeJs. Z tego co widzę używasz jakiegos HFS, nawet nie wiem co to za serwer, ale nie wygląda jak by potrafił to zrobić.

Jeżeli twój serwer obsługuje PHP to PHP będzie najprostsze. Zrób plik test.php a w środku

php
phpinfo();
?
@Syntax: Niestety, nie działa. Twój serwer zamiast pokazać informacje o PHP, pozawala ściągnać ten plik. Musisz zainstlować coś takiego jak XAMP. Jest to serwer APACHE z PHP i bazą danych MySQL. Wtedy będziesz mógł zrobić całą tą magie którą widziałem w skrypt.js ( ͡° ͜ʖ ͡°) bez tego sie nie uda.
@PsychoX: Pewnie! Bardzo Ci dziękuję, ale nie dziś. Odezwę się niedługo. Po prostu chciałem tylko zmodyfikować plik na serwerze, zamiast bawić się z bazami danych. Chyba że to tylko tak brzmi...
@PsychoX: Jest iluś użytkowników (tak naprawdę to będę ja jeden), chcę na stronce kliknąć np. przycisk i sprawić by zmieniła się zawartość pliku na serwerze. Czy to jest trudne naprawdę? ;)
@Syntax: Niezbyt dobrą, bo odsłaniasz prywatny serwer z Windowsem ( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)

A taka dużo lepsza droga:
Darmowy hosting z PHP ("pierwszy lepszy"), normalnie to co jest teraz (html/js/css).
W PHP napisać dwa skrypty:
1) do przesyłania danych z twojego komputera, (a może nawet arduino, jeśli dać mu internet i napisać coś, żeby samo wysyłało)),
2) do obsługi przycisku
@PsychoX: Ale chciałem mieć ładne wykresy. Użyłem chart.js nie chcę się przerzucać na PHP. Poza tym, normalnie piszę w C++ czy javie, więc nie chcę się uczyć php.
@Syntax: Nie musisz - ani porzucać, ani się uczyć. JS to frontend, PHP to backend.

Co do najprostszego:

php
if(isset($_POST["stan"]) && isset($_POST["pass"]) {
if($_POST["pass"] == "jakbyco:)") {
file_put_contents("nazwapliku.txt", $_POST["stan"]);
}
}
?
I w JavaScript/HTML robić zapytanie/foremkę POST z stanem (zawartość pliku, np. te "01010111") i pass (takie hasło jak już wystawiasz serwer - oczywiście to można wywalić).