bitwicht Posted May 5, 2008 Posted May 5, 2008 hello, i have big problems with contrib Box newsletter http://www.oscommerce.com/community/contri...,Box+newsletter 1. error: i can make an newsletter, i send it and in the screen its OK but tere is no newsletter send. 2. error: in the index is the newsletter box with subscribe nad unsubscribe. i add an adress - its ok than i go to Unsubscribe and add the same adress and it comes: the adress exist already - this meen i cand delete the exist adress - why? regard bit Quote
amaische Posted May 6, 2008 Posted May 6, 2008 Hallo, to 1: please check, if in the database table customers_newsletter the field customers_newsletter_invite is set to 2. Only this data will be considered. please check whether the count of the respective emails are shown, when you send the newsletter in the admin tool. After the confirmation all email-addresses, the newsletter is send to, are shown at the top of the page /admin/newsletter.php . Does this happens ? zu 1: bitte überprüfe, ob in der DB-Tabelle customers_newsletter das Feld customers_newsletter_invite auf 2 sitzt. Nur diese Einträge werden im folgenden berücksichtigt. bitte überprüfe, ob im Admin beim Senden des Newsletters die Anzahl der Newsletterempfänger angezeigt wird. Werden nach dem Bestätigen des Newsletters am Anfang der Seite /admin/newsletter.php die email-Adressen aufgelistet, an die der Newsletter versandt wurde ? to 2: Have you changed the checkbox to "unsubscribe" and did you after that click at the button "confirm" ? zu 2: wurde beim Abmelden zuerst der Radio-Button auf "Abmelden" und danach der Button "Bestätigen" betätigt ? regards, amaische Quote
bitwicht Posted May 6, 2008 Author Posted May 6, 2008 Hallo, 1. habe ich gelöst es lag an einem fehler in der admin/includes/modules/newsletters/newsletter.php ORIGINAL: $mimemessage->send($mail['customers_firstname'] . ' ' .$mail['customers_lastname'], $mail['customers_email_address'], '', EMAIL_FROM, $this >title); GEÄNDERT IN: $mimemessage->send('', $mail['customers_newsletter_email'] , EMAIL_FROM, $this->title); 2. ich gebe die mailadresse ein, dann auf unsubscripe auswählen, dann auf subscripe klicken. aber er sagt immer, dass die mailadresse schon eingegeben ist obwohl ich diese löschen will! ??? lg bit Quote
amaische Posted May 6, 2008 Posted May 6, 2008 2. ich gebe die mailadresse ein, dann auf unsubscripe auswählen, dann auf subscripe klicken.aber er sagt immer, dass die mailadresse schon eingegeben ist obwohl ich diese löschen will! ??? Ich nehme an, daß er als Fehlermeldung den Inhalt von TEXT_INSCRIPTION_NEWSLETTER_EXISTE bringt. Dies ist dann der Fall, wenn er das Löschen nicht erkennt. Bitte überprüfe in /catalog/includes/boxes/newsletter.php (ca. Zeile 38), ob folgendes enthalten ist (das Feld newsletter_invite muß im Fall der Abmeldung mit 0 belegt werden): $in_out_action.= '<input name="newsletter_invite" type="radio" value="0">'; $in_out_action.= NEWSLETTER_BOX_NON . '<br><br>'; Nun sollte er im folgenden das Löschen ausführen. amaische Quote
bitwicht Posted May 6, 2008 Author Posted May 6, 2008 hallo, das ist eigentlich alles so - hier ein auszug: $info_box_contents = array(); $info_box_contents[] = array('align' => 'left', 'text' => BOX_HEADING_NEWSLETTER ); $in_out_action = ' <form name="inscription_newsletter" action="inscription_newsletter.php?action=process" method="post"> <center> <table border="0" cellpadding="0" cellspacing="0" class="smallText" > <tr > <td width="100%" height="16" class="smallText">'; $in_out_action.= NEWSLETTER_BOX_EMAILADDRESS; $in_out_action.= '<input name="newsletter_email" size="12" /><br /><br /> </td> </tr> <tr> <td width="100%" height="1" class="smallText">'; $in_out_action.= '<input name="newsletter_invite" type="radio" value="1" checked="checked" />'; $in_out_action.= NEWSLETTER_BOX_OUI . '<br />'; $in_out_action.= '<input name="newsletter_invite" type="radio" value="0" />'; $in_out_action.= NEWSLETTER_BOX_NON . '<br /><br />'; $in_out_action.='<input type="submit" value="'; $in_out_action.= NEWSLETTER_BOX_VALIDATION; $in_out_action.='" name="submit" />'; $in_out_action.='<br /><br />' . NEWSLETTER_BOX_TEXT . ' lg bit Quote
bitwicht Posted May 6, 2008 Author Posted May 6, 2008 hallo, das ist eigentlich alles so - hier ein auszug: <!-- newsletter //--> <tr> <td> <?php require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_INSCRIPTION_NEWSLETTER); $info_box_contents = array(); $info_box_contents[] = array('align' => 'left', 'text' => BOX_HEADING_NEWSLETTER ); $in_out_action = ' <form name="inscription_newsletter" action="inscription_newsletter.php?action=process" method="post"> <center> <table border="0" cellpadding="0" cellspacing="0" class="smallText" > <tr > <td width="100%" height="16" class="smallText">'; $in_out_action.= NEWSLETTER_BOX_EMAILADDRESS; $in_out_action.= '<input name="newsletter_email" size="12" /><br /><br /> </td> </tr> <tr> <td width="100%" height="1" class="smallText">'; $in_out_action.= '<input name="newsletter_invite" type="radio" value="1" checked="checked" />'; $in_out_action.= NEWSLETTER_BOX_OUI . '<br />'; $in_out_action.= '<input name="newsletter_invite" type="radio" value="0" />'; $in_out_action.= NEWSLETTER_BOX_NON . '<br /><br />'; $in_out_action.='<input type="submit" value="'; $in_out_action.= NEWSLETTER_BOX_VALIDATION; $in_out_action.='" name="submit" />'; $in_out_action.='<br /><br />' . NEWSLETTER_BOX_TEXT . ' </td> </tr> </table> </center> </form> '; new infoBoxHeading($info_box_contents, false, false); $info_box_contents = array(); $info_box_contents[] = array('align' => 'left', 'params' => 'class="smallText" valign="top"', 'text' => $in_out_action ); new infoBox($info_box_contents); ?></td></tr> <!-- newsletter_eof //--> Quote
amaische Posted May 6, 2008 Posted May 6, 2008 Das sieht genauso aus wie bei mir. Ist in /catalog/inscription_newsletter.php ca in Zeile 138 folgender Eintrag drin ?: <td><?php echo $messageStack->output('inscription_newsletter'); ?></td> und beginnt die Datei mit: require('includes/application_top.php'); require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_INSCRIPTION_NEWSLETTER); $error = false; if (isset($HTTP_GET_VARS['action']) && (($HTTP_GET_VARS['action'] == 'process') || ($HTTP_GET_VARS['action'] == 'confirm'))) { // Désabonnement de la newsletter $newsletter_email = tep_db_prepare_input($HTTP_POST_VARS['newsletter_email']); $newsletter_query = tep_db_query("select * from " . TABLE_CUSTOMERS_NEWSLETTER . " where customers_newsletter_email = '" . tep_db_input($newsletter_email) . "'"); $newsletter = tep_db_fetch_array($newsletter_query); if ($newsletter_invite == '0') { tep_db_query("delete from " . TABLE_CUSTOMERS_NEWSLETTER . " where customers_newsletter_email = '" . tep_db_input($newsletter_email) . "'"); $messageStack->add('inscription_newsletter', TEXT_INSCRIPTION_NEWSLETTER_UPDATE); // Envoi du mail de confirmation de désabonnement à la newsletter $email_text .= EMAIL_TEXT_NON . EMAIL_GRUSS . EMAIL_abschluss; $email_betreff = EMAIL_SUBJECT . ' ' . NEWSLETTER_BOX_NON; tep_mail('', $newsletter_email, $email_betreff, $email_text, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS); } else { // Vérification de la validité du mail Falls das auch noch nicht hilft, könnte ich mir höchstens vorstellen, daß das newsletter_invite nicht richtig übergeben wird und wie folgt ausgelesen werden muß: an der Stelle: $newsletter_email = tep_db_prepare_input($HTTP_POST_VARS['newsletter_email']); darunter hinzufügen: $newsletter_invite = tep_db_prepare_input($HTTP_POST_VARS['newsletter_invite']); amaische Quote
bitwicht Posted May 6, 2008 Author Posted May 6, 2008 (edited) hallo, mit deinem letzten tip hinzufügen klappt es: darunter hinzufügen: $newsletter_invite = tep_db_prepare_input($HTTP_POST_VARS['newsletter_invite']); nur eine frage, wenn der benutzer ausgetragen ist, und ich erneut auf austragen gehe kommt: sie wurden erfolgreich ausgetragen. das heißt dein script prüft nicht, ob die mailadresse noch drin ist, er führt anscheind jetzt immer löschen aus. kannst du mir sagen was man hier machen müsste, denn wenn die mailadresse nicht registriert ist und man auf löschen geht hätte ich gern ein text ähnlich: die mailadresse ist nicht vorhanden???? ist das viel aufwand? lg bit Edited May 6, 2008 by bitwicht Quote
amaische Posted May 7, 2008 Posted May 7, 2008 Hallo, habe soeben ein entsprechendes Update hochgeladen. Wie ich gesehen habe, hast Du ebenfalls ein Update bzgl create_account hochgeladen. An dieser Baustelle hatte ich mir auch schon Gedanken gemacht - wenn ich es richtig gesehen habe, setzt Du den Newsletter gleich auf "Bestätigt" (newsletter_invite=2). Dies ist m.E. nicht zulässig, da der Kunde immer das Double-In-Verfahren durchlaufen muß. amaische hallo, mit deinem letzten tip hinzufügen klappt es: darunter hinzufügen: $newsletter_invite = tep_db_prepare_input($HTTP_POST_VARS['newsletter_invite']); nur eine frage, wenn der benutzer ausgetragen ist, und ich erneut auf austragen gehe kommt: sie wurden erfolgreich ausgetragen. das heißt dein script prüft nicht, ob die mailadresse noch drin ist, er führt anscheind jetzt immer löschen aus. kannst du mir sagen was man hier machen müsste, denn wenn die mailadresse nicht registriert ist und man auf löschen geht hätte ich gern ein text ähnlich: die mailadresse ist nicht vorhanden???? ist das viel aufwand? lg bit Quote
bitwicht Posted May 7, 2008 Author Posted May 7, 2008 @amaische ja ich habe in der create das feld newsletter wieder reingebaut und setze es gleich auf 2. ich denke wenn sich der kunde anmeldet und seine adressdaten eingibt hat er deutliche absichten. also setze ich hier den newsletter gleich auf 2. generell ist es die frage, ob "dein verfahren" überhaupt zulässig ist. normal müsste man dem kunden einen eindeutigen link zur bestätigung schicken, und nicht auf eine confirmseite. wenn ich einen anderen anmelden will, gebe ich dennen adresse ein und gehe gleich danach auf die confirm seite (ok ich muss halt vorher wissen wie der link ist) lg timo Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.