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