logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Wemos D1 mini ESP8266 PHP Mysql pusta zmienna w metodzie POST

pitron 02 Sty 2018 16:57 1926 7
REKLAMA
  • #1 16930736
    pitron
    Poziom 24  
    Posty: 811
    Pomógł: 51
    Ocena: 101
    Próbuję modyfikować dane w bazie na zewnętrznym serwerze Mysql.
    Baza i PHP działają prawidłowo przetestowane formularzem na serwerze i z dysku.
    Wemos również łączy się z bazą, ale za każdym razem modyfikuje rekord do wartości null.
    Coś jest nie tak z przekazywaniem zmiennej w metodzie POST.
    Serial.println pokazuje wartość zmiennej PostData.
    Prośba o pomoc ewentualnie przykład pełnego header z metodą POST i zmiennymi.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Biblioteki w projekcie:
    #include <ESP8266WiFi.h>
    #include <ESP8266Ping.h>
    #include <ESP8266HTTPClient.h>
    #include <SPI.h>
  • REKLAMA
  • #2 16930826
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1464
    1. otwierasz taką mało znaną stronę google.com, wpisujesz POST i klikasz w pierwszą lub drugą pozycję
    2. A my mamy zgadnąć wartości PostData i ew niuanse w PHP?


    Do uczulonych na słowo Arduino: czy nadal robicie sobie nadzieję na filtrowanie?
  • REKLAMA
  • #3 16931098
    pitron
    Poziom 24  
    Posty: 811
    Pomógł: 51
    Ocena: 101
    Nie o taką odpowiedź mi chodziło.
    Mój POST działa ale z formularza php lub html do testów zmienna przypisana na stałe typ string.
    Nie działa na arduino, są tematy ale mnóstwo ludzi w komentarzach ma podobne problemy i pozostają bez rozwiązania.
    Wydaje mi się że problemem jest poprawność header, ale jeżeli jesteś bardziej obcykany to wolałbym odpowiedź nie da się poszukaj innej metody albo przenieś kod na RPi.
  • #4 16931279
    gaskoin
    Poziom 38  
    Posty: 4159
    Pomógł: 436
    Ocena: 102
    A co wychodzi z Arduino? Dobrze jest ustawiona zmienna PostData? Debugowałeś ten program? Pokaż jak Ci ustawia headery (wireshark albo debug).

    Ten request jest wysyłany do tej strony na PHP? Wrzuć najlepiej cały kod z arduino i tę stronę w php.
  • #5 16931407
    jestam
    Specjalista Automatyk
    Posty: 1799
    Pomógł: 210
    Ocena: 145
    Zgaduję: może zamykasz połączenie ze strony klienta zanim serwer odeśle potwierdzenie.

    Wklej cały kod.
  • REKLAMA
  • #6 16934686
    pitron
    Poziom 24  
    Posty: 811
    Pomógł: 51
    Ocena: 101
    Po wrzuceniu całości na lokalny serwer i analizie wireshark wygląda to tak że header nie jest poprawny.
    Nazwa zmiennej w ogóle nie występuje zamiast niej jest jej wartość.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    wemos
    Wemos D1 mini ESP8266 PHP Mysql pusta zmienna w metodzie POST
    mozilla
    Wemos D1 mini ESP8266 PHP Mysql pusta zmienna w metodzie POST
  • REKLAMA
  • #7 16934730
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1464
    Wątku by w ogóle nie było, gdybyś wcześniej dał pełny kod z PostData włącznie.
    OCZYWIŚCIE że wysyłasz ją źle.
  • #8 16934797
    pitron
    Poziom 24  
    Posty: 811
    Pomógł: 51
    Ocena: 101
    Do bólu modyfikowałem kod według przykładów header w sieci i value zawsze jest puste nawet "PostData=ABC" nie działa.
    Zaczyna podejrzewać błąd w bibliotece arduino.
    Dodano po 13 [minuty]:
    Sukces, niby banał ale może komuś się przyda :-)
    Cały string musi być zdefiniowany w zmiennej razem ze znakami równości i wartościami w przeciwnym razie Length obcinało wartość zaraz po nazwie zmiennej i value było puste:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik ma problem z modyfikowaniem danych w bazie MySQL za pomocą Wemos D1 mini ESP8266. Mimo że połączenie z bazą działa, rekordy są modyfikowane do wartości null, co sugeruje problem z przekazywaniem zmiennej w metodzie POST. Po analizie kodu i nagłówków HTTP, okazało się, że zmienna PostData musi być zdefiniowana w formacie "PostData=ABC", aby poprawnie przesłać dane. Użytkownik z powodzeniem poprawił kod, co rozwiązało problem.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA