Anche io ho lo stesso problema.
Ho creato, all'interno della cartella /lib i file counter.php e cookiecounter.php.
Di seguito riporto i codici:
counter.php
Codice PHP:
<?php
interface DataProvider
{
public function storeVisits($visits);
public function readVisits();
}
class FileDataProvider implements DataProvider
{
const FILE_PATH = 'counter.txt';
private $fp;
public function __construct()
{
if(!file_exists(FileDataProvider::FILE_PATH))
{
$fp = fopen(FileDataProvider::FILE_PATH, 'w+');
fwrite($fp, '0');
fclose($fp);
}
$this->fp = fopen(FileDataProvider::FILE_PATH, 'r+');
}
public function readVisits()
{
return intval(file_get_contents(FileDataProvider::FILE_PATH));
}
public function storeVisits($visits)
{
ftruncate($this->fp, 0);
fseek($this->fp, 0);
fwrite($this->fp, strval($visits));
}
public function __destruct()
{
fclose($this->fp);
}
}
class SimpleCounter
{
private $provider;
public $visits;
public function __construct(DataProvider $provider)
{
$this->provider = $provider;
$this->visits = $this->provider->readVisits();
if($this->isValid())
{
$this->provider->storeVisits(++$this->visits);
}
}
protected function isValid()
{
return true;
}
}
?>
cookiecounter.php
Codice PHP:
<?php
class CookieCounter extends SimpleCounter
{
public function __construct($provider)
{
parent::__construct($provider);
}
public function isValid()
{
if(!isset($_COOKIE['counter_cookie']))
{
setcookie('counter_cookie', '1', time() + 3600);
return true;
}
return false;
}
}
?>
Nel file index.php ho incluso questo:
Codice PHP:
<?php
require_once 'lib/counter.php';
require_once 'lib/cookiecounter.php';
$counter = new CookieCounter(new FileDataProvider);
echo "<font color=#CDCDE2> Questa pagina è stata visitata ".$counter->visits." volte</font>";
?>
Quando vado a visualizzare la pagina index.php mi riporta l'errore: "Parse error: syntax error, unexpected T_STRING in /membri/kirilforsaken/lib/counter.php on line 11"
Qualcuno può aiutarmi?