Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    refresh una sola volta (senza js)

    Come posso fare il refresh della pagina una sola volta senza ricorrere a js? Ho cercato per molto tempo ma trovo solo persone con la mia stessa domanda che alla fine ci rinunciano o usano js Come risposta accetto anche un "non si può" perchè dopo tutti questi anni voglio saperlo.

    p.s. ovviamente non vanno bene i meta refresh o quelli ciclici ogni x secondi

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Puoi richiamare la stessa pagina passandogli una variabile in GET con cui verificare, attraverso una condizione, se il refresh è già stato eseguito.

    All'inizio della pagina metti uno script tipo:
    Codice PHP:
    <?php
    if(!isset($_GET['refreshed'])){
      
    header("Location: http://www.tuosito.com/stessapagina.php?refreshed=true");
      exit;
    }
    ?>
    Puoi anche farlo analogamente, ma in maniera più "pulita", con le variabili di sessione:
    Codice PHP:
    <?php
    session_start
    ();
    if(!isset(
    $_SESSION['refreshed'])){
      
    $_SESSION['refreshed'] = true;
      
    header("Location: http://www.tuosito.com/stessapagina.php");
      exit;
    }
    ?>
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Capisco la logica ma non come possa funzionare nel mio caso. Diciamo che una persona voglia il refresh solo la prima volta che va sul sito. Ho provato cosi
    codice:
    if(!empty($_SESSION['refreshed'])){
    $_SESSION['refreshed'] = "qualsiasicosa";
    header("Location: http://tuosito.com");
    exit;
    }
    In pratica invece di isset metto empty in questo modo se è la prima volta che visito il sito la sessione è sicuramente vuota. Da qui la riempio con "qualsiasicosa" e faccio partire l'header. La pagina dopo il refresh non ne farà altri perchè la sessione non è più empty. Ma non funziona.

    "Questa pagina non reindirizza in modo corretto"

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Con isset ho fatto qualche prova è funziona.

    Se vuoi usare empty dovresti comunque togliere il NOT (!).
    Cioè se $_SESSION['refreshed'] è vuoto allora significa che la pagina deve ancora fare il refresh. Quando è pieno invece va avanti senza considerare quella condizione.

    Con isset va invece messo il NOT.

    Controlla inoltre se hai messo session_start() all'inizio dello script.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Funziona adesso anche a me. Ho usato la tua stessa logica ma non ho potuto usare le sessioni. Sto agendo nel template smarty su uno script encodato con ioncube che quindi non posso vedere nè modificare. Sono sicuro che li dentro ci sia un session destroy perchè con le sessioni non c'era verso. Mi sono adattato usando altre variabili che avevo a disposizione.

    Ti ringrazio

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.