Le module d’annotation
$secret = "zap";
$mode = "a";
 
// the module can’t be called by itself
if ( basename($_SERVER[’PHP_SELF’]) == "annotate.php") {
  exit;
}
 
// if the password is correct we overwrite
if ($password == $secret) { 
  $mode = "w";
  $fp = fopen (basename($PHP_SELF) . ".comment", $mode);
  fwrite ($fp, $message);
  fclose ($fp);
}
// if there is a message we append it to a file called file.comment
// make sure that file.comment is writeable by the server)
if ($message) {
  /* uncomment the next two lines to strip out html from input */
  /* $name = strip_tags($name); */
  /* $message = strip_tags($message); */
  $name = StripSlashes($name);
  $message = StripSlashes($message);
  $message = ereg_replace("\n\n", "\n<P>", $message);
  $date = date("l, F j Y, H:i");
  $message = "<B>$name </B> -- $date<P> $message <BR><HR>";
  $fp = fopen (basename($PHP_SELF) . ".comment", $mode);
  fwrite ($fp, $message);
  fclose ($fp);
  @readfile(basename(($PHP_SELF . ".comment")));
}
 
A retenir:
- 
Pour écrire dans un fichier, il faut:
- 
que le fichier appartienne à vous, ou encore à “nobody” (le serveur tourne sous ce nom) ou alternativement qu’il soit “world writeable” (chmod 666)
- 
fopen(<nom du fichier>, mode)
 
 ouvre un fichier et retourne un “handle”
- 
fwrite (<handle>, “string”)
 permet d’écrire (il existe d’autres fonctions pour cela)
- 
fclose (<handle>)
 ferme le fichier (IMPORTANT)
- 
@readfile (<file>)
 insére le contenu d’un fichier