Go Down

Topic: post wireless shield (Read 1 time) previous topic - next topic

PaoloP

Non mi intendo molto di siti web, meno che mai php. Però mi sorge una domanda: Perché non fai fare i calcoli ad Arduino e mostri il risultato su un display LCD?
--> http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1277124076

blenchen

perchè devo interfacciare arduino con google maps

blenchen

il sito in php l'ho sviluppato io e i parametri li devo passare con il metodo della post

blenchen

cercando un po' tra le librerie sono riuscito a trovare ciò che mi serviva, ma non riesco a capire il parametro da passare in questa funzione :
Code: [Select]
void setBodyFunc(bodyFunction body)

lucadentella

ciao

se immagino cosa richieda, devi passare il "body" della chiamata al webserver...
Suggerimento: se l'hai fatto tu il sito in PHP e passi al GET ti viene molto più facile: il GET prevede semplicemente che chiami il server con una stringa tipo

GET http://mioserver/miapagina.php?parametro=valore

con parametro la variabile che ti aspetti lato PGP (immagino poi la estrarrai con $_GET["parametro"]) e valore il valore letto da arduino
lucadentella.it

blenchen

tramite POST non è meglio??

lucadentella

dipende da cosa valuti per definire "meglio"...
lucadentella.it

blenchen

credo che sia un metodo migliore per la sicurezza del parametro passato e rende più veloce il funzionamento del programma in php

lucadentella

ciao

via POST non "vedi" le variabili direttamente nella URL, ma se non usi HTTPS sono comunque "leggibili"... lato velocità del PHP boh... alla fine li ottieni sempre da un array associativo ($_POST o $_GET che sia).

come comodità sicuramente vince GET
lucadentella.it

blenchen

eh lo so, ma io e il mio compagno di lavoro abbiamo deciso così.
nel farla però sono arrivato a buon punto ma non riesco a capire nella funzione che segue l'ultimo parametro
Code: [Select]
POSTrequest (ipaddr, porto, hostName, URL, bodyFunc)
su internet (http://asynclabs.com/wiki/index.php?title=WiServerAPI#POSTrequest_class) da una spiegazione ma non riesco a capirne il significato in parole povere, cosa devo scriverci dentro.

lesto

ecco un esempio di POST:

Quote
POST /login.jsp HTTP/1.1
   Host: www.mysite.com
   User-Agent: Mozilla/4.0
   Content-Length: 27
   Content-Type: application/x-www-form-urlencoded

   userid=joe&password=guessme


notare che tutti i campi fino a Content-Type compreso sono obbligatori e fanno parte dell'header, seguiti da una riga vuota e dai dati:
1. POST, che indica il tipo di richiesta (c'è anche la GET, e molte altre)
2. percorso (URL) della pagina richiesta, con path in stile unix (non c'è il c:\ sotituito da /, e le cartelle sono divisa da / anzichè \)
3. HTTP/1.1, ovvero il protocollo usato. consiglio di usare l'1.0 che è più semplice, ma non dovrebbe dare problemi
4. Host: nome dell'host a cui fare la richiesta.
5. User-Agent: identificativo del browser. mettici arduino se vuoi :)
6. Content-Length: dimensione in byte della parte dati (se 0 non credo sia valida la richiesta, bisogna fare una get)
7. Content-Type: è il tipo di "formati" accettati, non metterlo, o metti text/plain

seguono i dati (notare che una lettera è 1 byte, infatti ci sono 27 lettere, che corrispondono esattamente alla Content-Length)

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

lucadentella

ciao

la cosa un pochino "complessa" nella funzione è che "bodyFunc" è il riferimento di un'altra funzione che effettivamente genererà l'header come lesto te l'ha esemplificato... e sempre bodyFunc deve avere il corretto prototipo.

quindi dovrai fare qualcosa tipo

void myBodyFunction() {

WiServer.println("POST /miapagina.php HTTP/1.1");
WiServer.println(...)
}
lucadentella.it

blenchen

grazie mille per gli aiuti... domani testo e vi dico... se tutto va bene vi metto nella relazione per l'esame :) :)

Go Up