Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26

Discussione: Problema logico

  1. #1
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363

    Problema logico

    Situazione 1:
    Immaginiamo di avere una pagina A con un form che chiama la stessa pagina A che controlla i dati e crea un record con i dati inseriti.

    Ogni volta che viene premuto F5, la pagina A cerca di creare un nuovo record.

    Oppure, se continuo nella navigazione, una volta che viene premuto il tasto "indietro", arrivando nella pagina A, la pagina cercherà di creare un nuovo record.

    Situazione 2:
    La pagina A contiene un form di aggiunta/modifica/correzione record. Premendo il tasto "invia", viene chiamata una pagina B che controlla i dati, li salva se sono corretti ed effettua un redirect ad un'altra pagina.

    Se i dati invece sono errati, la pagina B effettua il redirect verso la pagina A.

    In questo modo i tasti "indietro" e "avanti" non intercetteranno mai la pagina B, quindi non ci saranno modifiche involontarie ai dati.

    Purtroppo però l'unico modo che mi viene in mente per mandare i dati errati dalla pagina B alla pagina A è attraverso variabili di sessione. Se lo stesso utente effettua due modifiche da due finestre del browser, le variabili di sessione sono sempre le stesse e penso che tutto si incasini.

    Avete qualche suggerimento da darmi?

  2. #2
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,854
    puoi controllare che la sessione non sia già aperta, se lo fosse significa che si sta usando già una pagina per navigare e che se ne sta aprendo un altra percui puoi per esempio chiudere la seconda finestra del browsers

  3. #3
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Originariamente inviato da rixx
    puoi controllare che la sessione non sia già aperta, se lo fosse significa che si sta usando già una pagina per navigare e che se ne sta aprendo un altra percui puoi per esempio chiudere la seconda finestra del browsers
    No, così non va bene: immagina che sei qui sul forum, stai leggendo più di un thread e vuoi rispondere a 2 di questi. Facendo come dici tu significa che se ho due risposte in due finestre separate, cliccando su "invia" perdo l'altra!

  4. #4
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,854
    anche se distruggi la sessione ogni volta che passi da A a B?

  5. #5
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Il che equivarrebbe ad un logout... Anche questo da evitare...

  6. #6
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,854
    non propriamente ad un logout semplicemente la requesti controlli che non ci siano altre finestre aperte se non ce ne sono la ricostruisci

  7. #7
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    E se ci sono?
    Non capisco...

  8. #8
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Comunque mi basterebbe sapere come fate voi a garantire che non vengano effettuate scritture multiple a causa della pressione dei tasti "avanti" e "indietro" nel browser...

  9. #9
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,854
    dunque cè A B C
    a---b---c
    |---a
    in a abbiamo ad esempio la sessione id utente
    la passiamo a b che controlla se i valori sono giusti e fa il redirect a seconda dei casi
    se io apro un altra finestra e processo di nuovo b tramite un session creato e distrutto in b controllo che non si stia già processando o sia già stata processata b se è cosi la chiudo
    è un ipotesi non sono sicuro che funzioni

  10. #10
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,854
    Originariamente inviato da longline
    Comunque mi basterebbe sapere come fate voi a garantire che non vengano effettuate scritture multiple a causa della pressione dei tasti "avanti" e "indietro" nel browser...
    fai scadere la pagina

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 © 2026 vBulletin Solutions, Inc. All rights reserved.