Visualizzazione risultati 1 fino 9 di 9

Discussione: [PHP] problemi con reload e variabili

  1. #1
    L'avatar di lobster
    lobster non è connesso Utente
    Data registrazione
    05-09-2003
    Residenza
    ...nel 'Paese dei Balocchi'...
    Messaggi
    151

    Predefinito [PHP] problemi con reload e variabili

    Ciao a tutti!

    Ho un guestbook in un unico file .php con dati memorizzati in un file di testo.
    Il mio problema consiste nel fatto che, dopo aver compilato il form e inviato i dati, vorrei evitare che venissero memorizzati i dati inseriti ogni volta che viene fatto il reload della pagina!

    Il metodo che uso è POST.

    Ho provato a scrivere unset($_POST['nick']) per fare "dimenticare" il valore della variabile inm modo da poter poi dare un IF per non memorizzare dati doppi...

    Ma non va!

    Qualcuno mi sa aiutare?

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Avevo anch'io il tuo problema... l'ho risolto con una variabile di sessione: la imposti nella pagina del modulo per effettuare l'inserimento, e la disimposti quando avrai completato l'inserimento. Cosi' non ti resta altro che chiudere in questo test l'esecuzione dello script:
    Codice PHP:
    if (isset ($_SESSION["protected"]))
    {
    // esegui qui l'inserimento
    }
    unset (
    $_SESSION["protected"]);
    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    L'avatar di lobster
    lobster non è connesso Utente
    Data registrazione
    05-09-2003
    Residenza
    ...nel 'Paese dei Balocchi'...
    Messaggi
    151

    Predefinito

    il problema è che io voglio dare all'utente di inserire anche più messaggi, solo non voglio che compaia la finestra del "senza inviare nuovamente i dati"...

    ho provato con le sessioni (per quello che posso capirci...) solo che dopo l'invio di un messaggio non posso inviarne un altro...

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da lobster
    il problema è che io voglio dare all'utente di inserire anche più messaggi, solo non voglio che compaia la finestra del "senza inviare nuovamente i dati"...

    ho provato con le sessioni (per quello che posso capirci...) solo che dopo l'invio di un messaggio non posso inviarne un altro...
    Purtroppo non mi è molto chiaro il tuo problema, provo ad interpretarlo dicendo che ti servono almeno tre pagine:

    - nella prima crei il modulo di inserimento dati e imposti due variabili di sessione: una ("protected") con la quale indichi che la prossima pagina sarà un inserimento, e un'altra ("session") con la quale indichi che inizi la sessione di inserimento dei messaggi
    - la seconda pagina viene chiamata dalla prima, qui disimposti la sessione "protected" e visualizzi un messaggio del tipo "Vuoi inserire altri messaggi?": dovrai quindi richiamare la prima pagina se l'utente ti dirà di sì, in caso contrario passerai alla terza
    - la terza pagina è, appunto, la chiusura della sessione di inserimento, qui disimposti la variabile "session"

    Spero di aver compreso il tuo problema (e di averti spiegato bene senza riempire di codice il post la soluzione)... stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  5. #5
    L'avatar di lobster
    lobster non è connesso Utente
    Data registrazione
    05-09-2003
    Residenza
    ...nel 'Paese dei Balocchi'...
    Messaggi
    151

    Predefinito

    ciao!

    si, ho capito il tuo ragionamento e sono certo che potrebbe essere una valida alternativa.
    Per quanto mi riguarda vorrei avere tutto lo script in un solo file (modulo+script+mostra messaggi) e i messaggi memorizzati in un file di testo (quindi esterno al codice).

    Ovviamente il discorso è che, quando ho inviato i dati del form, questi mi restano memorizzati e continuano ad essere spediti a ogni reload.
    La soluzione potrebbe essere SESSIONE o COOKIE ma in entrambi i casi "mi chiudo fuori" quando lo attivo e di conseguenza impedisco all'utente di inserire altri messaggio oltre a quello già inviato.
    Potrei impostare una scadenza, ma anche questo serve a poco, perchè i dati sono comunque sempre li, pronti ad essere ripubblicati non appena scade la sessione o il cookie...

    Il cosa migliore è distruggere i dati dopo la pubblicazione (in modo che restino memorizzati solo nel file di testo e non nella memoria del server (spero di non aver detto una cavolata...).
    Purtroppo mi pare che io non sia il solo ad avere questo tipo di problema e anche in Rete non sono riuscito a trovare una soluzione valida a questo inconveniente.
    Anzi! Ho notato che anche un famoso sito che offre tagboard ha il mio stesso problema di reload e ripublicazione di messaggi "doppi" e come unico "contentino" offre la possibilità all'utente di cancellare i messaggi appena inseriti... capirai che soddisfazione...

  6. #6
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da lobster
    ... si, ho capito il tuo ragionamento e sono certo che potrebbe essere una valida alternativa.
    Per quanto mi riguarda vorrei avere tutto lo script in un solo file (modulo+script+mostra messaggi) e i messaggi memorizzati in un file di testo (quindi esterno al codice). ...
    Beh, te la puoi cavare con quale if / else if / else if / else e le funzioni isset() e unset() ...

    Per il resto, però, non so cosa dirti: a me risultava che i dati inviati via POST non si propagano ad ogni rinvio della pagina, e che se ne facevi il reload la maggior parte dei browser (IE e Firefox compresi) CHIEDE all'utente se vuole re-inviare le informazioni. Certo, questo script dovrebbe riuscire a gestire il comportamento di quei "disperati" che, "per non saper né leggere né scrivere", cliccano SI...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  7. #7
    L'avatar di lobster
    lobster non è connesso Utente
    Data registrazione
    05-09-2003
    Residenza
    ...nel 'Paese dei Balocchi'...
    Messaggi
    151

    Predefinito

    E' appunto quella finestrina li che vorrei evitare!
    Oltre che, ovviamente, all'invio doppio dei dati a ogni reload...

    Bho...
    A sto punto lascio le cose come stanno e al limite ci metterò un qualche tipo di blocco a tempo...

    Grazie lo stesso! ^_^

  8. #8
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Potresti fare un controllo prima di scrivere sul file. Controlli se il messaggio mandato è identico all'ultimo spedito, se sono diversi scrivi il file.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  9. #9
    L'avatar di lobster
    lobster non è connesso Utente
    Data registrazione
    05-09-2003
    Residenza
    ...nel 'Paese dei Balocchi'...
    Messaggi
    151

    Predefinito

    Si! Ci avevo pensato anche io, ma a me interessava anche eliminare quella dannata finestrella! ^_^

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •