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

    include di porzioni di pagina con cache

    ho realizzato la cache di porzione di pagina tramite
    http://freephp.html.it/articoli/view...p?id=160&pag=1
    ma ho due problemi.


    1. la porzione mi appare due volte!!

    2. la pagina si chiama page.php e presenta una porzione caricata se chiamo page.php?p=uno e una seconda porzione per page.php?p=due.
    Ebbene, ottengo che richiamando una qualsiasi delle pagine vengono mostrate tutte e due le porzioni nella cache, in quanto suppongo l'id sia solo page.php.

    come risolvere?

  2. #2
    Credo di aver capito la situazione.
    Devi duplicare il sistema di cache e fai salvare con due id differenti, uno per p=uno ed un altro per p=due.
    Se l'utente richiede p=uno restituisci la cache di p=uno altrimenti restituisci quella di p=due.

    In codice dovrebbe essere una cosa così (cmq poco raffinata ma dovrebbe funzionare).

    codice:
    $page_id_1 = "miapagina.php-puno";
    $page_id_2 = "miapagina.php-pdue";
    $timeout = 60;
    $page_id=(!empty($_GET['p'])&&$_GET['p']=='due')?$page_id_2:$page_id_1;
    $path = "./chached/".$page_id;
    
    if(!file_exists("./chached /"))
       mkdir("./chached /");
    
    if(file_exists($path) and filemtime($path) + $timeout > time()) {
       $result = readfile($path);
       if($result)
          exit();
    }
    
    set_time_limit(0);
    ob_start();
    
    if($page_id===$page_id_1){
      //codice per p=uno
    }
    else {
      //codice per p=due
    }
    
    $output = ob_get_flush();
    
    $fp = fopen($path, "w");
    fwrite($fp, $output, strlen($output));
    fclose($fp);
    Lungo le due rive del fiume gelato si stendeva la cupa e tetra foresta di abeti, dai quali il vento aveva appena spazzato il manto di brina. Nella luce crepuscolare quegli abeti neri e sinistri sembravano inclinarsi l'uno verso l'altro. Un silenzio minaccioso incombeva sul paesaggio, privo di qualsiasi segno di vita o di movimento, e desolato e freddo al punto da non poter ispirare che un solo sentimento: quello della più triste malinconia. E nello stesso tempo pareva che da quel paesaggio trapelasse una specie di riso, un riso ben più spaventoso di qualsiasi malinconia o tristezza, un riso tragico, come quello di una sfinge, un riso agghiacciante più della brina e che rammendava l'incombere minaccioso dell'ineluttabile. Era la saggezza potente e impenetrabile dell'eternità che irrideva alla vita, alla sua futilità e agli sforzi degli uomini.

  3. #3
    uhm....

    purtroppo il vero problema è che ho n pagine "p=" quindi...
    si potrebbe fare qualcosa del tipo

    se "invoco" "page.php?p=tre" ottengo

    un nome locale "page.php-tre" in automatico

    dove:
    - page.php è trovato nativamente come prima
    - $p è il get passato

    ?
    come fare?


    2. altro problema riscontrato è che il passaggio con USE_GET pare nn funzionare.... viene mostrata la cache e cmq 'ricalcolata' la pagina... apparendo 2 volte!

  4. #4
    Nessun problema

    $page_id lo imposti con $_SERVER['QUERY_STRING'] che se non sbaglio rappresenta l'url richiesto (togli qualche carattere che non può essere usato nel filesystem tipo ?, virgole, duepunti ecc)

    Tra obstart ed oboutput metti il codice normale della tua pagina (devi usare la versione originale dello script per caching).

    A questo punto viene messa in cache automaticamente ogni singola pagina richiesta!



    Dimenticavo.. fai attenzione però a cosa viene passato come querystring. Potrebbero farti attacchi di tipo DOS richiedendo valanghe di pagine con attributi GET diversi oppure con qualche formattazione particolare potebbero leggere e mandare in output file dall'harddisk.
    Devi controllare che tutto sia in ordine e limitare la risposta del server agli argomenti che hai previsto
    Lungo le due rive del fiume gelato si stendeva la cupa e tetra foresta di abeti, dai quali il vento aveva appena spazzato il manto di brina. Nella luce crepuscolare quegli abeti neri e sinistri sembravano inclinarsi l'uno verso l'altro. Un silenzio minaccioso incombeva sul paesaggio, privo di qualsiasi segno di vita o di movimento, e desolato e freddo al punto da non poter ispirare che un solo sentimento: quello della più triste malinconia. E nello stesso tempo pareva che da quel paesaggio trapelasse una specie di riso, un riso ben più spaventoso di qualsiasi malinconia o tristezza, un riso tragico, come quello di una sfinge, un riso agghiacciante più della brina e che rammendava l'incombere minaccioso dell'ineluttabile. Era la saggezza potente e impenetrabile dell'eternità che irrideva alla vita, alla sua futilità e agli sforzi degli uomini.

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.