Joomla Tips :: com_mailto aléatoire ?
Certains l'ont déjà remarqué, l'envoi du lien d'un article à un ami via le composant com_mailto peut paraître aléatoire avec une propension à ne plus fonctionner du tout lorsque l'on multiplie les tests en utilisant les valeurs déjà saisies et proposées par le cache du browser.
Le retour est une page blanche flanquée du message laconique :
Cet e-mail n'a pas pu être envoyé
La réponse à ce "mystérieux" problème tient en deux blocs de codes du fichier controller.php.
Au début du fichier :
define('MAILTO_TIMEOUT', 20);
et dans la méthode send() :
if($timeout == 0 || time() - $timeout < MAILTO_TIMEOUT) {
JError::raiseNotice( 500, JText:: _ ('EMAIL_NOT_SENT'));
return $this->mailto();
}
Le formulaire "Envoyer à un ami" est donc protégé contre les robots spammers via la constante MAILTO_TIMEOUT. La variable $timeout contenant le timestamp UNIX sauvé en session lors de l'affichage du formulaire (méthode mailto()), le mail ne sera pas envoyé si l’utilisateur met moins de 20 secondes pour remplir le formulaire.
Comme indiqué au début de ce billet, le côté pervers de ce mécanisme est qu'un utilisateur qui aurait échoué une première fois a toutes les chances d'échouer à nouveau lors de sa prochaine tentative du fait qu'il n'a pas à re-saisir les champs du formulaire grâce au cache du browser.
A vous de voir si cette constante doit être diminuée ou pas...
| < Précédent | Suivant > |
|---|


