Bonjour, merci pour la réponse, une suggestion pour la 5.1.8 :
mettre la possibilité de rendre le mail obligatoire (ou facultatif) dans le renseignement des commentaires en cochant/décochant une case du côté admin ?
Bonjour zetrader
Pour etre franc avec toi, je ne pense pas que cette fonctionnalité soit utile, car celui qui ne veut pas laisser son email, mettra une adresse bidon dans le genre toto@nimp.com par exemple. Donc rendre la saisie obligatoire n'apporte pas grand chose.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
alors moi j'ai une meilleure idée hein, une inscription avec une validation puis une gestion du compte perso et puis euh nan c'est chiant finalement ... ]:D
Bonjour zetrader
Pour etre franc avec toi, je ne pense pas que cette fonctionnalité soit utile, car celui qui ne veut pas laisser son email, mettra une adresse bidon dans le genre toto@nimp.com par exemple. Donc rendre la saisie obligatoire n'apporte pas grand chose.
Tout à fait d'accord. Cependant, je trouve la fonction intéressant. Notamment dans le cas où on souhaite communiquer avec l'auteur avant de publier son commentaire. Et puis il y a la méthode checkMail que j'aimerais bien réussir à faire fonctionner
Malgré que Frédéric auteur du célèbre Thème Mystique m'ait averti "[em]je te déconseille de modifier le core de PluXml sans quoi tu t'en sortira plus lors de chaque update de Pluxml[/em]" - merci Frédéric pour la mise à jour de ton thème - voici comment j'ai tenté de rendre le mail non facultatif dans les coms [PluXml 5.1.7 - Thème Mystique 1.8]:
[== Indéfini ==]
/www/core/lib$ diff class.plx.motor.php class.plx.motor.php.ori
786c786
< if(!empty($content['name']) AND !empty($content['content']) AND !empty($content['mail'])) { # Les champs obligatoires sont remplis
---
> if(!empty($content['name']) AND !empty($content['content'])) { # Les champs obligatoires sont remplis
Ca fonctionne, mais je ne sais pas si c'est "propre" ?
Et puis il faudra certainement modifier à nouveau class.plx.motor.php à la prochaine mise à jour de PluXml.
Par contre, la méthode checkMail quelques lignes plus bas ne semble pas être appliquée :
Pourtant la méthode est bien présente dans core/lib/class.plx.utils.php :
[== PHP ==]
public static function checkMail($mail) {
if (strlen($mail) > 80)
return false;
return preg_match('/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|("[^"]+"))@((\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\])|(([a-zA-Z\d\-]+\.)+[a-zA-Z]{2,}))$/', $mail);
}
Comme je n'y connais pas grand chose en php j'ai essayé différents trucs infructueux que je n'ose pas montrer ici :8
A vrai dire je n'arrive pas à mettre en évidence si c'est la méthode qui ne fonctionne pas ou autre chose. En fait, quelque soit la chaîne de caractère(s) qu'on saisisse pour l'adresse email, le commentaire est validé. Autre raisonnement basique : je ne pense pas que cela vienne du Thème Mystique car la méthode checkMail ne semble pas mieux fonctionner avec le thème par défaut.
Quelqu'un saurait-il pourquoi cette méthode ne fonctionne pas, ou une piste pour mettre en évidence pourquoi ?
@Franck-AWO: pour la validation des commentaires je te propose de regarder ce tuto que je viens de rédiger: http://goo.gl/iuIRVK
Il te permet nottament de mettre en place le controle de l'adresse email.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Comme j'utilise le Thème Mystique il m'a juste fallu retirer la ligne qui se situe au-dessus de la balise <form action...> dans le fichier themes/theme-mystique/commentaires.php :
En faisant une recherche, je suis tombé sur ce sujet. Il est un peu vieux, mais toujours d'actualité je crois. Avec HTML5 maintenant, il y a un moyen facile pour rendre obligatoire la saisie d'un champs de formulaire. Dans le fichier commentaires.php du thème, il faut modifier cette ligne :
Comme vous l'avez peut-être remarqué, un autre changement avec HTML5 nous permet d'indiquer comme type de formulaire «email». Le formulaire sera seulement validé si l'adresse indiqué est bien une adresse e-mail.
En faisant une recherche, je suis tombé sur ce sujet. Il est un peu vieux, mais toujours d'actualité je crois. Avec HTML5 maintenant, il y a un moyen facile pour rendre obligatoire la saisie d'un champs de formulaire. Dans le fichier commentaires.php du thème, il faut modifier cette ligne :
Comme vous l'avez peut-être remarqué, un autre changement avec HTML5 nous permet d'indiquer comme type de formulaire «email». Le formulaire sera seulement validé si l'adresse indiqué est bien une adresse e-mail.
Une curiosité, ces derniers temps, j'ai un spammeur qui arrive à poster des commentaires sans mettre d'adresse email (commentaire posté avec formulaire vide au niveau du mail), j'ai vérifié et si j'essaye de faire un commentaire sur mon blog, le formulaire m'oblige à rentrer un email (si champ vide cela passe pas et si je mets blabla sans le @ non plus, bref le code marche bien), comment ce spammeur peut-il contourner cette protection ? En utilisant un vieux navigateur qui ne connait pas html5 ?
si la vérification se fait du coté du navigateur, elle peut être facilement contournée.
je viens de mettre un commentaire "test - test" en quelques secondes sans adresse e-mail
pour que la vérification soit efficace il faudrait rajouter un test côté serveur mais comme disait Stéphane il y a 2 ans, quelqu'un qui n'a pas envie de laisser son adresse e-mail laissera une adresse bidon. ensuite on pourrait penser à une fonctionnalité qui laisse un message "attention vous n'avez pas indiqué d'adresse e-mail, voulez-vous quand même envoyé le commentaire ?" mais si on arrive à là, ça va finir avec zetrader qui va faire tout le travail d'investissement et les clients voudront juste toucher les bénéfices sans travailler.
au sujet de ce spammeur, tu penses qu'il s'agit d'une personne ou d'un robot ? parce que s'il s'agit d'un robot, il faudra d'abord réfléchir à améliorer la question anti-robot
Vu ton commentaire de test, il est bien passé.
Tu as contourné comment ? Si je mets test (sujet) - test (message) comme toi, pluxml me demande de renseigner le champ e-mail, ceci en utilisant google chrome ou firefox.
Et si je mets test (en sujet), test (en mail) et test (en message), cela me demande de renseigner un mail correct (avec @), il y a donc une faille facilement exploitable, peux-tu me dire comment ?
Autre question de curiosité, pourrais-tu essayer de faire le même com de test sur wordpress (qui par défaut oblige à rentrer un mail valide lors d'un com) ?
J'ai une version de tests de wordpress, tu peux essayer ici de contourner comme tu l'as fait pour pluxml : http://zetrader.fr/wp4/
c'est avec la console de développement de mon navigateur, j'ai directement édité le code HTML et enlevé le "required"
avec WordPress ça ne fonctionne pas puisqu'il y a un test qui est fait côté serveur
*La* règle à ne jamais oublier, c'est que tout contrôle effectué côté "navigateur" peut être contourné. Ecrire "required" dans un champ revient à faire un contrôle du côté du navigateur. Il faut donc, comme certains l'ont dit, effectuer nécessairement un contrôle côté "serveur" dès lors que le contrôle est obligatoire et non simplement "de confort".
Merci pour vos contributions.
Bah moi, je veux bien mettre le contrôle côté serveur puisque c'est moins contournable ainsi, comment fait-on pour le mettre côté serveur ?
if(!empty($content['name']) AND !empty($content['content'])) { # Les champs obligatoires sont remplis
par
if(!empty($content['name']) AND !empty($content['content']) AND plxUtils::checkMail(trim($content['mail']))) { # Les champs obligatoires sont remplis
Rendre obligatoire l'adresse email n'a aucun intérêt
1) celui qui ne vaut pas laisser sa vraie adresse mettra toto@nimp.com
2) et ce n'est pas ça qui empêchera le spam: voir 1)
en + ça oblige à modifier le code de PluXml, donc pas bien là aussi
Mais voilà pour répondre à ta question la modif à faire
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Merci Stéphane, dans mon cas, ce n'est pas pour obliger à mettre un vrai mail, c'est plutôt pour limiter le spam, et depuis un an, cela marchait plutôt bien, j'ai eu moins de spam grâce au fait de faire saisir le mail, depuis la mise en place de ce code cela a réduit le nombre de spams reçus en commentaires jusqu'à ce qu'un spammeur découvre la faille et et m'envoie plusieurs spams par jour sans mettre de mail.
Sinon j'imagine que l'autre manière de limiter le spam en plus de demander un mail à un format valide (toto@nimp.com) c'est de faire un captcha qui nécessite un peu plus de réflexion humaine (j'utilise le captcha par défaut de pluxml), est-ce qu'il y a un captcha un peu plus difficile pour les spammeurs que celui par défaut de pluxml ?
Réponses
Pierre Aribaut - zetrader & zeforums
Sans modifier le code, non ce n'est pas possible
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
mettre la possibilité de rendre le mail obligatoire (ou facultatif) dans le renseignement des commentaires en cochant/décochant une case du côté admin ?
Pierre Aribaut - zetrader & zeforums
Pour etre franc avec toi, je ne pense pas que cette fonctionnalité soit utile, car celui qui ne veut pas laisser son email, mettra une adresse bidon dans le genre toto@nimp.com par exemple. Donc rendre la saisie obligatoire n'apporte pas grand chose.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Tout à fait d'accord. Cependant, je trouve la fonction intéressant. Notamment dans le cas où on souhaite communiquer avec l'auteur avant de publier son commentaire. Et puis il y a la méthode checkMail que j'aimerais bien réussir à faire fonctionner
Malgré que Frédéric auteur du célèbre Thème Mystique m'ait averti "[em]je te déconseille de modifier le core de PluXml sans quoi tu t'en sortira plus lors de chaque update de Pluxml[/em]" - merci Frédéric pour la mise à jour de ton thème - voici comment j'ai tenté de rendre le mail non facultatif dans les coms [PluXml 5.1.7 - Thème Mystique 1.8]:
Ca fonctionne, mais je ne sais pas si c'est "propre" ?
Et puis il faudra certainement modifier à nouveau class.plx.motor.php à la prochaine mise à jour de PluXml.
Par contre, la méthode checkMail quelques lignes plus bas ne semble pas être appliquée :
Pourtant la méthode est bien présente dans core/lib/class.plx.utils.php :
Comme je n'y connais pas grand chose en php j'ai essayé différents trucs infructueux que je n'ose pas montrer ici :8
A vrai dire je n'arrive pas à mettre en évidence si c'est la méthode qui ne fonctionne pas ou autre chose. En fait, quelque soit la chaîne de caractère(s) qu'on saisisse pour l'adresse email, le commentaire est validé. Autre raisonnement basique : je ne pense pas que cela vienne du Thème Mystique car la méthode checkMail ne semble pas mieux fonctionner avec le thème par défaut.
Quelqu'un saurait-il pourquoi cette méthode ne fonctionne pas, ou une piste pour mettre en évidence pourquoi ?
Il te permet nottament de mettre en place le controle de l'adresse email.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
A première vue ça fonctionne, génial!
Comme j'utilise le Thème Mystique il m'a juste fallu retirer la ligne qui se situe au-dessus de la balise <form action...> dans le fichier themes/theme-mystique/commentaires.php :
Encore quelques réglages CSS et ça sera parfait.
@zetrader/Pierre : sans modifier le code c'est peut-être pas possible, mais avec ce tuto c'est du gateau
Et pourquoi pas oui, une future option dans les paramètres de l'admin...
Merci aussi aux personnes et équipes qui développent les jquery*!
En espérant que cela puisse aider quelqu'un. Pour les autres changement dans les formulaires avec HTML5 : http://www.w3schools.com/html/html5_form_attributes.asp
Pierre Aribaut - zetrader & zeforums
Une curiosité, ces derniers temps, j'ai un spammeur qui arrive à poster des commentaires sans mettre d'adresse email (commentaire posté avec formulaire vide au niveau du mail), j'ai vérifié et si j'essaye de faire un commentaire sur mon blog, le formulaire m'oblige à rentrer un email (si champ vide cela passe pas et si je mets blabla sans le @ non plus, bref le code marche bien), comment ce spammeur peut-il contourner cette protection ? En utilisant un vieux navigateur qui ne connait pas html5 ?
Pierre Aribaut - zetrader & zeforums
je viens de mettre un commentaire "test - test" en quelques secondes sans adresse e-mail
pour que la vérification soit efficace il faudrait rajouter un test côté serveur mais comme disait Stéphane il y a 2 ans, quelqu'un qui n'a pas envie de laisser son adresse e-mail laissera une adresse bidon. ensuite on pourrait penser à une fonctionnalité qui laisse un message "attention vous n'avez pas indiqué d'adresse e-mail, voulez-vous quand même envoyé le commentaire ?" mais si on arrive à là, ça va finir avec zetrader qui va faire tout le travail d'investissement et les clients voudront juste toucher les bénéfices sans travailler.
au sujet de ce spammeur, tu penses qu'il s'agit d'une personne ou d'un robot ? parce que s'il s'agit d'un robot, il faudra d'abord réfléchir à améliorer la question anti-robot
Tu as contourné comment ? Si je mets test (sujet) - test (message) comme toi, pluxml me demande de renseigner le champ e-mail, ceci en utilisant google chrome ou firefox.
Et si je mets test (en sujet), test (en mail) et test (en message), cela me demande de renseigner un mail correct (avec @), il y a donc une faille facilement exploitable, peux-tu me dire comment ?
Pierre Aribaut - zetrader & zeforums
J'ai une version de tests de wordpress, tu peux essayer ici de contourner comme tu l'as fait pour pluxml :
http://zetrader.fr/wp4/
Pierre Aribaut - zetrader & zeforums
avec WordPress ça ne fonctionne pas puisqu'il y a un test qui est fait côté serveur
Bah moi, je veux bien mettre le contrôle côté serveur puisque c'est moins contournable ainsi, comment fait-on pour le mettre côté serveur ?
Pierre Aribaut - zetrader & zeforums
remplace la ligne
par
Rendre obligatoire l'adresse email n'a aucun intérêt
1) celui qui ne vaut pas laisser sa vraie adresse mettra toto@nimp.com
2) et ce n'est pas ça qui empêchera le spam: voir 1)
en + ça oblige à modifier le code de PluXml, donc pas bien là aussi
Mais voilà pour répondre à ta question la modif à faire
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Sinon j'imagine que l'autre manière de limiter le spam en plus de demander un mail à un format valide (toto@nimp.com) c'est de faire un captcha qui nécessite un peu plus de réflexion humaine (j'utilise le captcha par défaut de pluxml), est-ce qu'il y a un captcha un peu plus difficile pour les spammeurs que celui par défaut de pluxml ?
Pierre Aribaut - zetrader & zeforums