Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Ajouter un commentaire


PaTaToR

Messages recommandés

j'ai peu être trouver ton bonheur, un script tout fait

 

la page du site

http://jpage.free.fr/j/index_fr.php

JBrowser

permet de créer une gallerie d'images. Il permet de mettre des commentaires sur les images, il crée les miniatures à la volée, le nombre d'images par lignes est paramétrable... Administration des différents dossiers et installation très faciles.

 

[/url]

 

bon courage

je confirme, ce script est tres simple d'utilisation.

Tu place tes photos dans des répértoire, il crée les catégorie en fonction des repertoire, et les miniatures depuis les photos.

En place sur mon site :P

Lien vers le commentaire
Partager sur d’autres sites

Finalement, je pensais récupérer le code que j'avais utilisé une fois avant pour faire un livre d'or, je trouvais la présentation plus sympa. Par contre, j'aimerais le modifier afin de pouvoir le mettre en place plus facilement.

Tous les commentaires sont sauvegardés dans un fichier "livre.dat" créé à la racine du repertoire où est située la page.

Afin de l'installer plus facilement, j'aurais aimé que vous m'aidiez à le modifier.

 

 

Voila le code :

 

 

<?php
// #####################################################################################
// =============================================================================
// Comment'R 1.0 - (c) 2000 Thierry Arsicaud ([email protected])
// =============================================================================
//
// *************************************************************************************
// Ce script affiche la liste des commentaires postés par les utilisateurs par groupes
// ou pages de N commentaires (nombre à définir ci-dessous). Il affiche également un
// formulaire offrant la possibilité d'envoyer de nouveaux commentaires.
//
// Configuration de paramètres d'affichage des deux tableaux utilisés pour
// la mise en forme de la page :
// Tableau A (1 colonne, 2n+1 lignes) : le tableau comprend 1 ligne d'entête, et 2n lignes
// permettant d'afficher alternativement le nom de l'auteur et le texte du commentaire
// Tableau B : affichage du formulaire permettant de poster un nouveau commentaire
// (1 colonne, 2 lignes dont 1 ligne d'entête)
//
// Modifiez les paramètres ci-dessous en n'oubliant pas de refermer
// les guillemets et le point virgule
// *************************************************************************************

// === Paramètres d'affichage du TableauA (affichage des commentaires déjà postés) ===

$largeurTableauxA="80%";                             // Largeur du TableauA
$couleurBordTableauA="#bbbbbb";                      // Couleur de la bordure du TableauA
$couleurFondEnteteTableauA="#A3DEF1";                // Couleur de fond de la ligne d'entête du tableauA
$policeEnteteTableauA="verdana";                     // Police utilisée dans la ligne d'entête du tableauA
$couleurPoliceEnteteTableauA="#000000";              // Couleur de la police utilisée dans la ligne d'entête du tableauA
$couleurFondLigneNomAuteurTableauA="#F6F6F6";        // Couleur de fond des lignes "Nom de l'auteur"
$policeLignesNomAuteurTableauA="verdana";            // Police utilisée dans les lignes "Nom de l'auteur"
$couleurPoliceLignesNomAuteurTableauA="#000000";     // Couleur de la police utilisée dans les lignes "Nom de l'auteur"
$couleurFondLigneCommentaireTableauA="#ffffff";      // Couleur de fond des lignes "Commentaire"
$policeLignesCommentairesTableauA="times";           // Police utilisée dans les lignes "Commentaire"
$couleurPoliceLignesCommentairesTableauA="#000000";  // Couleur de la police utilisée dans les lignes "Commentaire"

$NombreComParPage=10;              // Nombre maximum de commentaires à afficher dans le tableau (par page)
$NombreMaxPages=20;                // Nombre maximum de pages de commentaires susceptibles d'être affichées

// === Paramètres d'affichage du TableauB (affichage du formulaire permettant d'ajouter un nouveau commentaire) ===

$largeurTableauxB="80%";                             // Largeur du TableauB
$couleurBordTableauB="#bbbbbb";                      // Couleur de la bordure du TableauB
$couleurFondEnteteTableauB="#A3DEF1";                // Couleur de fond de la ligne d'entête du tableauB
$policeEnteteTableauB="verdana";                     // Police utilisée dans la ligne d'entête du tableauB
$couleurPoliceEnteteTableauB="#000000";              // Couleur de la police utilisée dans la ligne d'entête du tableauB
$couleurFondFormulaireTableauB="#F6F6F6";            // Couleur de fond de la cellule affichant le formulaire
$policeFondFormulaireTableauB="verdana";             // Police utilisée dans la cellule affichant le formulaire
$couleurPoliceFondFormulaireTableauB="#000000";      // Couleur de la police utilisée dans la cellule affichant le formulaire

// === Paramètres destinés au contrôle des messages postés (dispositif "anti-piratage") ===

$longueurMaxCommentaires="10000";   // Nombre maximum de caractères pouvant être postés dans un commentaire
$longueurMaxMots="50";              // Nombre maximum de caractères par "mot" (ce dispositif permet d'empêcher une éventuelle augmentation incontrôlée de la largeur des tableaux)

// #####################################################################################

// #####################################################################################
// ****************************************************************************************
// Vérification du nombre de caractères envoyés dans le commentaire éventuellement posté.
// (certains utilisateurs mal intentionnés pourraient être tentés d'envoyer des commentaires
// comportant un très grand nombre de caractères, dans le but de ralentir le temps
// d'affichage du livre d'or)
// ****************************************************************************************

if((@ strlen($n)>$longueurMaxCommentaires) or (@ strlen($c)>$longueurMaxCommentaires)) {
 print("Désolé, la taille maximale des commentaires pouvant être postés est limitée à $longueurMaxCommentaires caractères.<br>\n");
 print("<a href=\"index.php\">Retour au Livre d'Or</a>\n");
 exit;
}
// #####################################################################################

// #####################################################################################
// ***********************************************************************************
// Création du fichier livre.dat s'il n'existe pas
// ***********************************************************************************

if(!file_exists("livre.dat")) {
 $idFicLivre=fopen("livre.dat","w+");
   fputs($idFicLivre,"Fichier Index. Ne pas éditer !\n");
 fclose($idFicLivre);
}

if(!isset($c)) $c="";
if(!isset($n)) $n="";
if(!isset($p)) $p="";

// ***********************************************************************************
// Définition de la fonction coupeMotsLongs($chaine,$ncaracteres) destinée à découper
// mots contenants plus de $ncaracteres caractères.
// (certains utilisateurs envoient parfois des textes contenant des mots très long,
// ce qui a pour effet d'altérer la structure d'affichage des tableaux)
// ***********************************************************************************

function coupeMotsLongs($chaine,$ncaracteres) {
 $chaineRes=$chaine;
 while(ereg("([^ ]{".$ncaracteres."})[^ ]",$chaineRes,$corres)) {
   $partRep=$corres[1];
   $chaineRes=ereg_replace($partRep,$partRep." <br> ",$chaineRes);
 }
 return($chaineRes);
}

// ***********************************************************************************
// Nettoyage et enregistrement des nouveaux commentaires envoyés lors de l'appel du script
// ***********************************************************************************

if ($c and $n) {

 // détermination de la date
 $tdate=getdate();
 $jour=sprintf("%02.2d",$tdate["mday"])."/".sprintf("%02.2d",$tdate["mon"])."/".$tdate["year"];
 $heure=sprintf("%02.2d",$tdate["hours"])."H".sprintf("%02.2d",$tdate["minutes"]);
 $d=$jour." à ".$heure;

 // nettoyage du nom
 $n=phplentities($n);
 $n=stripslashes($n);
 $n=trim($n);

 // nettoyage du commentaire
 $c=phplentities($c);
 $c=str_replace(chr(10)," <br> ",$c);
 $c=str_replace(chr(13),"",$c);
 $c=stripslashes($c);
 $c=trim($c);

 $idFicLivreCom=fopen("livre.dat","a+");
 fputs($idFicLivreCom,$n);         // 1ère ligne
 fputs($idFicLivreCom,"|");        //
 fputs($idFicLivreCom,$d."|\n");   //
 fputs($idFicLivreCom,$c."\n");    // 2ème ligne
 fclose($idFicLivreCom);

}

// ***********************************************************************************
// Lecture des messages déjà postés dans le livre, et stockage des données
// dans les tableaux $nom et $commentaire
// ***********************************************************************************

$TabLivre=file("livre.dat");
$nLignesTabLivre=count($TabLivre)-1;
$nCommentaires=$nLignesTabLivre/2;

for($compt=1;$compt<=$nCommentaires;$compt++) {
 $nom[$compt]=trim(stripslashes(strtok($TabLivre[($compt*2)-1],"|")));
 $date[$compt]=trim(stripslashes(strtok("|")));
 $commentaire[$compt]=trim(stripslashes($TabLivre[($compt*2)]));
}

// ***********************************************************************************
// Affichage d'un message de remerciement au cas ou un commentaire a été envoyé en même
// temps que l'appel du script
// ***********************************************************************************

if($n and $c)  {
 print("<table align=\"center\" width=\"$largeurTableauxA\" border=\"1\"> \n");
 print("<tr><td bgcolor=\"$couleurFondLigneNomAuteurTableauA\" height=\"30\"> \n");
 print("<center> \n");
 print("<font face=\"$policeLignesNomAuteurTableauA\" color=\"$couleurPoliceLignesNomAuteurTableauA\" size=\"-1\"> \n");
 print("<b>Merci pour votre participation !</b> \n");
 print("</font> \n");
 print("</center> \n");
 print("</td></tr> \n");
 print("</table> \n");
 print("<br> \n");
}

// ***********************************************************************************
// Affichage des commentaires déjà postés dans un tableau
// ***********************************************************************************

if(!$p) {
 $p=1;   // $p représente le numéro de la page de commentaire à afficher : par défaut, $p=1
}

if($nCommentaires>0) {

 print("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"$largeurTableauxA\" align=\"center\" bgcolor=\"$couleurBordTableauA\"> \n");
 print("<tr><td> \n");

   print("<table border=\"0\" width=\"100%\" cellspacing=\"1\" align=\"center\" cellpadding=\"5\"> \n");

   print("<tr> \n");
   print("<td bgcolor=\"$couleurFondEnteteTableauA\" height=\"30\"> \n");

   if($nCommentaires>$NombreComParPage) {
      print("<center> \n");
     print("<font face=\"$policeEnteteTableauA\" color=\"$couleurPoliceEnteteTableauA\" size=\"-2\"> \n");
     print("<b>pages</b>   \n");
     print("<b> \n");
     for($a=1;$a<=min($NombreMaxPages,floor((($nCommentaires-1)/$NombreComParPage)+1));$a++) {
       if($a==$p) print("$a   \n");
       else print("<a href=\"index.php?p=$a\">$a</a>   \n");
     }
     print("</b> \n");
     print("</font> \n");
     print("</center> \n");
   }

   print("<font face=\"$policeEnteteTableauA\" color=\"$couleurPoliceEnteteTableauA\" size=\"-2\"> \n");
   print("<center> \n");
   print("<b><a href=\"#ajout\">ajouter un nouveau commentaire</a></b> <br> \n");
   print("</center> \n");
   print("</font> \n");
   print("</td> \n");
   print("</tr> \n");

   for($compt=($nCommentaires-(($p-1)*$NombreComParPage));$compt>=max(1,($nCommentaires-($p*$NombreComParPage)+1));$compt--) {
     print("<tr><td bgcolor=\"$couleurFondLigneNomAuteurTableauA\"> \n");
       print("<table> \n");
       print("<tr> \n");
       print("<td width=\"10\"> </td> \n");
       print("<td> \n");
       print("<font face=\"$policeLignesNomAuteurTableauA\" color=\"$couleurPoliceLignesNomAuteurTableauA\" size=\"-1\"><b>".coupeMotsLongs($nom[$compt],$longueurMaxMots)."</b> a écrit, le ".$date[$compt]." :</font> \n");
       print("</td> \n");
       print("</tr> \n");
       print("</table> \n");
     print("</td></tr> \n");
     print("<tr><td bgcolor=\"$couleurFondLigneCommentaireTableauA\"> \n");
       print("<table> \n");
       print("<tr> \n");
       print("<td width=\"20\"> </td> \n");
       print("<td> \n");
       print("<font face=\"$policeLignesCommentairesTableauA\" color=\"$couleurPoliceLignesCommentairesTableauA\">".coupeMotsLongs($commentaire[$compt],$longueurMaxMots)."</font>\n");
       print("</td> \n");
       print("</tr> \n");
       print("</table> \n");
     print("</td></tr> \n");
   }

   if(($nCommentaires>$NombreComParPage) and $p<=min($NombreMaxPages,floor((($nCommentaires-1)/$NombreComParPage)+1))) {
     print("<tr> \n");
     print("<td bgcolor=\"$couleurFondEnteteTableauA\" height=\"20\"> \n");
     print("<center> \n");
     print("<font face=\"$policeEnteteTableauA\" color=\"$couleurPoliceEnteteTableauA\" size=\"-2\"> \n");
     print("<b>pages</b>   \n");
     print("<b> \n");
     for($a=1;$a<=min($NombreMaxPages,floor((($nCommentaires-1)/$NombreComParPage)+1));$a++) {
       if($a==$p) print("$a   \n");
       else print("<a href=\"index.php?p=$a\">$a</a>   \n");
     }
     print("</b> \n");
     print("</font> \n");
     print("</center> \n");
     print("</td> \n");
     print("</tr> \n");
   }

   print("</table> \n");

 print("</td></tr> \n");

 print("</table> \n");

 print("<br> \n");

}

// *********************************************************************************************
// Affichage d'un message d'avertissement au cas où aucun commentaire n'a été encore été envoyé
// *********************************************************************************************

if($nCommentaires<1)  {
 print("<table align=\"center\" width=\"$largeurTableauxA\" border=\"1\"> \n");
 print("<tr><td bgcolor=\"$couleurFondLigneNomAuteurTableauA\" height=\"30\"> \n");
 print("<center> \n");
 print("<font face=\"$policeLignesNomAuteurTableauA\" color=\"$couleurPoliceLignesNomAuteurTableauA\" size=\"-1\"> \n");
 print("<b>Le livre d'or ne comporte encore aucun commentaire.</b> \n");
 print("</font> \n");
 print("</center> \n");
 print("</td></tr> \n");
 print("</table> \n");
 print("<br> \n");
}


// ***********************************************************************************
// Affichage du formulaire permettant de poster un nouveau commentaire
// ***********************************************************************************


print("<a name=\"ajout\"></a>");

print("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"$largeurTableauxB\" align=\"center\" bgcolor=\"$couleurBordTableauB\"> \n");
print("<tr><td> \n");

 print("<table border=\"0\" width=\"100%\" cellspacing=\"1\" align=\"center\" cellpadding=\"5\"> \n");

 print("<tr> \n");
 print("<td bgcolor=\"$couleurFondEnteteTableauB\" height=\"30\"> \n");
 print("<font face=\"$policeEnteteTableauB\" color=\"$couleurPoliceEnteteTableauB\" size=\"-1\"> \n");

 if($nCommentaires>0) print("<b><center>Ajouter un nouveau commentaire :</center></b> \n");
 else print("<b><center>Envoyer un premier commentaire :</center></b> \n");

 print("</font> \n");
 print("</td> \n");
 print("</tr> \n");

 print("<tr><td bgcolor=\"$couleurFondFormulaireTableauB\"> \n");
 print("<form method=\"POST\"action=\"index.php\"> \n");
 print("<center> \n");
 print("<br> \n");
 print("<font face=\"$policeFondFormulaireTableauB\" color=\"$couleurPoliceFondFormulaireTableauB\" size=\"-1\"> \n");
 print("<b>Votre nom</b> :  \n");
 print("</font> \n");
 print("<input type=\"text\" name=\"n\" size=\"22\"> \n");
 print("<br><br> \n");
 print("<textarea rows=\"6\" name=\"c\" cols=\"40\" wrap=\"virtual\"></textarea> \n");
 print("<br> \n");
 print("<input type=\"submit\" value=\"Envoyer !\" name=\"B1\"> \n");
 print("</form> \n");
 print("</td></tr> \n");

 print("</table> \n");

print("</td></tr> \n");
print("</table> \n");

// #####################################################################################
?>

 

 

 

En fait, j'aimerais que au lieu de créer un fichier "livre.dat" à la racine du rep, il me crée un nouveau rep à chaque fois que le script est dans une page avec comme nom du rep : "le nom de la page qui a utilisée le script" et avec à l'interieur du rep un fichier "livre.dat" où serait stockés les commentaires.

 

 

Je crois pas avoir était trés clair :P

Voila un exemple :

 

A la base, j'ai ça :

 

Mon rep ==> Mapage.php

Mon rep ==> livre.dat

 

Je voudrais :

 

Mon rep ==> Mapage.php

Mon rep ==> Ma page ==> livre.dat

Mon rep ==> Mapage2.php

Mon rep ==> Ma page2 ==> livre.dat

etc... où "Ma page" et "Ma page2" sont deux nouveau repertoires

 

Vous voyez ce que je veux faire ? Quelqu'un peut m'aider ?

 

Aprés, avec la méthode de D'Arty, je pourrais installer le script sur n'importe quelle page en deux temps trois mouvements...

Modifié par PaTaToR
Lien vers le commentaire
Partager sur d’autres sites

je ne te suis pas tres bien, si tu fais un fichier dat par page tu ne pourra pas avoir les mess sur la meme page mais uniquement ceux qui auront repondus sur la page en question.

si c'est le ficher dat qui te genes sur la racine tu changes le chemin et tu met le tout dans un dossier

il se peut que je reponde a coté vu que je saisi mal la question :P

sinon tu met ta page "livredor.php" en include sur tes 170 pages et ca resoud ton probleme

Lien vers le commentaire
Partager sur d’autres sites

En fait, je voudrais que mes visiteurs puissent poster des commentaires sur chaque pages. Cela implique donc la création de X fichier *.dat (170 en l'occurence). Non ?

Je veux que sur chaque page, il n'y ais que les commentaire pour LA page.

Le fichier *.dat ne me gène pas en lui même. Le truc, c'est que si il est possible de modifier ce script comme je le souhaite, je n'aurais juste qu'a copier/coller le script dans mes pages. Apres, quand qqun voudra poster un commentaire, ça me créera un nouveau repertoire et un nouveau livre.dat (qui n'existe pas puisqu'il est dans un repertoire nouveau) si aucun commentaire n'a encore été posté.

 

Tu vois mieux là où je veux en venir ? :P

Lien vers le commentaire
Partager sur d’autres sites

En fait, je voudrais que mes visiteurs puissent poster des commentaires sur chaque pages.Tu vois mieux là où je veux en venir ?  :-(

les commentaires en question sont ils specifiques a chaque pages ? si oui pour faire simple sans trop compliqué, il te faut creer un repertoir livredor par exemple et y mettre les 170 pages "livredor.php"chacune dans un dossier different que tu aura au prealablement numeroté pour que lors de la creation du fichier dat qu'il reste bien avec la page livredor.php appropriée dans son dossier il te suffira d'indiquer le chemin sur chaque page (c'est ca qui sera long) De la le plus simple est de creer une iframe sur chaque page de ton site qui inclureront la page livredor et comme chaque page livredor.php sera dans un dossier a part, les commentaires seront specifiques a chaque page. Avec dreamwevaer c'est l'affaire d'1 heure

ce systeme t'evitera de retoucher le script php et de faire des bugs.

sinon il faut te une base de données pour gerer tout ça

 

peut etre que je suis encore a coté :P

Lien vers le commentaire
Partager sur d’autres sites

Je crois que ce coup ci, tu l'as. :P

Seulement, ta méthode me semble bien plus compliquée que la mienne.

 

Je connais pas du tout le php, mais il me semble que si je faisais un truc comme ça, ça pourrait marcher :

 

 

if(!file_exists("livre.dat")) {
$idFicLivre=fopen("livre.dat","w+");
  fputs($idFicLivre,"Fichier Index. Ne pas éditer !\n");
fclose($idFicLivre);
}

 

Bon, là, il verifie, l'existence du "livre.dat".

Ce que je pensais, c'est qu'il suffirait de lui demander de vérifier s'il existe un rep du nom de : "nom de la page d'où vient le script".

Si oui, niquel, il va dans ce rep et ouvre le "livre.dat" pour faire ce qu'il a à y faire.

Si non, il crée ce fameux repertoire et un nouveau "livre.dat"

 

Apres, il reste plus qu'a modifier deux ou trois chemin d'accés dans le code en remplaçant /livre.dat par une-variable-contenant-le-nom-de-la-page-donc-du-rep/livre.dat

 

 

Cela me semble possible, mais bon, comme je ne connais pas le php, je peux pas dire...

Ca vous semble pas possible ma manière de voir les choses ?

Je pense que ce serait beaucoup plus simple que ta méthode...

Lien vers le commentaire
Partager sur d’autres sites

Invité tesgaz
peut etre que je suis encore a coté    :P

non, tu n'es pas à coté, tu penses comme moi, normalement il faut le faire avec une BDD

 

Patator, est-ce que tu as essayé les script du site que je t'ai donné, qui sont fait avec une BDD

Modifié par tesgaz
Lien vers le commentaire
Partager sur d’autres sites

Patator, est-ce que tu as essayé les script du site que je t'ai donné, qui sont fait avec une BDD

Non, c'est vrai, je l'avoue. :-(

Je vais regarder...

 

 

N'empeche, est ce que ça peut marcher mon truc ? (je sais, je suis tenace, mais c'est pour l'exploit technique :P )

Lien vers le commentaire
Partager sur d’autres sites

Invité tesgaz

avec mon script, une fois que tu avais fait tes 170 pages,

tu changes juste "commentaire.txt" par "commentaire1.txt" dans le script et ainsi de suite sur chaque page (170 fois)

tu crées tes 170 pages commentaire.txt que tu renommes avec AntRenamer

et le tour est jouable

 

mais ca reste pas trés pro comme code

Modifié par tesgaz
Lien vers le commentaire
Partager sur d’autres sites

tu changes juste "commentaire.txt" par "commentaire1.txt" dans le script et ainsi de suite sur chaque page (170 fois)

Héhé, c'est exactement ça que je voudrais éviter :P

 

 

 

mais ca reste pas trés pro comme code

 

Absolument aucune importance...

 

 

Bon, je vais de ce pas reagrer tes scripts avec BDD...

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...