Skocz do zawartości

Przesyłanie danych na strone WWW


Mrpatryk

Pomocna odpowiedź

Przypomniałem sobie jak wstawić dane z palca do bazy danych z użyciem podanego skryptu, załóżmy, że serwer mam na IP 192.168.15.32,  a nazwa skryptu do wstawiania w bazę to esp.php i jest w katalogu głównym. Wystarczy w przeglądarkę, np. Chrome  wpisać w pole adresu: "http://192.168.15.32/esp.php?id=1&t=23.52&h=69" , dostaję w miejscu gdzie normalnie pokazuje się zawartość strony komunikat "OK", a  na wykresie pojawia się nowa zawartość, czyli wstawiło do bazy. Zaloguj się i sprawdź czy to działa, jeśli zadziała to pewnie brakuje logowanie w kodzie Arduino, jak nie to coś nie tak między skryptem a bazą. Najprościej to jednak odtworzyć takie same warunki na potrzebę testu.

Dodatkowo dałem Ci pod skryptem link do postu na Arduino, gdzie domik wykorzystał ten przykład. On w swojej wersji ma właśnie serwer na CBA, przed rozpoczęciem komunikacji odpala funkcję:

void connect(){
 delay(1000);
 monitor.println("AT+CWMODE=3");
 delay(2000);
 monitor.println("AT+CWJAP=\"test\",\"pass\"");
 delay(5000);
}

Oczywiście w jego wersji jest to Arduino + ESP jako modem WIFI,  ale widać, że jest konieczne podanie loginu i hasla. No i nie rozłącza się z tego powodu pewnie za każdym razem tylko ma  parametr "Connection: keep-alive\r\n\r\n".

Edit:

Po zastanowieniu to jest jednak połączenie z AP WIFI w domu. Także może nie trzeba hasła. Sprawdź jak z palca wchodzi.

Edytowano przez kaczakat
Link do komentarza
Share on other sites

<?php
define ('DBHOST', 'mysql.cba.pl'); 
define ('DBNAME', 'meqyou'); // nazwa bazy danych
define ('DBUSER', 'meqyou'); // nazwa usera ustawic w PHPMYADMIN
define ('DBPASS', '******'); // haslo usera
/* Laczenie z baza danych */
$con = mysql_connect(DBHOST, DBUSER, DBPASS) or die('Nie polaczono!');
mysql_select_db( 'meqyou') or die ('Brak polaczenia z baza danych!');
mysql_query('SET NAMES utf8');

$id = ($_GET['id']); 
$temp = ($_GET['t']);
$hum = ($_GET['h']);

if ($id == '1') {
    $total = mysql_result(mysql_query("SELECT count(*) FROM `esp2`"),0);
    mysql_query("INSERT INTO `esp2` (temp,hum) values ('".$temp."','".$hum."') ");
}echo 'wyswietl' ; $id,$temp,$hum;


echo 'Ок';


?>

Taki kod PHP mam na serwer wgrany.

Link do komentarza
Share on other sites

18 godzin temu, kaczakat napisał:

Przypomniałem sobie jak wstawić dane z palca do bazy danych z użyciem podanego skryptu, załóżmy, że serwer mam na IP 192.168.15.32,  a nazwa skryptu do wstawiania w bazę to esp.php i jest w katalogu głównym. Wystarczy w przeglądarkę, np. Chrome  wpisać w pole adresu: "http://192.168.15.32/esp.php?id=1&t=23.52&h=69" , dostaję w miejscu gdzie normalnie pokazuje się zawartość strony komunikat "OK", a  na wykresie pojawia się nowa zawartość, czyli wstawiło do bazy. Zaloguj się i sprawdź czy to działa, jeśli zadziała to pewnie brakuje logowanie w kodzie Arduino, jak nie to coś nie tak między skryptem a bazą. Najprościej to jednak odtworzyć takie same warunki na potrzebę testu.

Dodatkowo dałem Ci pod skryptem link do postu na Arduino, gdzie domik wykorzystał ten przykład. On w swojej wersji ma właśnie serwer na CBA, przed rozpoczęciem komunikacji odpala funkcję:


void connect(){
 delay(1000);
 monitor.println("AT+CWMODE=3");
 delay(2000);
 monitor.println("AT+CWJAP=\"test\",\"pass\"");
 delay(5000);
}

Oczywiście w jego wersji jest to Arduino + ESP jako modem WIFI,  ale widać, że jest konieczne podanie loginu i hasla. No i nie rozłącza się z tego powodu pewnie za każdym razem tylko ma  parametr "Connection: keep-alive\r\n\r\n".

Edit:

Po zastanowieniu to jest jednak połączenie z AP WIFI w domu. Także może nie trzeba hasła. Sprawdź jak z palca wchodzi.

Wrzuciłem te wartosci tak jak ty, lecz zamiast IP wstawilem moja stronke i wyskakuje komunikat "

Ta witryna jest nieosiągalna

Nie udało się znaleźć adresu IP serwera ze stroną http."

18 godzin temu, ethanak napisał:

To nie ma prawa działać 😉

Co oznacza


	echo 'wyswietl' ; $id,$temp,$hum;

bo na 100% nie jest to wyświetlanie tych wartości.

Heh ok , więc jak te wartosci wyświetlic ? 

ok bez http zadziałało dodało dane do bazy danych

KURŁA !! działa , nie wiem od czego to zalezalo ale jak udalo sie z palca dodac to bez zadnej ingerencji ruszyło wszystko . !!!!!

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

1 minutę temu, ethanak napisał:

Najpierw odpowiedz co robi ta linijka i w jaki sposób. Bo mimo wszelkich protestów ze strony Trekera będę się upierał, że uczenie podstaw PHP w wątku o ESP nie jest dobrym pomysłem, a odesłanie do http://pl.php.net  na odmianę jest 😉

działa ! 😄 Więc wszystko jest okej 😄 ja się męczyłem z tym a porostu jak by baza była zbugowana 😄 ! dzięki wszystkim za podpowiedzi 🙂 !

Link do komentarza
Share on other sites

Czyli ślepy doprowadził kulawego. A tak z ciekawości, rozumiem że autoryzację dostępu powinien przeprowadzić skrypt PHP? Ktoś się orientuje?

U mnie Twój skrypt też by nie zadziałał, jak już to powinno być :

echo 'wyswietl ' ; echo $id,$temp,$hum;

 

Link do komentarza
Share on other sites

już wszystko działa. zrobilem do tego zeby nadpisywał w tabeli wartosci oraz drugi skrypt do wyświetlenia z odswierzeniem 🙂 

2 minuty temu, Elvis napisał:

Aż boli na to patrzeć jak czytam że działa i super. Może warto chociaż poczytać o SQL injection... np http://php.net/manual/en/security.database.sql-injection.php

2 lata temu mialem mysql na uczelni ale kompletnie nic nie pamietam 🙂

Link do komentarza
Share on other sites

1 minutę temu, Elvis napisał:

Ja miałem 20 lat temu jak MySql jeszcze nie obsługiwał relacji. Ale coś tam pamiętam - np. żeby nie wstawiać do zapytania bezpośrednio warotści z formularza...

Nie każdy jest tobą 🙂 Pozdrawiam

Link do komentarza
Share on other sites

No nie każdy... tylko że jeśli masz skrypt napisany w ten sposób to mogę Ci jednym prostym wejściem na stronę wysadzić bazę w powietrze (np. skasować wszystkie tabele).

Naprawdę, php.net nie gryzie, szczególnie escape_string. I nikogo nie interesuje, że dwa lata temu nie chciało Ci się MySQL-a uczyć - dzisiaj sam widzisz tego efekty i masz szanse to naprawić.

Link do komentarza
Share on other sites

17 godzin temu, Mrpatryk napisał:

już wszystko działa.

Świetnie, że działa - cieszymy się razem z Tobą. Jak pobawisz się trochę skryptem i już ochłoniesz to jednak faktycznie zajmij się tym co było tutaj wspomniane przez innych użytkowników. Takim prostym skryptem prosisz się później o problemy, każdy odwiedzający stronę z wynikami będzie mógł np. skasować całą bazę danych. Nie lepiej poświęcić godzinkę więcej (wliczając naukę) i zrobić to porządnie?

Link do komentarza
Share on other sites

Witam wszystkich,

tak sobie czytam posty pod tym tematem, ale nie znajduję rozwiązania dla siebie. Opisze mój problem.

Mam arduino a do niego podłączony DTH22, który odczytuje temperaturę i wilgotność. Do arduino podłączona jest grzałka, która po osiągnięciu odpowiedniej temperatury wyłącza się i znowu włącza jak temperatura zejdzie niżej niż zadana w kodzie. Chciałbym przez stronę WWW (dynamicznie bez MySQL) podglądać dane (temperatura i wilgotność) na swoim telefonie poza domem. Czy jest taka możliwość, aby moduł WiFi, np. ESP 8266 podłączyć do mojej sieci domowej a dane były wysyłane na stronę www, a ja będąc w pracy mam możliwość podejrzenia LIVE bez zapisu na bazę, jaka aktualnie jest temperatura oraz wilgotność?

Czy jest opcja, że po odczytaniu danych stwierdzam, za wysoka temperatura i wyłączam grzałkę, a później ją włączam (wszystko przez www)?

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.