Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Svuotare una pagina ASP

    Salve, forse il titolo non è molto corretto, ma non saprei come indicare il rpoblema in 2 parole.

    Il mio problema è questo:

    Ho una pagina di inserimento di dati in un DB tramite form, e fin qui nessun problema.

    Se l'utente, una volta inserito il dato, che è poi un annuncio, torna indietro, si ritrova con la pagina precedente sempre con gli stessi dati e, praticamente, così facendo può inserire n volte lo stesso annuncio.

    Senza disabilitare la funzione INDIETRO del Browser, come potrei svuotare la pagina una volta inviato il form? In modo che se anche torna indietro, trova il form vuoto.

    Grazie e buona giornata a tutti.
    BigDaniel

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Premesso che la cronologia (tasto indietro) e i dati del form sono gestiti dal browser (su impostazioni dell'utente) non dal server.
    Prova a non memorizzare la pagina in cache (se non conosci le tecniche fai una ricerca qui su html o su google) ad inviare i dati in post del form, se questo non risolve o apri la pagina form in una popup e la chiudi all'invio del form oppure usi ajax (l'operazione diventa abbastanza complessa se non conosci javascript)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Grazie della risposta.

    Inannzi tutto, la soluzione popup non sembrerebbe essere particabile in quanto se l'utente ha attivo il blocca popup, non ci arriva.

    Ho provato a svuotare la cache in questo modo:

    codice:
    Response.Expires = -1500 
    Response.ExpiresAbsolute = now()-1500
    Response.Addheader "pragma","no-cache"
    Response.Addheader "cache-control","private"
    Response.Cachecontrol="no-cache"
    mettendo il codice ad inizio pagina che contiene il form, ma non svuota un bel niente.

    Qualche altro suggerimento particabile, please?
    BigDaniel

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    il tasto back del browser non porta ad una pagina nuova ma a quella che il browser stesso ha visitato e, solitamente, se la pesca dalla propria cache trattandosi di un'evento locale e non di una nuova richiesta

    quindi
    dopo aver impostato ovunque i vari nocache nei file asp,
    ed aver terminato le operazioni derivanti dall'action,
    la procedura è quella di portare l'utente ad una pagina "nuova" (potrebbe anche essere la stessa pagina del form, non importa) con un redirect

    esempio
    -ricevo i dati
    -elaboro
    -response.redirect "pagina.asp"


  5. #5
    Per favore, potresti essere un po' più esplicito. Un esempio, please
    BigDaniel

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    più esplicito di così

    qual'è la tua difficoltà?

  7. #7
    Allora, cerco di spiegarmi meglio:

    una volta inserito l'annuncio, l'utente viene mandato ad una pagina dove controlla l'annuncio appena inserito (anteprima annuncio). Se va bene OK, altrimenti se deve correggere, va ad una altra pagina dove aggiorna il DB, visto che l'annuncio viene caricato direttamente dalla prima pagina di inserimento. In sostanza, la conferma è solo fittizia.

    Ora nella pagina di anteprima annuncio, se clicca INDIETRO del browser, si ritrova nuovamente nella pagina inserimento annuncio, con il form che ripropone nuovamente tutti i dati e se per caso clicca nuovamente su pubblica, lo fa per la seconda volta.

    Come fare per evitare che ciò possa accadere?

    Non ho capito cosa intendi per questo:

    -ricevo i dati
    -elaboro
    -response.redirect "pagina.asp"
    BigDaniel

  8. #8
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    Originariamente inviato da bigdaniel
    una volta inserito l'annuncio, l'utente viene mandato ad una pagina dove controlla l'annuncio appena inserito (anteprima annuncio).
    appena inseriti i dati nel db mandalo alla pagina "anteprima" con response.redirect
    se dovesse cliccare di back ( ) troverebbe il form vuoto (e perderebbe la visualizzazione dell'anteprima, ma questi son cavoli suoi)

  9. #9
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Nella pagina in cui visualizzi ed eventualmente confermi metti uno script simile:
    codice:
    <script>
    if confirm("Confermi l'inserimento dell'articolo?") {
      location.replace("paginaFaiQuelloCheTiPare.asp");
    } else {
      location.replace("paginaPerModificaArticolo.asp");
    }
    </script>
    Ricordati di gestire l'ID dell'articolo visualizzato / da modificare mediante una variabile di sessione

    ps: ovviamente non funziona con javascript disabilitato
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  10. #10
    Una volta fatto l'inserimento dell'annuncio, fa una serie di controlli, ciascuno in una pagina separata e invisibile, per verificare se sono state scelte determinate opzioni, per cui, nel migliore dei casi, comunque passa attraverso altre 2 pagine sempre con il response.redirect, prima di arrivare all'anteprima annuncio.

    In tutti i casi, se si clicca su Back, torna direttamente alla pagina con il form pieno.

    Ho provato anche a inserire una variabile che si valorizza con un dato che riceve via Request dalla pagina precedente a quella di inserimento annuncio, e che se vuota o uguale a 0, fa un redirect ad una pagina "PAGINA SCADUTA", variabile che si azzera nuovamente una volta fatto l'inserimento, ma anche in questo caso, non si fa fregare e ripropone il form vuoto.

    LA faccenda del javascript non l'ho ben capita.
    BigDaniel

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.