22 messaggi dal 16 giugno 2001
Ciao a tutti, premetto che sono un neofita di asp e che leggendo i vari post nel forum non ho trovato nulla che potesse risolvere il problema.

Ho varie pagine che si chiamano: scheda.asp scheda1.asp scheda2.asp;
ed un altra form.asp dove c'è un form mail.

Io vorrei fare in modo che cliccando su un link che è presente in scheda.asp o scheda1.asp o scheda2.asp e che manda a form.asp dalla mail che mi arriva dal form si capisca da quale scheda è arrivato il link in questione.
Di seguito stralcio il codice che ho provato a scrivere (chiaramente non funzionante).

Premetto che s'è un file include che mi permette di fare un case di "cat" e mandarmi alla pagina webmaster.asp...



scheda.asp
----

...
...
<a href='?cat=webmaster&scheda=scheda1' >Invio al form della voce scheda 1</a>
....


//file include che fa il case
gen_case.asp
----
<%
cat=request.QueryString("cat")
select case cat
case " "
%>
...
<%
case "webmaster"
%>
<!--#include file="form.asp" -->


//form mail ometto la parte in html
form.asp
-----------

<% case "invia"

Set objMail = Server.CreateObject("CDO.Message")
objMail.To = "sdfsdfsdf@mail.net"
objMail.From = request.form("email")
objMail.Subject = "Richiesta informazione per il Webmaster "
....
mbody= mbody & "Messaggio: " & request.querystring("scheda") & vbCrLf & request.form("testo") & Chr(13) & Chr(10)
.....
objMail.TextBody=mbody
objMail.Send
Set objMail = Nothing
response.redirect "?cat=webmaster&op=grazie"


case "grazie"
response.write " Grazie! <br> <br><br>e-mail inviata correttamente <br> vi contatteremo quanto prima"
end select
%>
------

Sper riusciate a trovare la soluzione mi sto scervellando da 5 giorni, ho provato anche con campi hidden di form html ma invano
Grazie mille in anticipo
O ti porti lo stato dietro tra le varie chiamate alle pagine o lo salvi nel contesto di sessione per poi richiamarlo al momento dell'invio della mail.

Parliamo potabile...
Ti scrivo il codice.

All'inizio di ciascuna pagina scheda.asp, scheda1.asp, scheda2.asp, ecc. inserisci una linea di codice per mettere in sessione il nome della pagina :

In scheda.asp:

Session("FromPage") = "scheda.asp"


In scheda1.asp:

Session("FromPage") = "scheda1.asp"


In scheda2.asp:

Session("FromPage") = "scheda2.asp"


Quando fai l'invio della mail richiami Session("FromPage"):

Set objMail = Server.CreateObject("CDO.Message") 
objMail.To = "bimbumbam@mail.net" 
objMail.From = request.form("email") 
objMail.Subject = "Richiesta informazione per il Webmaster dalla pagina '" & Session("FromPage") & "'"


Se la richiesta proviene per esempio da pagina scheda.asp, in fase di esecuzione dello script in sessione sarà stato posto il nome "scheda.asp" e la mail inviata sarà con subject " Richiesta informazione per il Webmaster dalla pagina 'scheda.asp' ".

Ciao, Ricky.

Ing. Riccardo Golia
Microsoft MVP ASP.NET/IIS
ASPItalia.com Content Manager
http://blogs.aspitalia.com/rickyvr
http://ricky.aspitalia.com
http://www.riccardogolia.it
3.122 messaggi dal 16 maggio 2002
Spero di avere interpretato bene la tua richiesta.
Un modo per indicare da quale pagina provieni è passare nella QUERY_STRING il nome.
Un altro è con una variabile server: infatti l'indirizzo della pagina da cui arrivi al form lo ottieni semplicemente con
Request.ServerVariables("HTTP_REFERER")


Scelto uno di questi due metodi, in form.asp basta che usi un campo hidden per salvare tale valore ed inviarlo alla pagina che raccoglie i dati:
<form...>
...
<input type="hidden" name="provenienza" value="<%=Request.ServerVariables("HTTP_REFERER")%>">
...
</form

Poi dalla pagina che riceve i dati ottieni la pagina di provenienza con
Request.Form("provenienza")


P.S. il link
<a href="?cat=webmaster&scheda=scheda1">...</a>
non ti porterà da nessuna parte se specifichi solo la QUERY_STRING e non la pagina di destinazione
Modificato da Raynor il 21 maggio 2004 09.31 -

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
22 messaggi dal 16 giugno 2001
Grazie ad entrambi per le soluzioni proposte,

a scopo didattico proverò entrambe le soluzioni da Voi proposte, anche se quella di Raynor mi sambra la più immediata da adottare, comunque vi informarerò su quella adottata.

Grazie ancora!
22 messaggi dal 16 giugno 2001
Salve a tutti!
Ho provato ad implementare entrambe le soluzioni...quella funzionante è quella utilizzando le Session (soluzione proposta da Raynor), l'altra, aimè da errore (segnalato sul send del form) probabilemente è dovuto al fatto che lo passo tramite include...
Comunque funge e se volte dare un'occhiata il sito è: www.florencevacations.net,
accetto suggerimenti e critiche soprattutto da voi maestri dell'ASP

Ciao!
3.122 messaggi dal 16 maggio 2002
Veramente io ho proposto tutt'altro che session...
Che errore ti dà l'altra soluzione (che immagino sia la mia)?

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
Come ti ho specificato nel mio post di qualche giorno fa, le alternative erano due:

[1] gestire lo stato (il nome della pagina di provenienza, nel tuo caso) tramite querystring passando un parametro hidden attraverso le chiamate tra le varie pagine;

[2] utilizzare un riferimento nell'oggetto Session.

Entrambe le soluzioni vanno bene, Raynor ti ha gentilmente e ottimamente specificato il codice per la soluzione [1], io ho optato per la soluzione [2], più facile da realizzare per un neofita (lo siamo stati tutti, no?  ) e funzionante indipendentemente dalla struttura delle tue pagine. Se usi le inclusioni, la soluzione [1] potrebbe darti dei problemi.

Se ci posti (penso che Raynor sarà d'accordo, vero?) il codice che stai scrivendo (ovviamente non tutto, ma solo i passi salienti) con una descrizione della struttura delle inclusioni, cercheremo di darti una mano.

Ciao, Ricky.

Ing. Riccardo Golia
Microsoft MVP ASP.NET/IIS
ASPItalia.com Content Manager
http://blogs.aspitalia.com/rickyvr
http://ricky.aspitalia.com
http://www.riccardogolia.it

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.