Newsgroup: it.comp.www.php
Titolo: Parametri via post o nell'header?

Salve a tutti, sto sviluppando una applicazione per cellulari che comunica 
con degli script in php.
Ora mi chiedevo se e' meglio/ci sono differenze magari a livello anche di 
stile, inviare i parametri come variabili post o nell'header della 
connessione http...
Ad esempio, in base al valore del parametro action lo script php deve 
eseguire operazioni diverse.
Meglio mettere action=xxx nell'header o nel post?
io ho sempre messo tutto nel post....ma mi � venuto il dubbio.... 

 connessione http...
Alcuni server non accettavano richieste GET superiori a 256 caratteri 
quindi in quel caso hai un limite su numero e lunghezza di parametri e 
loro valori.

 Meglio mettere action=xxx nell'header o nel post?
Nel POST e` piu` facile parsarle lato PHP.
In entrambi i casi comunque passano in chiaro, quindi, IMHO, tanto vale 
passarle in POST.
Bye.

 con degli script in php.
Non ho esperienza con i browser dei device mobili, ma non puoi usare $_SESSION?
Ciao,
luigi
-- 
/
+--[Luigi Rosa]--
\
A good time to learn to laugh at yourself. Or, develop multiple
personalities! That way you won't be laughing at you, you'll be
laughing with you.


Vabbe', ma la lunghezza dell'header mica entra nella lunghezza della 
richiesa GET (e poi mi sa che il limite non esiste, mi sembra di ricordare 
che 256 caratteri � il minimo garantito da specifica html, apache ha come 
limite la dimensione della ram del server :P ) 


Dall'header pure e' facile parsarle ( stanno dentro $_SERVER )
La domanda credo sia piu' che altro di stile...ho pensato che dato che 
nell'header passano ad esempio i comandi per la cache, gli script da 
caricare, risposte di stato http, fosse piu' "corretto semanticamente" 
utilizzare il post solo per l'invio di dati, non comandi 


E' una applicazione scritta in J2ME, non un browser...php mi fa da tramite 
con un database, quindi non ho sessioni... :( 


??? Non dico nulla perchè non ho mai avuto a che fare con J2ME. Io
suggerisco $_POST. Lo preferisco a $_GET semplicemente perchè non mi
piace sporcare l'indirizzo con la querystring. A volte è necessario ma
se posso lo evito sempre. Le mie ragioni sono sopratutto "estetiche".
Cmq sia... puoi spiegarci meglio come usi j2me e php?

 Cmq sia... puoi spiegarci meglio come usi j2me e php?
Aspetta, stiamo facendo un po di confusione...
GET si usa quando si "appendono" parametri testuali nell'url
POST quando si appendo parametri di qualsiasi tipo nella richiesta, ma non 
nell'url
HEADER gli header sono le intestazioni definite nel protocollo http (ad 
esempio User-Agent e simili).Gli header HTTP vengono trasferiti fra client e 
server e generalmente contengono meta-informazioni sul contenuto effettivo 
della risorsa (file) trasferita.
Poi sono d'accordo che post � preferibile (gli url get sono veramente 
inguardabili, oltre imho ad essere fonte di eventuali problemi di 
sicurezza...)
Ho sviluppato una web application, sostanzialmente una mappa cittadina dove 
gli utenti possono aprire delle segnalazioni geografiche ("in via tizio caio 
22 le strade sono sporche"), segnalazioni che vengono inserite in un db 
(tutto e' un po' piu' complesso, viene messo in mezzo il protocollo WFS-T e 
WMS )
Devo realizzare un client per cellulari che permetta l'inserimento e la 
ricerca di queste segnalazioni (senza mappa di sfondo) diciamo una 
semplificazione del sito (che non � possibile utilizzare in quanto i browser 
per cellulari non hanno pieno supporto a javascript, largamente utilizzato 
nel sito)
Quindi, semplicemente J2ME comunica con il database/parte business 
attraverso il protocollo HTTP, inviando dati (ad esempio le foto associate 
alla segnalazione) via POST.
Non c'e' sessione perche' il protocollo non la prevede, io la mantengo 
inviando un sessId ad gni richiesta (mi serve ache per valutare sicurezza e 
permessi)
In soldoni, il cellulare invia una richiesta allo script mobile.php ed in 
base al classico valore del parametro "action" php eseguira' determinate 
operazioni.
Ora, il mio dubbio piu' filosofico che altro, e':
Dato che post nasce per l'invio di DATI e che negli header ci sono tutte le 
informazioni inerenti la comunicazione (ad esempio richiesta di 
autenticazione, messaggi di errore del server, codifica, etc.), il parametro 
"action" e' piu' corretto esprimerlo nel post o negli header?
Per ora, l'unica cossa a favore di metterla nel post e' che i browser non 
permettono solitamente di modificare gli header, quindi un browser non 
potrebbe utilizzare le funzioni inserite nello script (cosa che per me va 
bene in quanto e' risrvato alla comunciazione con i dispositivi da me 
proggettati) 

 22 le strade sono sporche"), segnalazioni che vengono inserite in un db 
Non ricordo piu' dove, ma se puo' esserti utile come informazione,
esistono gia' siti open source che fanno cio' che stai realizzando, e
anche molto di piu'. Ovviamente erano siti statunitensi...
Saluti, Giovanni

 piu' corretto esprimerlo nel post o negli header?
Parlando filosoficamente, ora che conosco la struttura, io continuerei a 
metterli in POST. :)
Gli header, IMHO, vanno usati per comunicare al server la configurazione 
del client (che lingue accetta, se sta usando AJAX, se accetta 
compressione gzip, ecc.), mentre tutta la parte di invio dati (e quindi 
anche dei comandi richiesti) va in POST.
Al massimo metti negli header una riga che dica al server "sto chiamando 
da un cellulare", cosi` il server puo' anche distinguerlo da un browser 
normale e sapere quanta roba mandargli indietro.
Bye.


Perfetto, mi hai convinto ! :)