FluxBB.fr

Le site des utilisateurs francophones de FluxBB.

Vous n'êtes pas identifié(e).

#1 17-01-2016 02:52:32

Kervinou
Membre
Lieu : Ile de France
Inscription : 19-12-2013
Messages : 24
Site Web

[Résolu] Avec de Nombreux emails le bouton "valider" reste actif

Bonjour à tous,

J'utilise FluxBB 1.5.5 depuis 2 ans.

Au fur et a mesure, le nombre de membre augmente, à ce jour à 150.
Il se trouve que lorsque les 150 sont abonnés à un même forum ils vont recevoir une notification à chaque nouveau message.

Je me retrouve souvent avec des doublons car lorsque l'on valide le message, l'envoi de mails se fait immédiatement et le bouton "valider" reste actif tant que tous les mails ne sont pas partis !

Je cherche à savoir pourquoi est-ce cela se produit et comment éviter ce long temps d'attente (envoie des emails par derrière) pour celui qui a écrit le message.

Pour résumer :
- Comment faire pour que le bouton "valider" se désactive une fois cliqué ?
- Comment fait pour que lorsque le forum envoie des emails, l'utilisateur n'ait pas besoin d'attendre ?


D'avance merci.

Dernière modification par Kervinou (17-01-2016 02:55:21)


Minecraft Serveur pour adulte et +21ans - MadInCRAFT 100% Survival
Informations et Forum http://madincraft.fr

Hors ligne

#2 17-01-2016 20:54:40

mangafan
Membre
Lieu : Expatrié dans les Deux-Sèvres
Inscription : 29-01-2005
Messages : 1 101
Site Web

Re : [Résolu] Avec de Nombreux emails le bouton "valider" reste actif

Il faudrait tout re-coder si le ralentissement vient bien de là.

Soit faire un envoi de mail asynchrone mais ce n'est pas dans la nature de PHP, soit désactiver le bouton d'envoi avec du javascript quand l'utilisateur fait un clic dessus.

http://www.aidoweb.com/tutoriaux/griser … mulaire-77

Sauf que, c'est déjà la méthode employée par fluxbb il me semble mais je ne comprends pas trop son implantation elle me semble un peu plus lourde. Eux, ils désactivent carrément le formulaire à l'envoi mais est-ce que ça marche sur tous les navigateurs ?

Pour la méthode asynchrone, je ne sais pas trop. Disons que pour le faire simplement, il faudra utiliser des ressources qu'on a pas avec un hébergement classique. Donc pour éviter le ralentissement de cette façon, il faudrait changer d'hébergement et il y a de grande chance que juste le fait de changer d'hébergement supprime les ralentissements. C'est pas des gros mails qu'il envoie le script.

Il y a aussi l'ajax par exemple mais ça demanderait de revoir toute la page et c'est évidemment dépendant du javascript.

Le problème arrive-t-il à des utilisateurs qui ont javascript d'activé. Peut-être qu'il faudrait plutôt mettre l’événement sur le bouton via un onclick que sur le formulaire via un onsubmit.


:canon: Mangafan : Mettez un chat dans votre processeur ! happy

Hors ligne

#3 17-01-2016 21:49:11

Kervinou
Membre
Lieu : Ile de France
Inscription : 19-12-2013
Messages : 24
Site Web

Re : [Résolu] Avec de Nombreux emails le bouton "valider" reste actif

Merci pour la réponse.

J'ai testé avec mon navigateur (firefox) dans différentes situations.
J'ai remarqué que certaines fois, le bouton se désactive mais pas à chaque fois.

De la réponse, dois-je comprendre que je suis le seul dans ce cas ?

Je n'y connais que très peu en PHP, en revanche (pour mon cas perso) je gère mon hébergement sur un dédié.

Je penchais aussi du coté du serveur de mail, sauf qu'il se trouve qu'il est OK et qu'il sait avaler 50 emails différents en même temps. De plus, le soucis est le même malgré un changement de smtp

Donc à suivre !
Merci
bonne soirée

PS: ici, le bouton s'est désactivé wink

Dernière modification par Kervinou (17-01-2016 21:49:34)


Minecraft Serveur pour adulte et +21ans - MadInCRAFT 100% Survival
Informations et Forum http://madincraft.fr

Hors ligne

#4 18-01-2016 03:03:55

mangafan
Membre
Lieu : Expatrié dans les Deux-Sèvres
Inscription : 29-01-2005
Messages : 1 101
Site Web

Re : [Résolu] Avec de Nombreux emails le bouton "valider" reste actif

Tu as déjà tenté sans smtp, en laissant php faire. Je ne sais pas si tu es le seul touché par ce genre de problème mais c'est le premier message que je lis en ce sens.

Le truc de l'envoi de mail en asynchrone avec un dédié, c'est que pour faire simple, à moins d'utiliser un shell genre exec(), c'est mort. Et ce n'est pas le plus simple à faire non plus et puis ça demande de modifier le suivi des erreurs possible comme des notifications non envoyées. Encore que, à présent si les mails ne partent pas, on a pas de messages d'erreurs affichés non plus.

Passer par une fonction asynchrone ça pourrait dépanner et éviter de se taper tout le code de la page mais ça demande de savoir ce que l'on fait car ça ne s'adaptera pas à tous les serveurs, ce n'est pas standard comme méthode. Mais de mon point de vue, ce serait moins pénible et plus fiable que de faire un truc en ajax par exemple.

Pour être honnête, si vraiment l'envoi des notifications pose problème sur Fluxbb quand elles sont nombreuses, il faudrait revoir le script complet, stocker les notifications à envoyer dans la base et prévoir une tâche cron pour les envoyer et ainsi éviter à l'utilisateur d'en ressentir les effets au moment où il poste son message.

En allant sur ton forum, j'ai eu le sentiment que les pages étaient dans l'ensemble un peu longue à s'afficher. Pour t'assurer que le bouton se grise bien à chaque fois ; Dans un premier temps, je testerai de mettre la fonction pour désactiver le bouton sur le bouton lui même.

Avant :

<input type="submit" name="submit" value="<?php echo $lang_common['Submit'] ?>" tabindex="<?php echo $cur_index++ ?>" accesskey="s" />

Après :

<input type="submit" name="submit" value="<?php echo $lang_common['Submit'] ?>" onclick="this.form.submit();this.disabled=true;this.value='En cours'" tabindex="<?php echo $cur_index++ ?>" accesskey="s" />

Je n'ai pas regardé sinon mais tu n'aurais pas ajouter du javascript sur ton forum qui aurait altéré le fonctionnement de l'option de base.


:canon: Mangafan : Mettez un chat dans votre processeur ! happy

Hors ligne

#5 18-01-2016 10:01:59

Kervinou
Membre
Lieu : Ile de France
Inscription : 19-12-2013
Messages : 24
Site Web

Re : [Résolu] Avec de Nombreux emails le bouton "valider" reste actif

mangafan a écrit :

Tu as déjà tenté sans smtp, en laissant php faire. Je ne sais pas si tu es le seul touché par ce genre de problème mais c'est le premier message que je lis en ce sens.

Oui au début, mais ce n'est pas une bonne idée, il y avait des problèmes sur certains hébergeurs (laposte, microsoft...)


mangafan a écrit :

Le truc de l'envoi de mail en asynchrone avec un dédié, c'est que pour faire simple, à moins d'utiliser un shell genre exec(), c'est mort. Et ce n'est pas le plus simple à faire non plus et puis ça demande de modifier le suivi des erreurs possible comme des notifications non envoyées. Encore que, à présent si les mails ne partent pas, on a pas de messages d'erreurs affichés non plus.

Je me demandais comment faisait les autres CMS de forum!


mangafan a écrit :

En allant sur ton forum, j'ai eu le sentiment que les pages étaient dans l'ensemble un peu longue à s'afficher. Pour t'assurer que le bouton se grise bien à chaque fois ; Dans un premier temps, je testerai de mettre la fonction pour désactiver le bouton sur le bouton lui même.

Je n'ai pas regardé sinon mais tu n'aurais pas ajouter du javascript sur ton forum qui aurait altéré le fonctionnement de l'option de base.

Je viens de modifier quelques params dans Apache et j'ai remis les timeout à 1 des scripts php de la page.
J'ai plusieurs codes php ajoutés qui permettent d'afficher les contenus de la page de gauche en effet, ces codes sont exécutés à chaque page par chaque visite !
J'ai conscience que ce n'est pas top et ajoute des temps pour afficher les pages, mais je ne sais pas comment faire pour les temporiser ou ajouter comme un cache pour qu'il ne fasse les requêtes que toutes les 5 secondes max par exemple !

Mais bon, rien à voir avec le bouton.
J'ai remplacer la ligne de code dans le post.php mais je ne vois pas de changement.

Si je devine le code, le texte "En cours" devrait s'afficher dans le bouton ? Il ne s'affiche pas!
Je suis en dernière version de firefox.

Au cas où tu ai à perdre, j'ai posté mon post.php

Merci


Minecraft Serveur pour adulte et +21ans - MadInCRAFT 100% Survival
Informations et Forum http://madincraft.fr

Hors ligne

#6 18-01-2016 20:03:49

mangafan
Membre
Lieu : Expatrié dans les Deux-Sèvres
Inscription : 29-01-2005
Messages : 1 101
Site Web

Re : [Résolu] Avec de Nombreux emails le bouton "valider" reste actif

Désolé, c'est moi.

C'est parce qu'il faudrait modifier aussi le bouton dans viewtopic.php mais de toute façon le code javascript sur le form doit prendre le dessus sur celui de l'input donc ça n'est pas une bonne solution, je viens de tester en local.

Est-ce que tu peux poster un message vide sur ton forum par exemple ? Ce serait un bon moyen de te rendre compte si le code javascript de base marche, car normalement il doit t'en empêcher avec un message en alert. Si il t'affiche un message après avoir recharger la page ce n'est pas bon, si le code d'origine marche il ne doit pas envoyer le formulaire.

As-tu modifier le header.php par exemple ?


:canon: Mangafan : Mettez un chat dans votre processeur ! happy

Hors ligne

#7 18-01-2016 22:20:02

Kervinou
Membre
Lieu : Ile de France
Inscription : 19-12-2013
Messages : 24
Site Web

Re : [Résolu] Avec de Nombreux emails le bouton "valider" reste actif

Vi, je ne peux pas poster un message vide donc le javascript de base fonctionne

pour le header.php (clic), c'est possible, mais je ne me souviens plus de ce que j'ai fait y'a deux ans wink


1453148214_capture.jpg


Minecraft Serveur pour adulte et +21ans - MadInCRAFT 100% Survival
Informations et Forum http://madincraft.fr

Hors ligne

#8 18-01-2016 23:37:17

mangafan
Membre
Lieu : Expatrié dans les Deux-Sèvres
Inscription : 29-01-2005
Messages : 1 101
Site Web

Re : [Résolu] Avec de Nombreux emails le bouton "valider" reste actif

La fonction process_form est bien là. Si ça fonctionne, je t'avouerai que je ne comprends pas pourquoi ton bouton ne se grise pas, il se grise juste avant normalement et pourquoi ça peut créer des doubles postes... D'ailleurs quand tu vois cette boîte de dialogue, tu dois bien avoir le bouton grisé normalement.

Sur l’événement onsubmit qui s'active à l'envoi du formulaire, on a :

this.submit.disabled=true;
// le formulaire est désactivé, ce qui à pour effet de griser le bouton de soumission.
if(process_form(this))
// Une condition qui attend la réponse de la fonction process_form qui renvoie vrai si le formulaire est rempli et faux le cas contraire.
{return true;}
// on retourne vrai si la fonction renvoie vrai
else
// sinon
{this.submit.disabled=false;return false;}
// on réactive le formulaire en passant la variable [i]disabled[/i] à faux.

Ça ne le fait pas sur une installation fraîche en tous cas, j'ai installé Firefox et même en cliquant comme un acharné, ça ne me fait qu'un message.

Le script doit bien planter parfois, je ne vois que ça, reste à trouver pourquoi.


:canon: Mangafan : Mettez un chat dans votre processeur ! happy

Hors ligne

#9 20-01-2016 21:28:57

Kervinou
Membre
Lieu : Ile de France
Inscription : 19-12-2013
Messages : 24
Site Web

Re : [Résolu] Avec de Nombreux emails le bouton "valider" reste actif

Merci !!!
Je n 'avais pas vu ton message, je n'ai pas été informé de la réponse !!

Je viens de remarquer que le bouton reste activé uniquement lorsque l’on "post" une nouvelle discussion !
Plusieurs messages et même résultat !

Pourtant c'est bien le fichier post.php qui est utilisé, je ne comprends pas ou alors, c'est ailleurs dans ce même fichier...


Minecraft Serveur pour adulte et +21ans - MadInCRAFT 100% Survival
Informations et Forum http://madincraft.fr

Hors ligne

#10 20-01-2016 22:46:59

mangafan
Membre
Lieu : Expatrié dans les Deux-Sèvres
Inscription : 29-01-2005
Messages : 1 101
Site Web

Re : [Résolu] Avec de Nombreux emails le bouton "valider" reste actif

Il n'y a pas de désactivation sur les nouveaux topic par défaut, je ne sais pas pourquoi, cherches :

onsubmit="return process_form(this)"

et remplaces par :

onsubmit="this.submit.disabled=true;if(process_form(this)){return true;}else{this.submit.disabled=false;return false;}"

Dans post.php et puis testes pour voir.

Dernière modification par mangafan (21-01-2016 00:45:42)


:canon: Mangafan : Mettez un chat dans votre processeur ! happy

Hors ligne

#11 21-01-2016 22:22:48

Kervinou
Membre
Lieu : Ile de France
Inscription : 19-12-2013
Messages : 24
Site Web

Re : [Résolu] Avec de Nombreux emails le bouton "valider" reste actif

Génial, çà a l'air de bien fonctionner, le bouton "Valider" se grise !
Je n'ai testé que sur un emplacement qui n'envoie pas de mail bien sûr, mais cela semble bien concluant pour éviter les doubles post !

Bizarre que cela ne soit pas activé par défaut.
Je verrai bien l'usage en fonction des retours que j'aurai.

Un très très grand merci à toi !

K.:cool:


Minecraft Serveur pour adulte et +21ans - MadInCRAFT 100% Survival
Informations et Forum http://madincraft.fr

Hors ligne

#12 22-01-2016 00:52:45

Kervinou
Membre
Lieu : Ile de France
Inscription : 19-12-2013
Messages : 24
Site Web

Re : [Résolu] Avec de Nombreux emails le bouton "valider" reste actif

Bon, je viens de refaire une 10e d'essai et le bouton se désactive bien !

Donc, à voir un prochain coup lorsque je serai sur un sujet qui est très suivi pour voir le temps d'envoi des mails, de fait je me demande comment cette partie est gérée par d'autres CMS de forum tel que PhpBB ou autre... Par curiosité !

mais c'est déjà beaucoup !

Quand je pense que je traine çà depuis deux ans ! wink
Encore un grand merci

Bye++


Minecraft Serveur pour adulte et +21ans - MadInCRAFT 100% Survival
Informations et Forum http://madincraft.fr

Hors ligne

#13 22-01-2016 01:11:13

Kervinou
Membre
Lieu : Ile de France
Inscription : 19-12-2013
Messages : 24
Site Web

Re : [Résolu] Avec de Nombreux emails le bouton "valider" reste actif

Pour info pour les autres qui seraient comme moi, je viens de faire la même manip sur le fichier edit.php qui souffre de la même carence de non désactivation du bouton "valider"

  1. Ouvrir edit.php

  2. chercher onsubmit="return process_form(this)"
    (pour moi vers la ligne 247)

  3. remplacer par onsubmit="this.submit.disabled=true;if(process_form(this)){return true;}else{this.submit.disabled=false;return false;}"

cool


Minecraft Serveur pour adulte et +21ans - MadInCRAFT 100% Survival
Informations et Forum http://madincraft.fr

Hors ligne

#14 22-01-2016 10:08:25

mangafan
Membre
Lieu : Expatrié dans les Deux-Sèvres
Inscription : 29-01-2005
Messages : 1 101
Site Web

Re : [Résolu] Avec de Nombreux emails le bouton "valider" reste actif

Content pour toi. Pour PhpBB je ne sais pas comment il gère ça, de la même manière je pense. Ça fait plus de 10 ans que je n'ai pas eu à administrer un PhpBB. tongue


:canon: Mangafan : Mettez un chat dans votre processeur ! happy

Hors ligne

Pied de page des forums