Visualizzazione risultati 1 fino 11 di 11

Discussione: PHP - disabilitare il refresh

  1. #1
    Guest

    Unhappy PHP - disabilitare il refresh

    Chiedo AIUTOO!!, ho una pagina in php che aggiunge delle righe ad un file di testo.
    Facendo il refresh della pagina ottengo però che si aggiunge una riga, e questo non vabbene!
    Ho provato usando

    if (isset($una_var_della_pag_prima))
    {esegui codice che aggiunge le righe al file di testo}
    else
    {redirect ad un'altra pagina}

    ed aggiungendo i tag html:
    <meta http-equiv="Expires" content="Mon, 26 Jul 1997 05:00:00 GMT">
    <meta http-equiv="Cache-Control" content="post-check=0, pre-check=0">
    <meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate">
    <meta http-equiv="Pragma" content="no-cache">

    e
    ma in questo modo non si ottinene niente.
    Sapete dirmi un modo per risolvere il problema senza usare i cookie?

  2. #2
    Guest

    Predefinito

    Devi fare un redirect della pagina che esegue la scrittura, attrverso un
    header("Location: pagina.php");

    al posto di 'pagina.php' metti il nome di una tua pagina che informa dell'avvenuta scrittura.


    Ciaoooooo!!!!!

  3. #3
    Ospite Guest

    Predefinito

    nah, niente da fare, il problema di header() è che il redirect avviene sì, ma l'url rimane il solito (almeno in IE), quindi se fai il refresh ti ritrovi con lo stesso problema (almeno questo mi è successo con file xml). quello che ti consiglio è uno script minchia in java, oppure un banalissimo

    <meta http-equiv="refresh" content="timeout;url=path/nomepagina.ext">

    dove timeout è un int indicante il numero di secondi per il refresh (0 se deve essere immediato) e path è il path, relativo o assoluto, e ovviamente il resto è il nome della pagina (php, xml, html...) ..deprecata forse, ma funzionante

    ciao

  4. #4
    Guest

    Predefinito

    se non vuoi utilizzare i cookie, puoi servisrti dell'array $_SESSION

    innanzitutto all'inizio della pagina, prima di qualsiasi output dai un

    Codice PHP:
    session_start();
    poi
    Codice PHP:
    if (isset($_SESSION['gia_scritto']))
    header("location:http://pagina_di_errore_gi&agrave;_scritto");
    else
    {
    //codice di aggiunta stringa a file
    $_SESSION['gia_scritto']=true;
    }
    tieni conto però che il controllo da i risultati aspettati solo per tutta la sessione corrente, quindi se chiudi il browser e lo riapri la var $_SESSION['gia_scritto'] viene eliminata

    mavericck

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da booh
    nah, niente da fare, il problema di header() è che il redirect avviene sì, ma l'url rimane il solito (almeno in IE), quindi se fai il refresh ti ritrovi con lo stesso problema (almeno questo mi è successo con file xml). quello che ti consiglio è uno script minchia in java, oppure un banalissimo

    <meta http-equiv="refresh" content="timeout;url=path/nomepagina.ext">

    dove timeout è un int indicante il numero di secondi per il refresh (0 se deve essere immediato) e path è il path, relativo o assoluto, e ovviamente il resto è il nome della pagina (php, xml, html...) ..deprecata forse, ma funzionante

    ciao
    Si ma io intendevo la redirezione verso un'altra pagina, non la stessa ;)


    Ciaooo!!!!!

  6. #6
    Ospite Guest

    Predefinito

    eh? ma che dici, guarda che quel meta tag può compiere il redirect a qualsiasi altra pagina..non lasciarti ingannare dalla parola refresh.

    ciao

  7. #7
    Guest

    Predefinito

    Ehm... non mi stai capendo, io mi riferisco sempre alla mia soluzione!

    cioè io ho suggerito che nella pagina, per esempio, inserisci.php dove appunto è presente lo script che scrive sul txt, a scrittura avvenuta può usare header("Location: pagina.php"); per puntare su quest'altra pagina, così da evitare doppi inserimenti causa del refresh del browser.


    Ciaooo!!!!!!

  8. #8
    Ospite Guest

    Predefinito

    ma che dici, io ho capito, e ho dato una mia soluzione diversa, perché php mi aveva dato problemi a volte con la funzione header...che il redirect poi sia ad una pagina html o php non fa alcuna differenza..anzi, probabilmente dopo aver aggiunto qualcosa vorrà linkare alla home o alla pagina precedente probabilmente in html o xhtml


    p.s.: cmq questa frase "Si ma io intendevo la redirezione verso un'altra pagina, non la stessa ;)" palesa il fatto che tu pensassi che il meta tag scritto da me non potesse reindirizzare verso un'altra pagina, quindi non vedo cosa non dovrei aver capito, visto che la mia risposta precendete si basava su questa tua considerazione.

  9. #9
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    [OT]Booh sei l'uomo polemica!!![/OT]
    Quella detta da debug è la soluzione migliore...
    A quanto ho capito problema di sartocarlo è che col redirect sulla stessa pagina le variabili post sono "salvate" e quindi lo script le riesegue.
    Debug suggerisce che dopo ogni scrittura sul file di testo avvenga un redirect in un'altra pagina che conferma la scrittura, in modo da saltare il problema.
    Un'altra soluzione sarebbe inviare le variabili se possibile via get e fare il redirect sulla pagina iniziale.
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  10. #10
    Guest

    Predefinito

    maverickweb mi ha dato la soluzione migliore! Grazie a tutti comunque. Con il redirect è scomodo passare informazioni ad altre pagine. Poi, se uno schiaccia il pulsante indietro viene comunque rieseguito il codice di scritture e poi fa un altro redirect, quindi in questo modo ho risolto poco.
    Bisogna invece tener traccia che ho già fatto la scrittura!
    usando $_SESSION funziona tutto benissimo.

  11. #11
    L'avatar di Taitaonline
    Taitaonline non è connesso Utente storico
    Data registrazione
    11-03-2004
    Residenza
    Zena
    Messaggi
    3,317

    Predefinito

    Problema risolto..... chiudo.
    ...Il grano che nasce e l'acqua che va, è un dono di tutti, padroni non ha...
    My Site FAQ di AlterVista Regolamento di AlterVista

Regole di scrittura

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