Newsgroup: it.comp.lang.delphi
Titolo: Indy -- HTTP -- Post

Ciao a tutti,
dopo aver perso tante ore di sonno .... non sono riuscito a fare ciò che
amici del NG mi hanno suggerito ed in specifico:
Ho provato la demo di Indy HTTP che utilizza i metodi Get e Post per mandare
tramite URL una chiamata ad una pagina.
Quando uso il metogo Get tutto funziona (la pagina che chiama è una pagina
ASP dove legge 2 variabili nome e cognome).
Per il metodo Get la pagina asp utilizza l'oggetto Request.querystring (var)
per il metodo Post la pagina asp la programmo con l'oggetto Request.form
(var)
IL PROBLEMA E' sul metodo POST cioè quello che mi serve !!!
Nell'esempio di indy si può inserire le infomazioni nel memo post oppure
inserire un allegato file ... ma sembra nel risultato che appare sotto che
asp non le riceva queste informazioni !!!
il metodo get non posso usarlo perchè è molto limitato come lunghezza è ho
necessità di passare abbastanza dati !!!
Grazie.
Allego (spero di non essere troppo OT) il sorgente ASP
<%@ LANGUAGE = JScript %>
<%
// Recupero del modulo
var nome = Request.form("nome");
var cognome = Request.form("cognome");
var sesso = Request.form("sesso");
var dizione = (sesso=="F") ? "una femminuccia" : "un maschietto";
var SCRIPT = Request.ServerVariables("SCRIPT_NAME");
var SERVER_NAME = Request.ServerVariables("SERVER_NAME");
var QUERY_STRING = Request.ServerVariables("QUERY_STRING");
var IP = Request.ServerVariables("REMOTE_ADDR");
%>
<html>
<head>
<title>Esercitazione sull'oggetto Request</title>
</head>
<body>
<b>GRAZIE PER AVER SPEDITO IL MODULO!</b><br><br>
Ecco i dati che mi hai inviato:<br><br>
Nome: <b><%=nome%></b><br>
Cognome: <b><%=cognome%></b><br><br>
Stando a quanto dici dovresti essere <%=dizione%><br><br>
In più io aggiungo:<br><br>
Nome di questa pagina: <b><%=SCRIPT%></b><br>
Nome del server: <b><%=SERVER_NAME%></b><br>
Tuo indirizzo IP: <b><%=IP%></b><br><br>
</body>
</html>

tramite URL una chiamata ad una pagina.
Non si deve usare i metodi post/get per allineare delle basi dati.
(almeno se ricordo bene i thread che hai aperto dove parlavi di allineare le
basi dati dei tuoi gestionali sparsi per il mondo)
I metodi post/get non sono stati pensati per far transitare grosse quantita'
di dati, tantomeno non offrono un grande livello di sicurezza (no cifratura,
tutto in chiaro).
Puoi invece utilizzare un sistema di upload via ftp dei vari db access, e poi
farne il merge con un applicativo lato host. (ti era gia' stato suggerito)
Puoi incominciare partendo dal preparare un db che possa ospitare i vari
record delle varie agenzie (quindi attenzione ai contatori, alle primary keys,
ecc..), dopodiche' stabilisci un formato di esportazione (ti ricordo i vari
metodi savetofile del dataset (tu usi access, nevvero? guardati
customadodataset.savetofile). 
Costruisci un engine che prelevi questi file e se li importi, dopodiche' li
elabori opportunamente e alla fine, dopo averli ben digeriti con un buon
fernet, li inserisca nel db host.
Ovviamente un sistema simile non offre nessuna protezione dei dati che vi
transitano, o meglio: la sicurezza e' data dall'host. ( a meno che qualche
hacker non ci abbia piazzato un bello sniffer). 
Dirlo non e' come farlo, ma ricordati che "chi ben incomincia, e' a meta'
dell'opera" (magari!!!)
Non scoraggiarti: testa bassa, studio, ore piccole, niente sesso, e vedrai
venir su' il tuo bel bambino!
Ciao!
-- 
Morde. 
morde[at]programmer[.]net

 Ciao!
bye Stefano>


 tutto in chiaro).
Il get è limitato (a una dimensione molto piccola), il post mi sembra che
non abbia
limite alla dimensione (infatti puoi anche uploadare dei file).

 (var)
Al posto di request.form hai provato(var) con request(var) e basta?