Bonjour,
j'ai créé un système de cache rudimentaire pour un petit site, mais j'ai un problème avec la fonction flock() .
On m'a dit que le verrouillage étai mal placé sur ce script, que j'avais locké au mauvais endroit. mais je ne vois pas...

Voici le script:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
<?php
// SYSTEME DE CACHE
 
// Début du CACHE
$dCache = './cache/cache_';
$url = trim(strip_tags(md5($_SERVER['REQUEST_URI'])));
$fCache = $dCache.$url; 
 
if(@filemtime($fCache) < time()-360) // time()-(3600*24*365.25) Un an
{ 
  ob_start();
 
 
 
	// PAGE A METTRE EN CACHE ICI
 
 
 
	// Fin du CACHE
  $cCache = ob_get_contents();
  ob_end_flush();
 
  $fd = fopen($fCache, 'wb'); // on ouvre le fichier cache
 
  if (flock($fd, LOCK_EX))  // On place un verrou exclusif
  {
		fwrite($fd, $cCache);
		flock($fd, LOCK_UN); // On libère le verrou exclusif/partagé
  }
	else 
	{
		echo "Impossible de verrouiller le fichier !";
	}
		fclose($fd);
} 
else 
{ 
  include($fCache);
}
?>