- Messages : 167
Pas de mail au modérateur (localhost uniquement)
- scoubinaire
- Auteur du sujet
- Membre elite
Moins
Plus d'informations
il y a 6 ans 7 mois #792
par scoubinaire
Pas de mail au modérateur (localhost uniquement) a été créé par scoubinaire
GRR340RC2
Bonjour, ceci n'affecte que les sites GRR installés en localhost
GRR devrait accepter les adresses mails xxxxx@localhost
.
Pour faire mes tests de GRRxxx RCx, j'ai installé GRR sur mon PC en localhost sous xampp. Pour gérer les mails, j'ai activé le serveur local de mail Mercury et défini 2 adresses mail : email1 pour un Usager et email2 pour un Administrateur. Les adresses mail correspondantes deviennent automatiquement mail1@localhost et email2@localhost et ces mails peuvent ensuite être récupérés dans, par exemple, Thunderbird.
Si une ressource doit être modérée, l'usager reçoit bien le messsage l'indiquant mais l'administrateur ne reçoit aucun message
.
Le problème est localisé dans include/functions.inc.php derrière
if ($action == 5)
{
$mail_admin = find_user_room ($room_id);
$destinataire = "";
if (count($mail_admin) > 0) ===> count =0 mais devrait être à =1
.
function find_user_room ($id_room) appelle function validate_email ($email) : cette fonction valide correctement les adresses mail xxxxx@aaaaa.bbb mais pas xxxxx@aaaaa (ce qui est tout à fait normal), mais je pense qu'il faudrait qu'elle accepte aussi xxxxx@localhost
Juste comme bypass, j'ai ignoré la function validate_email ($email) avec
validate_email ($email) { return true; }
et l'administrateur reçoit bien le mail de modération
Bonjour, ceci n'affecte que les sites GRR installés en localhost
GRR devrait accepter les adresses mails xxxxx@localhost
.
Pour faire mes tests de GRRxxx RCx, j'ai installé GRR sur mon PC en localhost sous xampp. Pour gérer les mails, j'ai activé le serveur local de mail Mercury et défini 2 adresses mail : email1 pour un Usager et email2 pour un Administrateur. Les adresses mail correspondantes deviennent automatiquement mail1@localhost et email2@localhost et ces mails peuvent ensuite être récupérés dans, par exemple, Thunderbird.
Si une ressource doit être modérée, l'usager reçoit bien le messsage l'indiquant mais l'administrateur ne reçoit aucun message
.
Le problème est localisé dans include/functions.inc.php derrière
if ($action == 5)
{
$mail_admin = find_user_room ($room_id);
$destinataire = "";
if (count($mail_admin) > 0) ===> count =0 mais devrait être à =1
.
function find_user_room ($id_room) appelle function validate_email ($email) : cette fonction valide correctement les adresses mail xxxxx@aaaaa.bbb mais pas xxxxx@aaaaa (ce qui est tout à fait normal), mais je pense qu'il faudrait qu'elle accepte aussi xxxxx@localhost
Juste comme bypass, j'ai ignoré la function validate_email ($email) avec
validate_email ($email) { return true; }
et l'administrateur reçoit bien le mail de modération
Connexion ou Créer un compte pour participer à la conversation.
- Yan
- Developpeur GRR
Moins
Plus d'informations
- Messages : 2115
il y a 6 ans 7 mois #794
par Yan
Réponse de Yan sur le sujet Pas de mail au modérateur (localhost uniquement)
plutôt que neutraliser la fonction, pouvez-vous tester le code suivant :
et nous dire si cela répond à votre problème ?
En effet, il semble que les filtres php ne prennent toujours pas en compte les adresses locales.
Cordialement,
YN
Code:
function validate_email ($email)
{
$atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';
// caractères autorisés avant l'arobase
$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)';
// caractères autorisés après l'arobase (nom de domaine)
$regex = '/^' . $atom . '+' . '(\.' . $atom . '+)*' . '@' . '(' . $domain . '{1,63}\.)+' . $domain . '{2,63}$/i';
$regex2 = '/^' . $atom . '+' . '(\.' . $atom . '+)*' . '@' . 'localhost';
if (preg_match($regex, $email))
return true;
else
return preg_match($regex2, $email);
}
En effet, il semble que les filtres php ne prennent toujours pas en compte les adresses locales.
Cordialement,
YN
Connexion ou Créer un compte pour participer à la conversation.
- scoubinaire
- Auteur du sujet
- Membre elite
Moins
Plus d'informations
- Messages : 167
il y a 6 ans 7 mois #800
par scoubinaire
Réponse de scoubinaire sur le sujet Pas de mail au modérateur (localhost uniquement)
Bonjour, c'est bizarre, ça ne fonctionne pas
tout se passe comme si preg_match($regex2, $email); renvoyait false et pourtant on passe bien dessus
Avec ce code, on voit que la ligne echo / exit n'est pas exécutée
$regex2 = '/^' . $atom . '+' . '(\.' . $atom . '+)*' . '@' . 'localhost';
if (preg_match($regex2, $email))
{ echo('aaa'); exit($email); }
tout se passe comme si preg_match($regex2, $email); renvoyait false et pourtant on passe bien dessus
Avec ce code, on voit que la ligne echo / exit n'est pas exécutée
$regex2 = '/^' . $atom . '+' . '(\.' . $atom . '+)*' . '@' . 'localhost';
if (preg_match($regex2, $email))
{ echo('aaa'); exit($email); }
Connexion ou Créer un compte pour participer à la conversation.
- Yan
- Developpeur GRR
Moins
Plus d'informations
- Messages : 2115
il y a 6 ans 7 mois #802
par Yan
Réponse de Yan sur le sujet Pas de mail au modérateur (localhost uniquement)
C'est peut-être mon expression régulière qui ne convient pas
pouvez-vous essayer celle-ci :
si ça ne marche toujours pas, il faudra que je révise...
Merci pour vos tests
pouvez-vous essayer celle-ci :
Code:
$regex2 = '/^' . $atom . '+' . '(\.' . $atom . '+)*' . '@' . 'localhost/i';
Merci pour vos tests
Les utilisateur(s) suivant ont remercié: scoubinaire
Connexion ou Créer un compte pour participer à la conversation.
- scoubinaire
- Auteur du sujet
- Membre elite
Moins
Plus d'informations
- Messages : 167
il y a 6 ans 7 mois - il y a 6 ans 7 mois #804
par scoubinaire
Réponse de scoubinaire sur le sujet Pas de mail au modérateur (localhost uniquement)
C'est bon, ça marche et pourtant j'avais bien mis localhost en minuscules dans mes adresses mail
Merci beaucoup
Merci beaucoup
Dernière édition: il y a 6 ans 7 mois par Yan.
Les utilisateur(s) suivant ont remercié: Yan
Connexion ou Créer un compte pour participer à la conversation.
Modérateurs: Yan