CrazyCat Programming Factory
rendre internet plus accessible
 

Livre d'or sans base de données

Logo phpUn livre d'or sans base de données, grâce à la manipulation des fichiers que nous offre PHP ATTENTION : chez certains hébergeurs, pour que ce script marche il faut donner les droits en accès en lecture et écriture en mettant le CHMOD sur 644. Partie Html pour le formulaire, nom du fichier : livredor.htm
<html>
<head>
<title>Livre d'or</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>
<body>

<h1>Le Livre d'OR</h1>
<!-- On commence le formulaire, pour le resultat on invoquera la page "message.php" grâce à l'attribut action de la balise form -->
<form action="message.php" method="post">
<div>
<fieldset><legend>Votre Nom</legend><input type="text" name="pseudo" /></fieldset>
<fieldset><legend>Postez un message pour le livre d'or</legend>
   <textarea cols="66" rows="6" name="message"></textarea>
</fieldset>
<input type="submit" />
<!-- On va créer un lien pour ceux qui veulent consulter le livre d'or sans poster dedans -->
<p>
Pour consultez simplement le livre d'or <a href="consultezlo.php">cliquez ici</a>
</p>
</div>
</form>
<!-- Notre formulaire est fini on ferme la balise form -->

</body>
</html>
Partie PHP après validation du formulaire, fichier invoqué "message.php"
<?php
// Pour éviter qu'une unique personne poste 50 fois dans le livre d'or, on va insérer un cookie
setcookie("ip",$_SERVER['REMOTE_ADDR'],time() .3600*60*90);

// Si le cookie est égale à l'ip du client alors on le stop
if(isset($_COOKIE['ip']) && $_COOKIE['ip']==$_SERVER['REMOTE_ADDR'])
{
        echo "<h1>Vous ne pouvez émettre qu'un seul avis et vous l'avez déjà donné !</h1>";

        // On stop le script
        exit;
}
// Mettons le (future) fichier dans une variable
$commentaires="messages.txt";

// assignons nos 2 variables du formulaire et on en profite pour les protégers des balises HTML
$pseudo=htmlentities($_POST['pseudo']);
$message=htmlentities($_POST['message']);

// Pensons au retour à la ligne et au stripslashes pour la variable $message
$message=stripslashes(nl2br($message));

// On met en place quelques conditions pour les cellules (nom et message)
// On vérifie avant tout si le fichier existe si ce n'est pas le cas on le crée
if(!is_file($commentaires))
{
        $verif=@fopen($commentaires,"w ");
}

// On vérifie que le login ou le message ne soient pas vide
elseif (trim($message)=="" || trim($pseudo)=="")
{
        echo "Vous devez remplir tous les champs ! <a href=\"livredor.htm\">Retour sur le livre d'or</a>";
       
        // On sort du script !
        exit;
}

// Après ces quelques vérification d'usage on passe  à l'exécution de ce formulaire

       
        // Si ok on ouvre en écirture-enregistrement du fichier message.txt
        $verif=@fopen($commentaires,"r ");
               
        // On analyse les anciennes données et on les stocks
        $stock=@fread($verif,filesize($commentaires));
       
        // On met la date dans une varialbe
        $date=date ("d/m/Y à H:i");
       
        // On paramère le tout dans la variable $opinion
        $opinion="<b>".$pseudo."</b> a écrit le : ".$date."\n".$message."\n<hr />";
       
        // On remet le curseur du fichier en début de ligne
        rewind($verif);
       
        // On insère le nouveau commentaire
        fputs($verif,$opinion." \n".$stock);
       
        // On clore le fichier
        fclose($verif);
       
        // On affiche le tout
        readfile($commentaires);


?>
On crée une seconde page PHP (consultezlo.php) pour ceux qui veulent consulter le livre d'or sans poster dedans.
<?php
$consultez="messages.txt";
readfile($consultez);
?>

©2006-2019 Geek Zone | eggdrop.fr | zeolia.net