71 messaggi dal 28 novembre 2003
www.w3a.it
Ciao a tutti
Vi spiego il mio problema
Ho una pagina ASP in cui l'utente deve fare il Login e quindi viene indirizzato alla pagina2.

Nella pagina2 viene sottoposto un test e, dopo il click su "invia", viene rimandato alla pagina3 dove le risposte che ha dato mi vengono inviate via mail.

Ogni utente può fare solo un login e quindi partecipare una volta sola al test quindi nella pagina2 aggiorno il database inserendo il codice dell'utente e nel caso questi volesse partecipare ancora, non può.

Il problema è che quando arriva alla Pagina3...se preme "Indietro" nel browser, torna alla pagina con le domande e può rispondere ancora alle domande.

Indipendentemente dal fatto che poi io posso controllare via mail quante volte una persona abbia partecipato, esiste un modo affinchè premendo "Indietro", l'utente sia indirizzato alla pagina di Log o comunque non possa visualizzare di nuovo la Pagina2?

Grazie :)
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
Spero di avere ben capito...

La pagina è quella del test, e può farlo solo chi esegue l'autenticazione. Quando un utente risponde a tutte le domande scrivi un valore nell'oggetto session, una specie di flag che ti fa capire che l'utente ha già risposto alle domande.

Quindi nella pagina 2 e 3, ad inizio codice, ti è sufficiente controllare il valore di quell'oggetto session.

Per esempio, quando un utente ha risposto al test, nella pagina 3 scrivi:
Session("risposte")="si"

All'inizio della pagina 2 e 3, per controllare che non abbia già risposto, scrivi:
<%
if Session("risposte")="si" then
Response.Redirect("Pagina_errore.asp")
Response.End()
end if

In questo modo, se l'utente ha già risposto, viene rediretto alla pagina Pagina_errore.asp.

Ciao
71 messaggi dal 28 novembre 2003
www.w3a.it
Se metto Session("risposte") in terza pagina, quando clicco "indietro" sul browser la pagina mi appare correttamente.
Io dovrei far scadere la pagina in qualche modo

ho messo all'inizio

code]<%
Response.Expires = -1500
Response.AddHeader "pragma", "no-cache"
Response.AddHeader "cache-control", "private"
Response.CacheControl = "private"
%>[[/code]

ma a quanto pare la pagina non scade e visualizzo la PAgina2 senza problemi.

Come posso fare per non visualizzarla ed eliminare la chache al click?
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
Io utilizzavo questo codice:

Response.Expires=-1
Response.AddHeader "Pragma","no-cache"
Response.AddHeader "cache-control", "no-store"
Response.CacheControl = "no-cache"

Oppure puoi fare in modo che il test appaia in una finestra popup che, una volta ricevute le risposte, si chiuda da sola.

Ciao
71 messaggi dal 28 novembre 2003
www.w3a.it
Grande! Funziona!!!
Grazie mille!!!!!

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.