Annonce

#1 2006-03-07 11:44:20

fb
Membre
Inscription : 2005-07-11
Messages : 23

Re : [Résolu] précisions erreurs inscription / desinscription

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" /> &nbsp;
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&eacute;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

#2 2006-03-07 16:39:51

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : [Résolu] précisions erreurs inscription / desinscription

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

#3 2006-03-07 20:25:46

rateck
Membre
Inscription : 2006-02-24
Messages : 54

Re : [Résolu] précisions erreurs inscription / desinscription

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 = 3

SQL errno : 1062
SQL error : Duplicate entry 'e5365f087a3425f2b0d8' for key 2

Fichier : 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

#4 2006-03-18 20:14:06

rateck
Membre
Inscription : 2006-02-24
Messages : 54

Re : [Résolu] précisions erreurs inscription / desinscription

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

#5 2006-03-19 13:35:07

rateck
Membre
Inscription : 2006-02-24
Messages : 54

Re : [Résolu] précisions erreurs inscription / desinscription

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

#6 2006-03-22 01:08:28

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : [Résolu] précisions erreurs inscription / desinscription

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  neutral


PHP et MySQL, un duo gagnant !

Hors ligne

#7 2006-03-22 18:37:52

rateck
Membre
Inscription : 2006-02-24
Messages : 54

Re : [Résolu] précisions erreurs inscription / desinscription

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

#8 2006-03-22 19:15:49

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : [Résolu] précisions erreurs inscription / desinscription

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

#9 2006-03-23 12:33:57

rateck
Membre
Inscription : 2006-02-24
Messages : 54

Re : [Résolu] précisions erreurs inscription / desinscription

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

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" /> &nbsp;
<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

#10 2006-03-23 15:50:03

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : [Résolu] précisions erreurs inscription / desinscription

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

#11 2006-03-23 20:10:58

rateck
Membre
Inscription : 2006-02-24
Messages : 54

Re : [Résolu] précisions erreurs inscription / desinscription

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

#12 2006-03-24 03:59:00

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : [Résolu] précisions erreurs inscription / desinscription

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.  roll

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. smile


PHP et MySQL, un duo gagnant !

Hors ligne

Pied de page des forums