1

Téma: http_get PHP

Dobrý den,

jsem úlný začátečník a omluvte mě prosím jestli jste to již řšili, ale mám problém s funkcí hhtp_get

v SDS mám tuto část textu

<?php
http_get(X,XX,X,'XXXXXX','/data.php?impulsy=',ram[1]);
wait(2000);
lcd_echo(1,1,0,sys[65]);  výsledek je 1024
lcd_echo(1,2,0,sys[75]);  výsledek je 200
lcd_echo(1,3,0,ram[1]);    100 - hodnota v ram....

v data.php

$raw_udaje["impulsy"] = htmlspecialchars($_GET['impulsy'], ENT_QUOTES, "UTF-8");

if ($raw_udaje["impulsy"]) 
{

echo($raw_udaje["impulsy"]);

}

?>

když do prohlížeče napíšu

/data.php?impulsy=100

dojde k očekánávému výsledku - na první řádek se vypíše hodnota 100

ale když spustím pouze data.php
k výpisu hodnoty ram[1] - tedy 100 nedojde....

co prosím dělám špatně smile

moc díky

2

Re: http_get PHP

Nemáte špatnou IP adresu kde je ten script pro zpraování dat? Mě minule vypekl WZ, udělal změnu a já hledal pak první chybu u mysql vs. mysqli kvůli nové verzi jejich webu.

Případně si stáhněte script pro portál a upravte si ho na svou adresu.

nějaké ukázky kódu zde: http://forum.merenienergie.cz//viewtopic.php?id=552

3

Re: http_get PHP

Provedení HTTP komunikace chvíli trvá. Je potřeba počkat, až se dokončí - viz spousta příkladů jak to udělat správně (ve smyčce číst stav, a buď to nějak skončí nebo bude timeout smyčky).

Nezapomeňte na správné zadání parametrů: (ve vašem kódu nahoře chybí čárka mezi IP2 a IP3)

 http_get(IP1, IP2, IP3, IP4, 'host', 'get text', ...);
Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

4

Re: http_get PHP

Dobrý den,

jen jsem mel za to , že když dostanu

lcd_echo(1,1,0,sys[65]);  výsledek je 1024
lcd_echo(1,2,0,sys[75]);  výsledek je 200

což je podle návodu že je to OK tak že ta komunikace proběhla .....

ten čas jsem schválně dával tak abych dostal tyhle výsledky...

stejně tak jsme zkoušel i PING IP adresy a daval jsme čas dokud nebudu mít

sys[92] = 8

5

Re: http_get PHP

wait(2000) je dost dlouhý čas, nejspíše to skutečně proběhne (je tam ta odpověď: 200), nicméně to určitě nebude něco co by jste chtěl mít pak dlouhodobě v provozu.

Odpovídá parametr "host" IP adrese serveru a je "host" správně ?
Úplně správný program má navíc provádět dns_resolv() volání před každým http_get(), se vším doplňujícím kódem okolo...
Zkuste si porovnat co odesílá prohlížeč (wiresharkem, nebo možná přes F12 / firebug atd.) a to co posílá SDS.

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

6 Naposledy upravil: Igor (2015-09-21 08:38:31)

Re: http_get PHP

Dobrý den,

Všechno to jak píšete  v progrmu mám, i s dns_resolve.....

Ale po "uspěšném" dns jsou v daných sys[] pouze nuly tedy IP je 0.0.0.0

A tak jsem udělal ping "hosta" přes cmd a tak jsem zjistil IP adresu...

tedy jak dns resolve tak http_get "prošli" jenže....

tak ty řádky kolem mám celé zakomentářované a zkouším "ručně" http_get na IP adresu z pingu cmd a "hosta".

Jen nedokážu nějak poznat, jestli je chyba na straně "hosta" nebo SDS když vše vrací hodnotu že je vše OK smile...

Ještě se podívm na porovnání prohlížeče a SDS..


Jen ještě doplním....

právě jsem se dověděl že port 80 je na lokalhost a tak si mám dát port 81 , čoz je celkem jasné...tím pádem, to snad bude fungovat smile

ale nerozumím proč vše se tváří že projde když ten port 80 je "zavřený".....

7

Re: http_get PHP

To je celé... zvláštní.

Vypadá to že máte u sebe nějaké firewally na své síti. Běžně musí DNS fungovat, stejně tak jako port 80.

Samozřejmě musíte mít správně nastavenou GW (router) - viz port forwarding. To jsou základy, nezávislé na SDS.

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

8

Re: http_get PHP

Dobrý den,



Je to jak píšete...
Asi někde v cestě je "ohnivázeď" o které nevím , nebo nastavení práv:(....

Po testování na lokále - "natvrdo" PC a SDS funguje vše jak má...

A  mám na vás ještě jednu otázku,
dá se nějak změřit čas komunikace se serverem, abych věděl jak nastavit "wait - přesněji"?

Děkuji,

9

Re: http_get PHP

Nepoužívejte pro http_get() funkci wait() = to není z principu správné !
Používejte vlastní smyčku, která sleduje sys[] stav - viz přesné příklady na WiKi nebo vzorové programy.

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

10

Re: http_get PHP

Dobrý den,

Dlouho jsem nepsal, podařilo se mi par věcí vyřešit, ale mám z přenosu chybu a mos nevím co znamena...

v sys[65] je číslo 1027
což jsem si přečetl že je ..1027 chyba - odpojeno - webový server násilně přerušil síťové spojení (reset)

chápu to dobře že tedy je něco na strane web serveru špatně zadané a web server se brání komunikaci

co se s tím dá dělat?

děkuji

11

Re: http_get PHP

Dobrý den,

Ještě doplním zkoušel jsem PING a dostal jsem následující odpověď....

Nedostal jsem PING REPLY od (1), chybovy kod je 2, doba je 147906206 msec, RTT je 65535 msec
== 2 : čeká se na odpověď od ARP
           (POZOR! Znamená to že místo ICMP PING REQUEST paketu byl odeslán ARP paket,)

co to prosím znamená...

Děkuji z ajakekoliv informace

12

Re: http_get PHP

(Nejprve klasická otázka - používáte nejposlednější firmware?)

Dokud bude odpověď pro PING funkci číslo 2, znamená to, že zařízení které se snažíte donutit aby vám poslalo PING REPLY vám nedá ani ARP REPLY. To znamená, že je zřejmě úplně vypnuté.

ARP-resolution je nezbytný pro SDS aby si SDS nejprve mohlo zjistit MAC adresu vzdáleného zařízení (nebo nejbližšího routeru) a tím pádem aby SDS umělo správně po Ethernetu poslat paket tím správným směrem - viz základy počítačových sítí.
Pokud SDS poprvé odesílá (jakýkoliv) paket na IP adresu se kterou ještě SDS od zapnutí "nekomunikovalo" tak logicky musí nejprve provést ARP (poslat dotaz a obdržet správnou odpověď). Až tohle projde, pak teprve lze posílat PING.
Protože vypnuté nebo zaseknuté zařízení nereaguje ani na ARP, je zcela logické že tato informace je k dispozici také - a aplikace by pak na ni měla správně reagovat (stejně jako když PING REPLY nepřijde "včas").

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

13

Re: http_get PHP

Děkuji-moc to vše pomohlo, vše již funguje dle předpokladů....

díky