Site web: permettre aux visiteurs de poster commentaires - HTML/CSS - Programmation
Marsh Posté le 29-03-2008 à 14:07:47
Petite remarque niveau design : je ne suis pas sûr que le texte vert sur fond jaune à gauche soit très bien pour la lisibilité.
Pour en revenir à ta question, ce n'est pas possible à faire "sans aucune modification de ton site" genre en collant 2/3 lignes de HTML. Il faudra passer par un langage côté serveur (PHP) pour enregistrer les données dans une base de données ou un fichier XML par exemple, et pour les restituer ensuite dans ta page.
Il faudra aussi prévoir un système pour bloquer les robots spammeurs, sinon tu risque vite d'être submergé de commentaires vantant les mérites de sites louches.
Tu peux pour commencer regarder du côté de ce qui existe déja (genre une recherche google sur "script php commentaires" ), tu trouveras très probablement quelque chose qui te conviendra, ou tu auras au moins une base pour commencer à coder toi même.
Marsh Posté le 29-03-2008 à 14:29:15
salut ccp6128 (ça me rappelle des bons souvenirs ce pseudo
au niveau php, il y a effectivement une partie de mon site qui en utilise déjà
(par exemple http://pokerslam.free.fr/Deal/DealFr.html pour les joueurs de tournoi qui veulent faire des calculs de deal. Mais dans ce cas je ne sauvegarde pas les résultats du calcul donc c'est plus simple que la gestion de commentaires)
merci pour tes conseils
Marsh Posté le 29-03-2008 à 15:36:39
de retour car ça avance un peu de mon côté
recherche google donc qui me conduit à télécharger un script php "commentaires-2.2".
Je place le répertoire "commentaires" à la racine de mon site.
Je dois créer une table mysql "commentaires"
C'est là que ça devient compliqué pour moi.
Je me connecte au gestionnaire de base de données mysql fourni par free.fr (phpMyadmin) et je tente de créer une table "commentaires":
Je clique sur l'onglet "sql" afin de copier coller le code donné avec le scipt "commentaires":
et j'obtiens le message d'erreur suivant:
vous voyez ce qui cloche dans ces qq lignes de code??
Marsh Posté le 29-03-2008 à 15:58:37
oui. Vire le DEFAULT '0' dans ta première ligne, tu auras donc simplement :
id int(5) NOT NULL AUTO_INCREMENT,
Le reste me semble bon.
Marsh Posté le 29-03-2008 à 18:23:01
Un blog comme Dotclear ou wordpress n'a pas d'apparence particulière en théorie. Tu peux tres bien utiliser un blog pour fait un site commercial par exemple ou ton site de poker. Il suffit de ne pas utiliser l'affichage des sujets mais plutot utiliser la possibilité d'y créer des pages.
Le classement par catégorie existe évidement sur ces blogs et pas seulement par date.
Bref un bon blog a ta sauce te simplifierait la vie car tu aurais déjà tous les outils en main.
Marsh Posté le 29-03-2008 à 19:36:18
ccp6128 a écrit : oui. Vire le DEFAULT '0' dans ta première ligne, tu auras donc simplement : |
j'ai fait la modif que tu m'as proposé
La table 'commentaires' est désormais créée.
Ca avance donc...jusqu'au message d'erreur suivant
Pour permettre l'affichage de commentaires dans une des pages de mon site, je dois:
->lui donner la terminaison .php (.html auparavant)
->mette en début de fichier:
<?php
$rep ='url_relative_du_répertoire_du_script/';
require_once($rep.'config/fonctions.lib.php');
?>
Je fais donc un essai sur mon article http://pokerslam.free.fr/Articles/Coteshtml
Cotes.html ressemble initialement à:
Code :
|
J'ai créé un fichier Cotes.php, placé dans le même répertoire. Seule différence, il commence par le petit paragrahe <php>...:
Code :
|
$rep étant l'url relative du répertoire commentaires, je pensais qu'il fallait effectivement utiliser:
<?php
$rep = /commentaires/';
require_once($rep.'config/fonctions.lib.php');
?>
(puisque Cotes.html se situe à l'url http://pokerslam.free.fr/Articles/Cotes.php alors que le script est dans http://pokerslam.free.fr/commentaires)
mais l'url http://pokerslam.free.fr/Articles.Cotes.php
donne ceci:
J'ai donc modifié Cotes.php pour qu'il commence par l'url absolue:
<?php
$rep = 'http://pokerslam.free.fr/commentaires/';
require_once($rep.'config/fonctions.lib.php');
?>
Mon article s'affiche alors correctement, mais tjs 3 messages d'erreur en haut de page:
Voici ce que contient l'incriminé http://pokerslam.free.fr/commentai [...] s.lin.php:
Code :
|
Vous voyez ce qui cloche? (on touche au but!)
Merci encore une fois pour ton aide ccp!
Marsh Posté le 29-03-2008 à 19:40:19
Elément important que j'ai oublié d'ajouter: le contenu du fichier config.inc.php (il contient les éléments permettant d'accéder à la base de données mysql):
Code :
|
Marsh Posté le 29-03-2008 à 19:50:39
Tu as laissé en clair le mdp de ta page d'admin, fais attention.
Un chemin relatif, c'est le chemin d'un fichier ou d'un répertoire par rapport au chemin de la page où tu exécutes le script. Si tu veux revenir dans le répertoire parent, c'est "/../".
Dans ton cas, ton chemin sera /../commentaires/, vu que tu dois "remonter" le répertoire Articles avant de te rendre dans le répertoire commentaires.
Heureusement, mettre une URL ne marche pas, sinon le premier clampin venu pourrait pirater n'importe quel site de cette façon.
Marsh Posté le 29-03-2008 à 21:00:39
ccp6128 a écrit : Tu as laissé en clair le mdp de ta page d'admin, fais attention. |
je commence donc Cotes.php par:
<?php
$rep = '../commentaires/';
require_once($rep.'config/fonctions.lib.php');
?>
(il faut utiliser ../ et non /../ apparemment)
et désormais l'article s'affiche sans message d'erreur!
A la fin de Cotes.php, j'ajoute l'appel de la fonction commentaires() afin de permettre aux visiteurs d'ajouter des commentaires:
Code :
|
A la fin de mon article
http://pokerslam.free.fr/Articles/Cotes.php
J'obtiens donc un lien qui permet au visiteur de laisser un commentaire s'il clique dessus.
Ca n'a pas tout de suite marché.
En effet au départ le petit lien cliquable ouvrait une fenêtre contenant un message d'erreur (un truc du genre "localhost could not be reached" ).
Dans le fichier de config (config.inc.php), j'ai donc remplacé:
$script_url = 'localhost/commentaires';
par:
$script_url = 'http://pokerslam.free.fr/commentaires';
tu as une idée sur la raison pour laquelle l'adresse d'origine (localhost) ne fonctionnait pas?
(ce n'est pas très important de toute façon car avec l'url directe ca fonctionne nickel, mais c'est juste pour "culture générale" ).
Merci bcp pour ton aide ccp6128
En espérant pouvoir te rendre la pareille un de ces 4
Marsh Posté le 30-03-2008 à 01:13:31
En effet c'était bien ../ et pas /../ .Un chemin relatif ne commence jamais par /, vu que le / du début représente la racine (donc est un signe que c'est un chemin absolu).
La variable $script_url est utilisée côté client pour afficher différents eléments (regarde comment les url des images sont construites). Il faut donc mettre l'url publique pour que ca marche, puisque si tu mets localhost le client cherchera en local (sur son propre pc). Il y a deux types de variables utilisées pour ce script php :
- Celles qui sont utilisées en interne par les scripts pour des opérations d'écriture/lecture de fichiers ou de base de données. C'est le cas pour $rep qui sert à faire un include du fichier de config.
- Celles qui sont envoyées au client pour afficher les éléments du formulaire (images, adresse du popup du formulaire). Il faut donc que l'adresse indiquée soit accessible par le client.
Ce n'est pas pressé et ca dépendra probablement de l'affluence sur ton site, mais il se peut qu'un jour tu te fasse spammer par des commentaires publicitaires. Il faudra alors que tu trouves un moyen de filtrer les indésirables (filtrage par ip, ou alors un champ caché invisible aux utilisateurs mais rempli par les robots que tu utilises pour ne pas valider le commentaire, ou captcha (image avec des chiffres)).
Edit - complément d'informations, il est un peu tard et j'ai pas été clair du premier coup.
Marsh Posté le 04-04-2008 à 09:45:49
ccp6128 a écrit : |
Si cela arrive, je passerai à un script plus performant. Celui fournit un panneau d'administration (me permet d'effacer messages indésirables) mais:
->pas de caractères de contrôle pour valider un message (=anti robots)
->je ne suis pas émailé en cas de commentaire posté, donc ca peut prendre un peu de tps avant que je détecte un spamming
Je pense qu'installer un script plus performant ne me posera pas de pb car comme ct la première fois j'ai appris pas mal de choses (notamment grâce à toi).
Comme la création d'une nouvelle table de données par l'interface de Free ou la gestion des variables internes/client.
ccp6128 a écrit : |
Bcp de bonnes infos dans ton message!
Marsh Posté le 29-03-2008 à 13:28:29
Bonjour à tous,
j'ai posé une question sur HFR il y a plus d'un an concernant de la programmation VB et vu la compétence (et le tps accordé) des personnes qui m'avaient répondu à l'époque, je reviens de nouveau abuser de votre tps libre
J'ai créé un site web il y a deux ans et demi pour expliquer les règles du poker à mes collègues (plus pratique et surtout plus complet que de le faire à la machine à café. Ca évite de perdre son tapis le soir même sur une règle pas bien comprise).
Depuis j'ai ajouté qq articles sur lesquels j'aimerais avoir le retour de visiteurs (commentaires).
Bien sûr une possibilité serait de passer par un hébergeur de blogs ou d'utiliser un logiciel de blog genre dotclear (j'ai testé rapidement).
Mais en fait je ne veux pas du tout que mon site devienne un blog, d'autant que le contenu ne s'y prête pas du tout (ce n'est pas un billet régulier mais des articles qui de tps en tps viennent s'ajouter en étant classés par thème et non par date de publication).
En dessous de cet article par exemple:
http://pokerslam.free.fr/Articles/Cotes.html
j'aimerais mettre un masque de saisie dans lequel les visiteurs pourraient poster un commentaire. Mais je ne veux pas changer quoi que ce soit d'autre au site (ok ok la présentation est à chier, ça j'y bosserai un jour ).
Il y a des sites qui font déjà ça donc je sais qu'on peut le faire sans passer par un blog. Mais dans Firefox, faire "View/Viewsource" ne permet pas de dévoiler le script utilisé
Merci d'avance pour votre aide!