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

    [php] ma quando si svuota la cache???

    Ho un problema.....

    Nel mio sito ho gestito una specie di portale che consente l'apertura di alcuni file per i clienti.
    I file sono o generati da php (file excel) o presi da delle directory e sputati in output tramite l'utilizzo dell'header adeguato (file pdf).

    Il problema è che spesso e volentieri mi propone i file precedenti... insomma mi propone magari il file pdf generato il giorno prima...

    Se cancello la cache e lo ricarico tutto ok...

    non c'è qualche comando che mi faccia cancellare la cache su quel file.... o che mi forzi a caricarlo e non prenderlo nella cache?

    :rollo:

  2. #2
    Utente di HTML.it L'avatar di Nix82
    Registrato dal
    Oct 2001
    residenza
    Mussolente (VI)
    Messaggi
    1,122
    innanzitutto dipende da browser si usa...e poi non è che puoi svuotare la cache a un utente così...
    e comunque PHP è lato server, quindi nisba
    La cultura è il nostro passaporto per il domani. Il futuro appartiene alle persone che si preparano oggi.
    Martin Luther King

  3. #3
    Quindi col php non posso fare proprio niente....


    E col browser cosa posso fare? c'è qualche configurazione che posso raccomandare alla mia clientela per evitare questo problema?



    Ma ora mi viene un dubbio/soluzione...

    Ma quand'è che il browser decide di andare a prendere una pagina nella cache piuttosto che caricarla????

    quando ha gia l'url nella cache?????

    perchè se fosse così potrei aggiungere un parametro fittizio per cambiare l'url....

    mi spiego se ho la pagina www.prova.php
    e lui la ritrova la prende in cache....
    ma se metto www.prova.php?parametro = 'AA'
    e tutte le volte cambio parametro me la richiama dalla cache???


    vediamo se qualcuno sa aiutarmi


    grazie

  4. #4
    Codice PHP:
    <?php
    // Date in the past
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

    // always modified
    header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");
     
    // HTTP/1.1
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0"false);

    // HTTP/1.0
    header("Pragma: no-cache");
    ?>
    http://php3.de/header
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    scusa l'ignoranza....

    ma c'ho capito poco... io se voglio che me l'aggiorni sempre devo mettere:


    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");


    e basta?

  6. #6
    Originariamente inviato da ilguardiano
    scusa l'ignoranza....

    ma c'ho capito poco... io se voglio che me l'aggiorni sempre devo mettere:


    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");


    e basta?
    se t'ho postato 5 righe invece di una sola ci sara' pure un motivo


    metti a nnizio pagina quello che t'ho scritto e tanti saluti alla cache
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    ok... grazie tante

  8. #8
    ok.. ma questa soluzione non va bene nei miei casi... perchè io non sparo in output html.... ma modifico l'header per mandare applicazioni excel o pdf....

    e mi da un casino.....

    la mia idea di passare il parametro fasullo... qua puo' andare bene?

  9. #9
    tu hai parlato di link con richiamata della cache ... e se di link parli, parli di output HTML ... quindi va bene quello che ho scritto io, ma devi metterlo prima di ogni altra cosa, anche prima dell' html ... quello svuota la cache ... oppure non ho capito cosa devi fare
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  10. #10
    Scusa per il ritardo sulla risposta.... ma mi son fatto 5 giorni di ferie...

    Tornando al problema....

    ti mando il codice della pagina getfile che butta in output un file.
    In dipendenza dell'estensione di detto file, mette l'header per i file d'excel o di Acrobat Reader o immagini e così via....

    Mettendo quelle istruzioni che mi hai detto ha inizio script mi dà errore... (io presumo sia un conflitto tra quelle istruzioni e l'header per le applicazioni)

    Il discorso dell'url modificato era un accrocchio che stavo pensando di fare per dire al browser che la pagina che apriva non l'aveva mai aperta... di modo di non prenderla nella cache...

    Spero di essere stato + chiaro....

    Ecco il codice

    <?php
    session_cache_limiter('public');
    session_start();
    session_register("login");
    session_register("password");
    session_register("database");
    $conn = OCILogon($login, $password, $database);
    if($conn == 0) die("<msg_centrale>Connessione fallita</msg_centrale></pagina>");

    //$file = file da aprire
    //$files = posizione dir + nome file


    $file = basename($files);

    $default_dir = "X:/Web/XXRepXXortXX/".$login;
    //controllo che i file che va ad aprire appartengano alla sua sottodirectory
    if (substr($files,0,24)!=substr($default_dir,0,24) ) die ("<msg_centrale>Catturato Furbettone</msg_centrale></pagina>");


    if(!file_exists($files)) {
    echo "Spiacente, i dati inviati non sono corretti;";
    }
    else {

    $ext = substr(strrchr($files, "."), 1);
    //$ext= substr($files,-3);

    if (strtoupper($ext) == 'PDF') header("Content-Type: application/pdf");
    if (strtoupper($ext) == 'XLS') header("Content-Type: application/vnd.ms-excel");
    if ((strtoupper($ext) == 'GIF')) header("Content-Type: image/gif");
    if ((strtoupper($ext) == 'JPG')) header("Content-Type: image/jpeg");
    if ((strtoupper($ext) == 'TXT')) header("Content-Type: text/html");
    if ((strtoupper($ext) == 'TIFF')) header("Content-Type: image/tiff");
    if (strtoupper($ext) == 'DOC') header("Content-Type: application/msword");

    if ((strtoupper($ext) == 'ZIP'))
    {
    header("Content-Type: Application/octet-stream");
    header("Content-Disposition: attachment; filename=".$file);
    header("Content-Length: ".filesize($files));
    header("Content-Transfer-Encoding: binary");
    }


    readfile($files);
    }
    ?>



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