• User Newbie

    script php per cache, solo quando non si è loggati

    salve a tutti, ho un sito in php-mysql, volevo un pò velociazzarlo(anche se lo è già) tramite uno script di cache

    ne ho trovato uno online e de il seguente :

    header:
    [PHP]<?php$url = $_SERVER["SCRIPT_NAME"];$break = Explode('/', $url);$file = $break[count($break) - 1];$cachefile = 'cached-'.substr_replace($file ,"",-4).'.html';$cachetime = 18000;

    if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) { echo "<!-- Cached copy, generated ".date('H:i', filemtime($cachefile))." -->\n"; include($cachefile); exit;}ob_start(); ?>[/PHP]footer:

    [PHP]
    <?php// Cache the contents to a file
    $cached = fopen($cachefile, 'w');fwrite($cached, ob_get_contents());fclose($cached);ob_end_flush(); // Send the output to the browser
    ?>[/PHP]

    il seguente script funziona bene, però ha un problema inserisce in cache anche elementi di quando si è loggati, mostrando quindi contenuti di chi è loggato a normali visitatori.

    ora volevo far attivare questo script solo quando non si è loggati, nel mio sito la condizione per verificare se un utente è loggato o meno è questa:

    [PHP] if($info["partner_registrato"] OR ($info["is_supremeadmin"] OR $info["is_admin_base"]))
    [/PHP]

    ho provato quindi a creare una condizione tipo questa :

    per la parte dell'header:

    [PHP]<?
    if($info["partner_registrato"] OR ($info["is_supremeadmin"] OR $info["is_admin_base"]))
    {} else {
    $url = $_SERVER["SCRIPT_NAME"];$break = Explode('/', $url);$file = $break[count($break) - 1];$cachefile = 'cached-'.substr_replace($file ,"",-4).'.html';$cachetime = 18000;

    if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) { echo "<!-- Cached copy, generated ".date('H:i', filemtime($cachefile))." -->\n"; include($cachefile); exit;}ob_start(); // Start the output buffer

    }
    ?>[/PHP]

    per il footer stessa condizione ma con il secondo blocco di codice , putroppo facendo dei test non funziona , dove sta il problema ?