Vous n'êtes pas identifié(e).
[25 janvier 2021] - Publication de Wanewsletter 3.1.0
Je voulais faire suite au message de rateck, "Pas de nouveaux messages Version 2.3 - Désinscription", si vous pouvez déplacer message merci...
Bonjour
je ne sais pas si c'est du domaine du bug ou de la "misconfiguration" mais je fais suite...
PHP Version 4.3.10
Mysql 3.23.58
Wanewsletter 2.3-beta3 (mysql)
------------
Vérification approfondie des emails à l'inscription : non
Un envoi pour chaque abonné : oui
------------
Liste publique : oui
Format autorisé : html&txt
Adresse email d'envoi : info@info.inf
Adresse de retour pour les erreurs : info@info.inf
URL absolu de la page où se trouve le formulaire : http://www.info.com/news.php
Demande de confirmation : non
Limite de validité pour la confirmation d'inscription :0
------------
page news.php
<?php
define('IN_WA_FORM', true);
define('WA_ROOTDIR', '/var/www/web2/html/newsletter');
include WA_ROOTDIR . '/newsletter.php';
require('inc/header.php');
?>
<div id="contenu">
<h3>Lettre d'information</h3>
<p>Remplissez le formulaire ci dessous pour recevoir la lettre d'information</p>
<div id="formulaire">
<form method="post" action="http://www.info.com/news.php">
Adresse email : <input type="text" name="email" maxlength="100" />
Format : <select name="format">
<option value="2" SELECTED>HTML</option>
<option value="1">TXT</option>
</select>
<input type="hidden" name="liste" value="2" />
<br />
<input type="radio" name="action" value="inscription" checked="checked" /> Inscription <br />
<input type="radio" name="action" value="setformat" /> Changer de format <br />
<input type="radio" name="action" value="desinscription" /> Désinscription <br />
<br>
<input type="submit" name="wanewsletter" value="Valider" />
</form>
A l'inscription :
l'email est bien ajouté à la database mais le message de retour sur la page news.php est "L'email n'a pu tre envoy !"
Si l'email existe : Vous tes dj inscrit !, ça c'est ok
A la desinscription directement sur le site (via mon form news.php) :
Si l'email n'existe pas : Email inconnu, ça c'est ok
Si l'email existe (et visiblement qu'il ne fait pas partie d'un domaine sur mon serveur) :
L'email n'a pu tre envoy !
statut de l'enregistrement mysql :
abo_status : 1
l'abonné reste donc inscrit
Si l'email fait partie d'un domaine sur mon serveur (je suis pas sur à 100 % mais c'est à priori la seule différence! la je ne comprends pas...):
Impossible d'assigner le nouvelle cl d'enregistrement
SQL query :
UPDATE wa_abo_liste
SET register_key = '833c83b5795599dd456c'
WHERE abo_id = 522
SQL errno : 1062
SQL error : Duplicate entry '833c83b5795599dd456c' for key 2
Fichier : class.form.php Ligne : 576
Maintenant si j'envoie une newsletter j'ai :
http://www.info.com/newsletter/admin/en … gress&id=4
page blanche, pas de mail envoyés
Rien de particulier dans le fichier error_log httpd
Espérant que ça vous aidera, je tente de downgrader à une version moins beta pour voir si les problèmes persistent.
A bientôt
Hors ligne
Vous êtes chez quel hébergeur ?
Est-ce que le problème des envois d'emails qui échouent se produit avec une version 2.2.x ?
PHP et MySQL, un duo gagnant !
Hors ligne
Je déplace mon post sur la confirmation des désinscription car il est dans tout à fait en cohérence avec le sujet de ce Post.
Lorsque j'essaie de désinscrire une adresse e-mail à l'aide de la FORM créée pour une NL, j'ai ce message:
Impossible d'assigner le nouvelle clé d'enregistrement
SQL query :
UPDATE wa_abo_liste
SET register_key = 'e5365f087a3425f2b0d8'
WHERE abo_id = 3SQL errno : 1062
SQL error : Duplicate entry 'e5365f087a3425f2b0d8' for key 2Fichier : class.form.php Ligne : 576
Quand (certaines adresses), je peux aller plus loin et alors je reçois le mail de confirmation de la désinscription qui fait appel à la même FORM que précédemment avec le même texte:
Ok, vous allez recevoir un email qui vous permettra de confirmer votre choix
et ainsi de suite! (ça boucle) :x
Le 18/03: Ce message peut arriver sur l'e-mail de confirmation qui apelle la même form que récédemment dans lequel il me demande les mêmes info : email et cocher la case "désinscription" et je n'ai pas de mail m'indiquant qu'une adresse est supprimée de la liste et l'adresse n'est pas supprimée de la liste (nota: le pb a l'air identique que l'adresse appartienne à plusieurs listes ou à une seule)
J'apporte les précisions suivantes:
Hébergeur: Mon matériel (W2K SP4, Apache 1.3.27, MySqL 4.0.15-max-debug, PHP 4.4.2)
Hors ligne
J'ai rajouté dans l'ordre SQL (ligne 571), le n° de la liste pour éviter l'erreur.
$sql = "UPDATE " . ABO_LISTE_TABLE . "
SET register_key = '{$this->account['code']}'
WHERE abo_id = " . $sql_abo_id " AND liste_id = '{$this->listdata['liste_id']}'";
Mais mon lien n'est toujours pas supprimé
Hors ligne
Je n'ai plus l'erreur mais mon lien entre l'abonné et la liste n'est toujours pas supprimé et je ne reçois plus d'e-mail de confirmation.
Pourquoi?
Hors ligne
Pourquoi pouvoir envoyer plusieurs demandes de confirmation par newsletter si dans le code de "class.form.php" les confirmations sont toutes mises à jour en même temps ?
Non, une seule inscription ou désinscription est validée à chaque fois puisque le code de confirmation est unique.
Bon, je n'ai pas avancé sur ce bug. Je ne parviens même pas à le reproduire. Ça va retarder la prochaine version
PHP et MySQL, un duo gagnant !
Hors ligne
Attention, j'ai fait une erreur quand j'ai rajouté la sélection sur la liste. J'ai oublié un "." (point) qui est à placer avant le " AND comme ci-dessous.
$sql = "UPDATE " . ABO_LISTE_TABLE . "
SET register_key = '{$this->account['code']}'
WHERE abo_id = " . $sql_abo_id . " AND liste_id = '{$this->listdata['liste_id']}'";
Mais je ne comprends pas pourquoi je boucle sur l'envoi du message 'unsubscribe_form' comme si l'argument $code était null alors qu'il devrait acoir la valeur de register Key me semble-t-il.
Cela pourrait-il venir du paramètrage de PHP?
Hors ligne
faites le test en remplaçant la ligne 84 du fichier newsletter.php par:
var_dump($action, $code);
if( !empty($action) || !empty($code) )
PHP et MySQL, un duo gagnant !
Hors ligne
Code remplacé:
1 -Désinscription à partir de la NL
string(14) "desinscription" string(0) "" Ok, vous allez recevoir un email qui vous permettra de confirmer votre choix
Le massage reçu par l'utilisateur (NL) est
TEST AVEC DUMP
http://xxx.xxx.xxx.xxx/incript/des20.ph … 12de0a2fba
2 - click sur le lien du mail de confirmation+saisie de l'adresse
string(14) "desinscription" string(0) "" Ok, vous allez recevoir un email qui vous permettra de confirmer votre choix
Le message est identique comme si il ne récupérait pas la clé du lien l'adresse/liste à supprimer
Le massege reçu par l'utiliateur est
Bonjour,
Vous recevez cet email car vous (ou quelqu'un se faisant passer pour vous)
désirez vous désinscrire de la
liste de diffusion "test suppression" du site AATECK.Pour vous désinscrire, rien de plus simple, cliquez simplement sur ce lien :
http://xxx.xxx.xxx.xxx/incript/des20.ph … e5b1a84a60
Le contenu de des20.php est:
<form method="post" action="http://xxx.xxx.xxx.xxx/incript/list20.php">
Adresse email : <input type="text" name="email" maxlength="100" />
<input type="hidden" name="format" value="1" />
<input type="hidden" name="liste" value="20" />
<br />
<input type="radio" name="action" value="desinscription" checked="checked" /> Désinscription <br />
<input type="submit" name="wanewsletter" value="Valider" />
</form>
Le contenu de list20.php est:
<?php
define('IN_WA_FORM', true);
define('WA_ROOTDIR', 'c:/easyphp1-7/www/wanewsletter-2-3');include WA_ROOTDIR . '/newsletter.php';
?>
Hors ligne
Le lien dans l'email doit pointer sur la page contenant le code php, ici list20.php ("URL absolue de la page où se trouve le formulaire" dans ma configuration de la liste).
PHP et MySQL, un duo gagnant !
Hors ligne
Merci, ça marche. Je n'avis pas compris quel script php utiliser.
Bravo pour votre patience et réactivité ainsi que pour votre superbe produit.
Par contre la modif que j'ai faite dans le code sur l'ordre SQL en ligne 571 de class.form est-elle bonne (recherche de l'occurence sur le N° de liste et d'abonné).
pouvez-vous le mettre réglé car je ne le puis pas.
Hors ligne
Arf, ça fait une demi-heure que je teste intensivement et je viens à peine de réaliser d'où venait le problème, et c'est véritablement idiot de ma part.
En fait, quand une adresse email est inscrite à plusieurs listes, elle a donc plusieurs entrées la concernant dans la table wa_abo_liste.
Or dans ce cas, cette requète essaie de mettre à jour plusieurs entrées et donc d'attribuer la même valeur à chaque 'register_key' d'où l'erreur.
rateck avait donc déjà la solution en main avec l'ajout du liste_id dans la requète pour limiter la mise à jour à une entrée.
PHP et MySQL, un duo gagnant !
Hors ligne