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

    Agire sulla cache con PHP. E' possibile?

    Ho una domanda da un milione di dollari. Ho già cercato in lungo e in largo sul web ma non riesco a trovare una risposta.

    Ho costruito il sito di un fotografo, tutto in PHP e flash. Il sito è strutturato in modo che ogni volta che si preme su un pulsante del menu e si accede ad una nuova pagina (che poi è sempre index.php ma con variabili diverse), il codice carica una foto diversa ogni volta come sfondo.
    Il codice funziona perfettamente

    Codice PHP:
    $file_name rand(16);
    $dir_nmb rand(13);
    $dir '../story'.$dir_nmb.'/';
    echo 
    '<body>
    [img].$dir.$file_name.[/img]'
    //e poi continua 
    Solo che questa cosa funziona solo se è la prima volta che si utilizza il tasto del menu, perchè alle successive la maledetta cache entra in azione e lega sempre la stessa foto allo stesso pulsante, invece di caricarne una casuale, come vorrei.
    Come faccio ad evitare questo spiacevole inconveniente?
    Grazie e ciao a tutti.

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2000
    residenza
    Edinburgh
    Messaggi
    401
    usi srand prima di rand?

  3. #3
    no. qual'è la differenza?

  4. #4
    Utente di HTML.it L'avatar di Leo15
    Registrato dal
    Sep 2005
    Messaggi
    307
    Mi sembra strano che sia un problema di cache, se le immagini si chiamano tutte in maniera diversa. Sarebbe un problema se generassi dinamicamente le immagini, ma dallo script non sembra.
    Allo stesso tempo mi sembra strano che il problema sia dovuto all'inizializzazione di rand() con srand(), perchè dalla versione 4.2 in poi dovrebbe farlo in automatico.
    Il codice html generato per il menu è sempre lo stesso? Oppure effettivamente lo script richiama immagini casuali?
    La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
    Isaac Asimov

  5. #5
    il menù è un flash con i seguenti codici

    primo bottone

    on(release) {
    getURL("../index.php?id=0");
    }

    secondo bottone

    on(release) {
    getURL("../index.php?id=1");
    }
    terzo bottone

    on(release) {
    getURL("../index.php?id=2");
    }

    la variabile id non ha nulla a che fare con il caricamento delle immagini, ma serve solo a disporre i div successivi, per cui non capisco proprio dove stia il problema dato che se, ad esempio, ricarico index.php?id=0 usando il refresh allora tutto funziona e mi carica una nuova immagine se invece ricarico la stessa url usando il tasto del menu, mi mantiene la stessa immagine.

    p.s. comunque per sicurezza ho provato ad aggiungere srand() prima ma non funziona lo stesso.
    dici che è un problema del flash?

  6. #6
    Utente di HTML.it L'avatar di Leo15
    Registrato dal
    Sep 2005
    Messaggi
    307
    Potrebbe effettivamente essere un problema di cache allora.
    Prova ad inserire qualche header per forzare il NON utilizzo della cache.
    La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
    Isaac Asimov

  7. #7
    ho cominciato da non moltissimo ad utilizzare php. enon sono molto esperto. cosa significa esattamente quello che hai scritto?
    sembra proprio quello che cercavo di fare, ma cosa vuol dire mettere un header che forzi il NON utilizzo della cache?
    Puoi farmi un esempio per favore?
    Grazie molte del tuo aiuto


    edit: intendi una cosa simile?

    <meta http-equiv="Cache-Control" content="no-cache">
    oppure
    header("Cache-Control: no-cache");

    però in questo modo anche le immagini già caricate me le ricarica... uff... temo non ci sia soluzione.

  8. #8
    razie ho risolto modificando i codici dei bottoni in questo modo

    on(release) {
    rnd = random(999999);
    getURL("../index.php?id=0&rnd=" + rnd, "_self");
    }

    perchè ho pensatoche il flash leggendo lo stesso url presente nella pagina non lo ricaricasse, ma facendo in questo modo l'url è sempre diverso e ricarica tutto.
    Grazie comunque a tutti dell'aiuto

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2000
    residenza
    Edinburgh
    Messaggi
    401
    Ah... stavi usando Flash, mi sembrava strano che solo in HTML succedesse quel problema!

    Comunque spiego un attimo il mio commento su srand. Mi è capitato di vedere qualcuno che usava srand con un seed fisso... tipo srand(12345). Questo ovviamente gli portava a reinizializzare il generatore di numeri random sempre allo stesso modo tutte le volte e quindi ad ottenere sempre la stessa sequenza di valori.

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.