La Communauté Webmaster  forum rss


  Forum-webmaster
  Technique - programmation
  HTML / CSS / XHTML
(Modérateurs: Shain, Netah, Lilian, lauryv, ToToMaStEr)
  Commentaires sans bases de données
« Précédent Suivant »
Pages: [1] Descendre
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
  Auteur  Sujet: Commentaires sans bases de données  (Lu 3434 fois)
Commentaires sans bases de données
« sur: le 26-11-2012 a 18:28:55 »
Flomaluso
Membre récent
*

Hors-Ligne

Messages: 17





Voir le Profil
Répondre avec citation

Bonsoir tout le monde,

Voila, je vous expose mon problème, j'ai commencé il y a quelque temps mon premier site, mais n'étant vraiment qu'un débutant, j'ai vraiment beaucoup de mal. Et je voulais mettre un système de commentaire sur mon site, mais je n'ai jamais réussi a utiliser ou a programmer comme il le faut, je ne sais pas, une base de donnée. J'ai donc utilisée un script en PHP qui enregistre les commentaires dans un fichier .txt. Le problème et que je voudrais maintenant mettre un deuxième et par la suite, plusieurs systeme de commentaires sur la même page.

Voici le script :

<?php
        //*************************
    //Définitions des variables
    //*************************
    $debug = 1; //0=off / 1=on
    $notification_mail = 1; //0=non / 1=oui
    $adresse_mail = "monadressemail@live.fr";
    $provenance_mail = "From: lenomquonveut@live.fr";
    //****
    //Main
    //****
    //Récupère le commentaire
    $commentaire = $_POST['commentaire'];
    //Extrait le nom de la page et l'utilise pour le nom du fichier de sauvegarde en ".txt"
    $script_name = $_SERVER['SCRIPT_NAME'];
    $pos = strrpos($script_name, "/");
    $path = 'vacancesaintaygulf.txt';
    if($debug == 1)
        //Gestion du cookies
    if(!isset($pseudo))
    {
    $pseudo = $_POST['pseudo'];
    if($pseudo == "")$pseudo = "Votre prénom = )";
    if($debug == 1)
    echo "";
    }
    else
    if($debug == 1)
    echo $pseudo;
    //Enregistre et affiche les commentaires
    if(isset($_POST['submit']))
    save_comment($path,$pseudo,$commentaire);
    else
    //Affiche les commentaires
    if(file_exists($path))
    echo affiche_commentaires($path);
    //Affichage du formulaire
    echo '
    <form enctype="multipart/form-data" name="comment_form" action="'.$_SERVER['PHP_SELF'].'" method="POST">
    <br />Votre Prénom<br />
    <input name="pseudo" type="text" value="'.$pseudo.'" size="20" >
    <br />Ajouter votre commentaire ici = ):<br />
    <textarea name="commentaire" cols="70" rows="5"></textarea><br />
    <input type="submit" name="submit" value="Envoyer le commentaire" />
    <br /><br />
    </form>
    ';
    //*********
    //Fonctions
    //*********
    function affiche_commentaires($path)
    {
    global $debug;
    if($debug == 1)
      $handletmp = fopen($path,"r");
    $tableau_content = file($path);
    fclose($handletmp);
    //Affichage des commmentaires
    //***************************
    // boucle sur tous les elements
    $HTML = '<style>.font_tableau{color: black; font-size: 10pt;}</style><br /><br />';
    $HTML .= '<table width="550">';
    $HTML .= '<tr><td align="center" bgcolor="#BEBEBE"><b>Vos impressions</b></td></tr>';
    for($i=0; $i < count($tableau_content); $i++)
    {
    if($i%2==0)
    {
    $HTML .= '<tr><td class="font_tableau" valign="left" align="left" bgcolor="#FFFFFF">';
    $HTML .= $tableau_content[$i].'</td></tr>';
    }
    else
    {
    $HTML .= '<tr><td class="font_tableau" valign="center" align="left" bgcolor="#BEBEBE">';
    $HTML .= $tableau_content[$i].'</td></tr>';
    }
    }
    $HTML .= '</table>';
    return $HTML;
    }
    function save_comment($path,$pseudo,$commentaire)
    {
    //Enregistrement du commentaire
    //*****************************
    global $debug;
    global $notification_mail;
    if($debug == 1)
    echo "";
    global $adresse_mail;
    global $provenance_mail;
    if(file_exists($path))
    {
    $handle = fopen($path,"r");
    $tableau_content = file($path);
    fclose($handle);
    }
    //remplace le retour à la ligne par <br /> et le \' par '
    $commentaire=eregi_replace("\r\n","<br />",$commentaire);
    $commentaire=eregi_replace("\\\'","'",$commentaire);
    if(($commentaire != "")&&(($commentaire . "\r\n") != $tableau_content[count($tableau_content)-1]))
    {
    $handle = fopen($path,"w");
    for($i=0;$i < count($tableau_content); $i++)
    {
    if(($tableau_content[$i] != "")&&($tableau_content[$i] != "\r\n"))
    fwrite($handle,$tableau_content[$i]);
    }
    $str_out = $pseudo." le ".date('d.m.y à H:i:s')."\r\n".$commentaire."\r\n";
    fwrite($handle,$str_out);
    fclose($handle);
    if($notification_mail == 1)
    {
    $message = $pseudo." le ".date('d.m.y à H:i:s')."\r\n".$commentaire."\r\nhttp://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];
    mail($adresse_mail,"Nouveau commentaire de ".$pseudo,$message,$provenance_mail);
    }
    }
    else
    {
    if($debug == 1)
    echo "<br /><br />Désolé, mais votre commentaire est vide<br />";
    }
    echo Affiche_commentaires($path);
    }
    ?>

Lorsque j'ai voulu rajouter un système de commentaires, j'ai tout simplement changé le nom du fichier texte sur cette ligne : $path = 'vacancesaintaygulf.txt'; (sur le début du script) en prenant soin bien sur d'uploader sur le serveur un fichier texte vierge portant le même nom, mais cela ne marche pas, lorsque j’essaye d’accéder à la page depuis mon navigateur, ceci me met une erreur.

Alors voila, j'aimerais savoir si l'un d'entre vous pouvais m'aider en m'expliquant comment modifier le script pour que cela marche.

Merci par avance,
A bientôt
Flomaluso

Rapporter au modérateur  

Re:Commentaires sans bases de données
« Répondre #1 sur: le 27-11-2012 a 03:19:47 »
WebD
Superactif
****

Hors-Ligne

Sexe: Male
Messages: 938





Voir le Profil    WWW    E-Mail
Répondre avec citation

Salut,
Quel est le message d'erreur qui s'affiche?
Tu devrait passer par une base de données, ce serait vraiment plus simple, peut être 10 lignes de code pour l'ajout et deux lignes pour l'affichage.

Olivier.

Rapporter au modérateur  

Agence Web  | Sticker MacBook | Lunettes personnalisées
Re:Commentaires sans bases de données
« Répondre #2 sur: le 27-11-2012 a 07:21:11 »
Chriss
Habitué
***

Hors-Ligne

Sexe: Male
Messages: 356





Voir le Profil    WWW
Répondre avec citation

Il existe aussi des scripts prêts à l'utilisation qui font celà : http://www.scriptol.fr/cms/commentaires.php

Rapporter au modérateur  

Je travaille dans une agence web qui fait de la création web sur Annecy et qui édite un site d'informations sur les Alpes
Re:Commentaires sans bases de données
« Répondre #3 sur: le 28-11-2012 a 18:25:15 »
Flomaluso
Membre récent
*

Hors-Ligne

Messages: 17





Voir le Profil
Répondre avec citation

Bonsoir,

Tout dabord, merci pour vos réponses.

Olivier, cela me marque qu'il y a une erreur sur la ligne ou il y a le deuxième " }" dans :
$HTML .= '<tr><td class="font_tableau" valign="center" align="left" bgcolor="#BEBEBE">';
    $HTML .= $tableau_content[$i].'</td></tr>';
    }
    }
Si je supprime ce deuxième "crochet", l’erreur affiche maintenant que c'est ma dernière ligne de code qui fait défaut, hors, c'est la balise </html>

Pour ce qui est d'utiliser une base de donnée, je ne sais pas du tout comment faire, si vous accepter de me l'expliquer simplement, je suis tout a fait ouvert a toute proposition = )

Chriss, merci beaucoup pour se lien = ) Mais, et oui, je suis désolé, il y a encore un mais, comme je vous l'ai dis je ne suis vraiment pas doué. En effet, je peut mettre plusieurs scripts sur une même page, le problème, est que les commentaires du deuxième script n'apparaissent pas sur la page. Le "demo-comment2.xml" étant pourtant bien incrémenter.
Pour le deuxième script, j'ai remplacé "<FORM name="ajax" method="POST" action="commentlib.php"" par : <FORM name="ajax" method="POST" action="commentlib2.php""
Dans commentlib2.php, j'ai remplacé $fname="demo-comment.xml"; par $fname="demo-comment2.xml";
Tous sa en créent bien sur les fichier commentlib2.php et demo-comment2.xml, mais les commentaires envoyé avec le premier script s'affiche et ceux sur le deuxième non.
Voila, je ne sais pas si j'ai été assez clair = )

A bientôt,
Flomaluso.

Rapporter au modérateur  
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
Pages: [1] Monter
« Précédent Suivant »
Sauter à: 

Votre statut : Invité
Vous devez être membre pour participer.
 
 
Let’s Encrypt : le certificat SSL gratuit
Tester votre site internet sur différents navigateurs
[WordPress] Des problèmes avec l’administration ?
Rappel : Mettez à jour vos CMS et vos sites E-commerce
Le .fr fête ses 25 années d’existence !
Mesurer votre audience en temps réel avec BubbleStat
Porter réclamation contre Google Panda ?
Zlio n’est plus …
 
 
 
 
 

Copyright (c) Devclic 2002 - 2026 - Tous droits réservés

creation site internet strasbourg