Skocz do zawartości

Jak odczytać zawartość URL w ESP8266 pracującym w roli serwera?


RFM

Pomocna odpowiedź

No i jaki masz problem z zastosowaniem tego co widzisz?

To nie PHP, nie wiem czy zauważyłeś, a server.arg(nazwa) działa dokładnie tak jak potrzebujesz (wyciąga wartość argumentu z query).

Resztę sobie znajdziesz w dokumentacji.

 

 

 

Link do komentarza
Share on other sites

3 godziny temu, ethanak napisał:

No i jaki masz problem z zastosowaniem tego co widzisz?

Dwa posty zostały połączone w jeden i wyszło, że w pytaniu daję odpowiedź.

Problem prawie rozwiązany, zastanawiam się jak uniezależnić się od kolejności argumentów. W PHP banał $_GET["nazwa argumentu"], tu muszę coś wymyślić.

 

Chyba pętla rozwiąże problem

  for (byte a = 0; a < webServer.args(), a++) {
    if ( webServer.argName(a) == "orno" ) if ( webServer.arg(a) == "on" ) fl_OrnoOn = true; else fl_OrnoOn = false;
    if ( webServer.argName(a) == "thing" ) if ( webServer.arg(a) == "on" ) fl_ThingOn = true; else fl_ThingOn = false;
    }

 

Link do komentarza
Share on other sites

7 godzin temu, RFM napisał:

Dwa posty zostały połączone w jeden i wyszło, że w pytaniu daję odpowiedź.

Dałeś odpowiedź z której nie potrafisz skorzystać.
 

fl_OrnoOn = webserver.arg("orno") == "on";

Przy okazji jakieś podstawy C/C++ warto by było odświeżyć...

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

4 godziny temu, ethanak napisał:


 


fl_OrnoOn = webserver.arg("orno") == "on";

Przy okazji jakieś podstawy C/C++ warto by było odświeżyć...

Wskaż mi gdzie pokazałem wyżej wskazany fragment kodu?

 

  • Nie zgadzam się! 1
Link do komentarza
Share on other sites

Nigdzie - to była odpowiedź której potrzebowałeś. Szkoda że zamiast z miejsca doszukiwać się spisków i czyhania na Twoją osobę nie zadasz sobie trudu, aby zrozumieć co się do Ciebie pisze...

Najlepiej zresztą byłoby zajrzeć na początku do jakiejś dokumentacji czy przykładów, ale to przecież dla cieniasów jest, prawda?

Link do komentarza
Share on other sites

13 minut temu, ethanak napisał:

Nigdzie - to była odpowiedź której potrzebowałeś

Nie do końca. Gdy <> "on" to flaga przyjmie false a ma to nastąpić tylko gdy =="off", ponadto kod ma być zrozumiały dla początkujących dlatego nie używam

if( x = a == b )

i innych skrótów za to nadużywam nawiasów.

 

Nie chce zakładać nowego tematu, nie znalazłem możliwości odczytu IP clienta www a muszę odróżnić czy połączenie jest lokalne czy nie. Jedyne co może pomóc to hostHeader() ale nie jest to dokładnie to co chciałbym zrobić.

 

16 minut temu, ethanak napisał:

Najlepiej zresztą byłoby zajrzeć na początku do jakiejś dokumentacji czy przykładów, ale to przecież dla cieniasów jest, prawda?

Dla leni. Robię tak jak inni, najpierw pytam potem szukam a nie tak jak powinno być, szukam, nie znalazłem, pytam. Po prostu idę z duchem czasu, próbuję się dostosowac aby nie wyróżniać się z tłumu.

Link do komentarza
Share on other sites

1 godzinę temu, RFM napisał:

ponadto kod ma być zrozumiały dla początkujących

Czyli trzy linijki kodu trzeba za Ciebie napisać bo nie potrafisz? No to coś w stylu:
 

String flag = webserver.arg("orno");
if (flag == "on")
	fl_OrnoOn = true;
else if (flag == "off")
	fl_OrnoOn = false;

Na pewno bardziej zrozumiałe niż jakieś porąbane pętle (mam nadzieję że go rozumiesz).

1 godzinę temu, RFM napisał:

nie znalazłem możliwości odczytu IP clienta www

Bo nie szukałeś albo szukałeś hgw gdzie.

Masz metodę client(), prawda? Co zwraca? A czy w tym zwracanym jest może takie coś jak remoteIP()?

1 godzinę temu, RFM napisał:

Robię tak jak inni, najpierw pytam potem szukam

No więc zdecyduj się - szukasz czy pytasz?

1 godzinę temu, RFM napisał:

próbuję się dostosowac aby nie wyróżniać się z tłumu.

Kolego es2 - żebyś nie wiem ile nicków zmieniał i ile razy próbował, zawsze będziesz się wyróżniał. Niestety - na minus. Na razie wyróżniłeś się tym, że Ci się nie chciało zerknąć do dokumentacji czy źródeł tylko zrobiłeś z siebie pośmiewisko i polazłeś na forum z kretyńskim pytaniem. Powyróżniaj się jeszcze, to jedynymi osobami, które będą Ci odpowiadać będą te, które nie wiedzą o zakazie karmienia.

 

Link do komentarza
Share on other sites

5 minut temu, ethanak napisał:

Czyli trzy linijki kodu trzeba za Ciebie napisać bo nie potrafisz? No to coś w stylu:

Już wczoraj to zrobiłem.

 

5 minut temu, ethanak napisał:

Na pewno bardziej zrozumiałe niż jakieś porąbane pętle (mam nadzieję że go rozumiesz).

A jak bez pętli mam sprawdzić wszystkie argumenty? 

 

7 minut temu, ethanak napisał:

Masz metodę client(), prawda? Co zwraca?

Jeszcze nie sprawdzałem.

Link do komentarza
Share on other sites

3 godziny temu, RFM napisał:

A jak bez pętli mam sprawdzić wszystkie argumenty? 

A po co sprawdzasz wszystkie argumenty? W PHP też przelatujesz sobie całą tablicę $_GET czy sprawdzasz to co jest interesujące?

Jaka ma być różnica w wywołaniu:

http://gdzieśtam/cośtam?orno=on

a

http://gdzieśtam/cośtam?orno=on&pupa=blada

 

Link do komentarza
Share on other sites

1 godzinę temu, ethanak napisał:

W PHP też przelatujesz sobie całą tablicę $_GET czy sprawdzasz to co jest interesujące?

Interesujące mnie, przeszukiwanie robi Apahe.

 

1 godzinę temu, ethanak napisał:

Jaka ma być różnica w wywołaniu:

No właśnie jest. Nie ma gwarancji, ze kolejna zmiana softu nie zmieni tej kolejności a bardziej to, że jakiś argument zostanie zlikwidowany. nie mam do przeszukania setek argumentów co najwyzej 10.

 

Dochodzi też opcja wywołania podstrony przez jakąś aplikację np na RPi. Po co mam podawać kilka argumentów jak chcę zmienić jeden? Ponadto, aby zmienić trzeci musiałbym wcześniej odczytać dwa. Z natury jestem leniwy i wole dać jedną pętlę, która rozwiązuje moje problemy.

Link do komentarza
Share on other sites

36 minut temu, RFM napisał:

przeszukiwanie robi Apahe.

 

A w tym przypadku webserver. Nie wiem, czy wiesz, ale istnieją inne serwery HTTP oprócz Apache (przez ch), np. Nginx czy ESP8266WebSerwer które zajmują się parsowaniem query string.

 

39 minut temu, RFM napisał:

No właśnie jest. Nie ma gwarancji, ze kolejna zmiana softu nie zmieni tej kolejności

Polegasz na kolejności argumentów w query stringu? W PHP też???

40 minut temu, RFM napisał:

Dochodzi też opcja wywołania podstrony przez jakąś aplikację np na RPi. Po co mam podawać kilka argumentów jak chcę zmienić jeden? Ponadto, aby zmienić trzeci musiałbym wcześniej odczytać dwa

To jakieś brednie. W ogóle wiesz jak działa serwer czy zatrzymałeś się na wyświetlaczu do STM-a?

Jeśli chcesz zmienić jeden parametr to podajesz jeden. Nie bardzo rozumiem po co tu jakieś pętle i łażenie po wszystkich argumentach QS.

Jakie dwa masz odczytać?

Jaka jest różnica między:
 

if (isset($_GET['orno'])) {
	$orno = $_GET['orno'];
	if ($orno == 'on') $fl_OrnoOn = true;
	else if ($orno == 'off') $fl_OrnoOn = false;
}

a
 

String flag = webserver.arg("orno");
if (flag == "on") fl_OrnoOn = true;
else if (flag == "off") fl_OrnoOn = false;

i gdzie w tym drugim przypadku masz jakieś pętle których nie masz w pierwszym.

 

  • Pomogłeś! 1
Link do komentarza
Share on other sites

23 godziny temu, ethanak napisał:

i gdzie w tym drugim przypadku masz jakieś pętle których nie masz w pierwszym.

Umknął mi fakt, że argumentem arg() może być także string. Dzięki za wskazówkę.

  • Lubię! 2
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.