Extras - Newsletter: Anleitung, Bugfix, Neu, Multilanguage

Chrille
Beiträge: 2
Registriert: Mi 24. Aug 2005, 12:49
Kontaktdaten:

Willommensmail wird nicht versandt

Beitrag von Chrille » Mi 24. Aug 2005, 13:10

Hallo Leut'zz!

Erst mal ein riesen Looooob an alle beteiligten des Newsletter-Moduls!!!

Ich habe die Erweiterung von llconsult eingebaut, bei mir funktioniert soweit alles perfekt, bis auf eben diese:

Wenn ein user seine anmeldung bestätigen will klickt er auf den link in der mail, alles supi, bis dahin, die seite wird aufgerufen und vollständig angezeigt, er ist aktiviert!
Aber wenn ich nun im Backend den Namen des Willkommensnewsletters angebe und mich nun neu anmelde und den Aktivierungslink klicke erscheint die seite aber weder der Willkommensnewsletter wird gesendet und schon garnicht der Willkommenstext auf der seite (...du erhältst nun den Willkommensnewsletter...)

Code: Alles auswählen

 echo $msg["htmlOKConfirmWelcome"]; 
wird angezeigt!

Was kann das sein? kann mir jemand helfen???

Mein Code des Newsletter-Blackbox-Moduls lautet:

Code: Alles auswählen

<?php 
  $from = "CMS_VALUE[0]"; /* Specify sender e-mail */ 
  $welcome_title = "CMS_VALUE[1]";                /* Willkommens-Newsletter in Contenido erzeugen und Namen dieses Newsletters eintragen, damit dieser automatisch als begrüßung versandt wird. Zum deaktivieren: "" verwenden */ 

  switch ($lang): 
    case 0: /* There is never a language with id 0, just an example */ 
      $msg = array ("txtMsgSubscribeHeader"  => "Newsletter: Confirmation", 
                            "txtMsgSubscribe"            => "Dear user,\nto confirm your newsletter subscription please use this link:", 
                            "txtMsgDeleteHeader"       => "Newsletter: Cancellation", 
                            "txtMsgDelete"                 => "Dear subscriber,\nto cancel your newsletter subscription please use this link:", 
                            "htmlErrNoEMail"              => "Please specify an e-mail adress.", 
                            "htmlOKSubscribe"           => "Dear user,<br><br>you should get an e-mail in just a few seconds. Please confirm your newsletter subscription using the link provided in the e-mail.", 
                            "htmlErrSubscribe"           => "This e-mail adress is already listed for the newsletter subscription.", 
                            "htmlOKDelete"                => "Dear subscriber,<br><br>you should get an e-mail in just a few seconds. To confirm the cancellation of your newsletter subscription please use the link provided in the e-mail.", 
                            "htmlErrDelete"                => "This e-mail adress doesn't receive our newsletter.", 
                            "htmlOKConfirm"              => "Operation successful, thank you!<br><br>You are now member of the big family of subscribers to our newsletter.", 
                            "htmlOKConfirmWelcome" => " Even the welcome newsletter is on the way to you!", 
                            "htmlErrConfirm"              => "Operation not successful!<br><br>Your account hasn't been confirmed for the newsletter subscription.", 
                            "htmlOKStop"                   => "Operation successful, you will not get our newsletter until you decide to do so again.", 
                            "htmlErrStop"                   => "Operation not successful!<br><br>Your account doesn't take a break from newsletter subscription.", 
                            "htmlOKGoOn"                 => "Operation successful. We are happy to send you our newsletter again.", 
                            "htmlErrGoOn"                 => "Operation not successful!<br><br>Your account hasn't been reactivated again.", 
                            "htmlOKUnsubscribe"        => "We confirm the cancellation of the newsletter subscription.", 
                            "htmlErrUnsubscribe"        => "Operation not successful!<br><br>Your newsletter subscription hasn't been cancelled."); 
      break; 
    default: /* Use this area for your preferred (or your one and only) language */ 
      $msg = array ("txtMsgSubscribeHeader"   => "Newsletterbestätigung der Berliner Jugendfeuerwehr", 
                            "txtMsgSubscribe"             => "BERLINER JUGENDFEUERWEHR\n- Internetgruppe -\n\n\nLiebe(r) NutzerIn,\nvielen Dank für dein Interesse am Newsletter der Berliner Jugendfeuerwehr!\n\nGerne senden wir dir unseren Newsletter mit den neuesten Infos rund um die Berliner Jugendfeuerwehr, Terminen und Veranstaltungstipps zu.\n\nUm dich jedoch beim versenden zu berücksichtigen und auszuschließen, dass sich jemand anders mit deiner eMail-Adresse eingetragen hat, musst Du deine Teilnahme am Newsletter bestätigen.\n\nZum bestätigen deines Newsletterabos, klicke bitte einfach auf den unten stehenden Link:", 
                            "txtMsgDeleteHeader"       => "Abbestellen: Newsletter der Berliner Jugendfeuerwehr", 
                            "txtMsgDelete"                 => "BERLINER JUGENDFEUERWEHR\n- Internetgruppe -\n\n\nLieber Newsletterabonnent, \nschade, dass Du dich entschlossen hast, unseren Newsletter nicht mehr zu beziehen!\n\nUm dein Newsletterabo zu kündigen und deine Daten endgültig zu löschen, klicke bitte auf untenstehenden Link:", 
                            "htmlErrNoEMail"              => "<h3>Fehler</h3><p class=rot><strong>Folgende Pflichfelder(*) wurden nicht ausgefüllt:</strong></p><div style=\"color:red;\" class=list1><ul><li>Deine eMail-Adresse:*</li></ul></div><p class=rot><strong>Fülle bitte alle benötigten Felder aus!</strong></p>
<strong><em><p><a href=\"".$idcat.".html\">...zurück</a></p></em></strong><p><p>&nbsp;</p></p>", 

                            "htmlOKSubscribe"           => "<h1>Newsletter Anmeldung</h1><p>Die eMail mit dem Bestätigungs-Link ist bereits auf dem Weg zu dir!</p><p><strong>Damit Du unseren Newsletter empfangen kannst, musst Du unbedingt deine Teilnahme durch den Link in der eMail bestätigen!</strong></p><p><p>&nbsp;</p></p>", 
                            "htmlErrSubscribe"           => "<h3>Fehler</h3><H1>Diese eMail-Addresse ist bereits für den Newsletter eingetragen.</H1><p><em>Wir versenden unseren Newsletter in unregelmäßigen Abständen. Solltest Du also über längere Zeit keine eMail von uns erhalten haben, bedeutet das nicht gleich, dass Du nicht mehr in der Datenbank stehst... (<a href=\"mailto:sascha.krusch%40berliner-jugendfeuerwehr.de?subject=Newsletter-Neuanmeldung: Empfänger existiert bereits\">Hilfe</a>)</em></p><p><p>&nbsp;</p></p>", 

                            "htmlOKDelete"                => "<H1>Lieber Abonnent,</H1><p>die eMail mit dem Aktions-Link ist auf dem Weg zu dir!</p><p><strong>Um die Kündigung deines Newsletterabos zu bestätigen, klicke bitte auf den Link in der eMail!</strong></p><p><p>&nbsp;</p></p>", 
                            "htmlErrDelete"                => "<h3>Fehler</h3><H1>Diese eMail-Addresse ist <u>nicht für den Newsletter eingetragen</u> und kann somit nicht gelöscht werden.</H1><p><p>&nbsp;</p></p>", 

                            "htmlOKConfirm"              => "<H1>Die Anmeldung war erfolgreich, vielen Dank und viel Spaß beim lesen!</H1><p>Du hast dein Newsletterabonnement erfolgreich bestätigt und erhältst von nun an unseren Newsletter!</p><p><p>&nbsp;</p></p>", 
                            "htmlOKConfirmWelcome" => "<em><p>P.S. Damit Du auch nichts verpasst, erh&auml;ltst Du gleich die aktuelle Ausgabe von unserem Newsletter!</p></em><em><p>Also, ein Blick in dein eMail-Postfach lohnt sich ...</p></em><p><p>&nbsp;</p></p>",                            
                            "htmlErrConfirm"              => "<h3>Fehler</h3><H1>Aktion fehlgeschlagen!</H1><p>Dein Newsletterabonnement konnte nicht bestätigt werden (<a href=\"mailto:sascha.krusch%40berliner-jugendfeuerwehr.de?subject=Newsletter-Bestätigung: Abonnement konnte nicht bestätigt werden\">Hilfe</a>).</p><p><p>&nbsp;</p></p>",

                            "htmlOKStop"                   => "<H1>Dein Newsletterabonnement pausiert!</H1><p>Du hast deine eMail-Adresse temporär für den Empfang unseres Newsletters ''blockiert'' und erhältst vorerst keine eMail mehr.</p><p>Bitte beachte, dass deine Daten hiermit <u>nicht</u> aus der Datenbank gelöscht wurden.</p><p>Bei Bedarf kannst Du den Empfang wieder freischalten (letzten Newsletter mit Aktivierungslink aufbewahren!) oder deine Daten endgültig löschen.</p><p><p>&nbsp;</p></p>", 
                            "htmlErrStop"                   => "<h3>Fehler</h3><H1>Aktion fehlgeschlagen!</H1><p>Dein Newsletterabonnement konnte nicht pausiert werden (<a href=\"mailto:sascha.krusch%40berliner-jugendfeuerwehr.de?subject=Newsletter-Bestätigung: Account konnte nicht pausiert werden\">Hilfe</a>).</p><p><p>&nbsp;</p></p>", 

                            "htmlOKGoOn"                 => "<H1>Abonnement reaktiviert!</H1><p>Deine eMail-Adresse wurde wieder für unseren Newsletter freigeschaltet und wird nun wieder beim Versandt berücksichtigt!</p><p><p>&nbsp;</p></p>", 
                            "htmlErrGoOn"                 => "<h3>Fehler</h3><H1>Aktion fehlgeschlagen!</H1><p>Dein Newsletterabonnement konnte nicht reaktiviert werden (<a href=\"mailto:sascha.krusch%40berliner-jugendfeuerwehr.de?subject=Newsletter-Bestätigung: Account konnte nicht reaktiviert werden\">Hilfe</a>).</p><p><p>&nbsp;</p></p>", 

                            "htmlOKUnsubscribe"        => "<H1>Abonnement gelöscht!</H1><p>Wir bestätigen hiermit die Kündigung deines Newsletterabonnements und die Löschung deiner Daten aus der Datenbank!</p><p>Von nun an erhältst Du keinen Newsletter mehr von uns!</p><p><p>&nbsp;</p></p>", 
                            "htmlErrUnsubscribe"        => "<h3>Fehler</h3><H1>Aktion fehlgeschlagen!</H1><p>Dein Newsletterabonnement konnte nicht gelöscht werden (<a href=\"mailto:sascha.krusch%40berliner-jugendfeuerwehr.de?subject=Newsletter-Bestätigung: Account konnte nicht gelöscht werden\">Hilfe</a>).</p><p><p>&nbsp;</p></p>"); 
  endswitch; 

$rcp_id = 0; 
$rcp_found = false; 

if ($action == "subscribe") 
{ 
  if (!isset($email) || !$email) { 
    echo $msg["htmlErrNoEMail"]; 
  } else { 
    $encoded_email = urlencode(strtolower($email)); 
    $sql = "SELECT idnewsrcp FROM ".$cfg["tab"]["news_rcp"] ." WHERE email = '$encoded_email' AND idclient='$client' AND idlang='$lang'"; 
  
    $db->query($sql); 
    if (!$db->next_record()) 
    { 
      $body = $msg["txtMsgSubscribe"]."\n".$cfgClient[$client]["path"]["htmlpath"]."index.php?changelang=".$lang."&idcatart=".$newsletteridcatart."&confirm=".md5($encoded_email)."\n\n"; 

      $timestamp = date("Y-m-d H:i:s"); 
      $sql = "INSERT INTO ".$cfg["tab"]["news_rcp"] ." SET idnewsrcp = '".$db->nextid($cfg["tab"]["news_rcp"])."', idclient='$client', idlang='$lang', author='website', email='$encoded_email', name='".urlencode($emailname)."', deactivated='1', created='$timestamp'"; 
      $db->query($sql); 

      mail("$email", $msg["txtMsgSubscribeHeader"], "$body", 'From: '.$from."\n"."X-Mailer: Contenido [PHP/" . phpversion()."]"); 

      echo $msg["htmlOKSubscribe"]; 
    } else { 
      echo $msg["htmlErrSubscribe"]; 
    } 
  } 
} 

if ($action == "delete") 
{ 
  if (!isset($email) || !$email) { 
    echo $msg["htmlErrNoEMail"]; 
  } else { 
    $encoded_email = urlencode(strtolower($email)); 
    $sql = "SELECT idnewsrcp FROM ".$cfg["tab"]["news_rcp"] ." WHERE email = '$encoded_email' AND idclient='$client' AND idlang='$lang'"; 
  
    $db->query($sql); 
    if ($db->next_record()) 
    { 
      $body = $msg["txtMsgDelete"]."\n".$cfgClient[$client]["path"]["htmlpath"]."index.php?changelang=".$lang."&idcatart=".$newsletteridcatart."&unsubscribe=".md5($encoded_email)."\n\n"; 

      mail("$email", $msg["txtMsgDeleteHeader"], "$body", 'From: '.$from."\n"."X-Mailer: Contenido [PHP/" . phpversion()."]"); 

      echo $msg["htmlOKDelete"]; 
    } else { 
      echo $msg["htmlErrDelete"]; 
    } 
  } 
} 

if (strlen($confirm) == 32) 
{ 
  $sql = "SELECT idnewsrcp, name, email FROM ".$cfg["tab"]["news_rcp"] ." WHERE idclient='$client' AND idlang='$lang' AND confirmed = '0'"; 
  $db->query($sql); 

  while (!$rcp_found && $db->next_record()) 
  { 
    if ($confirm == md5($db->f("email"))) 
    { 
      $rcp_found = true; 
      $rcp_id = $db->f("idnewsrcp"); 
      $name = urldecode($db->f("name")); 
      $encoded_email = $db->f("email"); 
      $to = urldecode($encoded_email); 
      /* If no name given, use e-mail as name */ 
      if (empty($name)) { 
        $name = $to; 
      } 
    } 
  } 
  if ($rcp_found) { 
    $sql = "UPDATE " .$cfg["tab"]["news_rcp"] ." SET confirmed = '1', deactivated = '0' WHERE idnewsrcp = '".$rcp_id."'"; 
    $db->query($sql); 
    echo $msg["htmlOKConfirm"]; 
    if ($welcome_title != "") { 
      $sql = "SELECT * FROM ".$cfg["tab"]["news"]." WHERE idclient='$client' AND idlang='$lang' AND name='$welcome_title'"; 
      $db->query($sql); 
      if ($db->next_record()) { 
        $from    = $db->f("newsfrom"); 
        $subject = $db->f("subject"); 
        $message = $db->f("message"); 
        $date    = $db->f("newsdate"); 
        $dateday = $date[8].$date[9].".".$date[5].$date[6].".".$date[0].$date[1].$date[2].$date[3]; 
        $time    = $date[11].$date[12].":".$date[14].$date[15].":".$date[17].$date[18]; 
      
        $sql = "SELECT idclient, htmlpath FROM ".$cfg["tab"]["clients"]." WHERE idclient='$client'"; 
        $db->query($sql); 
        $db->next_record(); 
        $path = $db->f("htmlpath")."front_content.php?changelang=".$lang."&idcatart=".$newsletteridcatart."&"; 

        $message = str_replace("MAIL_NUMBER", "1", $message); /* $number wird mit 1 gesetzt, da nur ein Empfänger */ 
        $message = str_replace("MAIL_DATE", "$dateday", $message); 
        $message = str_replace("MAIL_TIME", "$time", $message); 
        $message = str_replace("MAIL_NAME", $name, $message); 
      
      //HTML-Version 
      $messageHTML = str_replace("MAIL_UNSUBSCRIBE", "<a href=\"".$path."unsubscribe=".md5($encoded_email)."\">Zusendung einstellen und Daten löschen</a>", $message); /* HerrB: $to -> md5($encoded_email) */ 
      $messageHTML = str_replace("MAIL_STOP", "<a href=\"".$path."stop=".md5($encoded_email)."\">Newsletter stoppen</a>", $messageHTML); /* HerrB: see above */ 
      $messageHTML = str_replace("MAIL_GOON", "<a href=\"".$path."goon=".md5($encoded_email)."\">Newsletterversand erneut aktivieren</a>", $messageHTML); /* HerrB: see above */                                                                                      
      //Text-Version 
      $messageTxt = str_replace("MAIL_UNSUBSCRIBE", $path."unsubscribe=".md5($encoded_email), $message); /* HerrB: $to -> md5($encoded_email) */ 
      $messageTxt = str_replace("MAIL_STOP", $path."stop=".md5($encoded_email), $messageTxt); /* HerrB: see above */ 
      $messageTxt = str_replace("MAIL_GOON", $path."goon=".md5($encoded_email), $messageTxt); /* HerrB: see above */ 
      $messageTxt = str_replace("<BR>","\n",$messageTxt); // einfacher Zeilenumbruch 
      $messageTxt = str_replace("</P>","</P>\n",$messageTxt); // Absatzumbruch 
                  
      $mail = new phpmailer(); 
      $absender = explode(";",$from); 
      
      
      if (count($absender)>1) { 
      $mail->From     = $absender[0]; 
      $mail->FromName = $absender[1]; 
    }else{ 
      $mail->From     = $from; 
      $mail->FromName = $from; 
    } 
      $mail->AddAddress($to, $name); 
      /* set mail function to use */ 
      $mail->Mailer   = "mail"; //use php mail function 

   /* generate subject & body */ 
       $mail->Subject = $subject; 
       $mail->Body    =$messageHTML; 
       $mail->AltBody =strip_tags(html_entity_decode($messageTxt)); 
        
      if ($mail->send())   {
          echo $msg["htmlOKConfirmWelcome"]; 
        } 
      } 
    } 
  } else { 
    echo $msg["htmlErrConfirm"]; 
  }
} 

if (strlen($stop) == 32) 
{ 
  $sql = "SELECT idnewsrcp, email FROM ".$cfg["tab"]["news_rcp"] ." WHERE idclient='$client' AND idlang='$lang'"; 
  $db->query($sql); 

  while (!$rcp_found && $db->next_record()) 
  { 
    if ($stop == md5($db->f("email"))) 
    { 
      $rcp_found = true; 
      $rcp_id = $db->f("idnewsrcp"); 
    } 
  } 
  if ($rcp_found) { 
    $sql = "UPDATE " .$cfg["tab"]["news_rcp"] ." SET deactivated = '1' WHERE idnewsrcp = '".$rcp_id."'"; 
    $db->query($sql); 
    echo $msg["htmlOKStop"]; 
  } else { 
    echo $msg["htmlErrStop"]; 
  } 
} 

if (strlen($goon) == 32) 
{ 
  $sql = "SELECT idnewsrcp, email FROM ".$cfg["tab"]["news_rcp"] ." WHERE idclient='$client' AND idlang='$lang'"; 
  $db->query($sql); 

  while (!$rcp_found && $db->next_record()) 
  { 
    if ($goon == md5($db->f("email"))) 
    { 
       $rcp_found = true; 
       $rcp_id = $db->f("idnewsrcp");        
    } 
  } 
  if ($rcp_found) { 
    $sql = "UPDATE " .$cfg["tab"]["news_rcp"] ." SET deactivated = '0' WHERE idnewsrcp = '".$rcp_id."'"; 
    $db->query($sql); 
    echo $msg["htmlOKGoOn"]; 
  } else { 
    echo $msg["htmlErrGoOn"]; 
  }  
} 

if (strlen($unsubscribe) == 32) 
{ 
  $sql = "SELECT idnewsrcp, email FROM ".$cfg["tab"]["news_rcp"] ." WHERE idclient='$client' AND idlang='$lang'"; 
  $db->query($sql); 

  while (!$rcp_found && $db->next_record()) 
  { 
    if ($unsubscribe == md5($db->f("email"))) 
    { 
       $rcp_found = true; 
       $rcp_id = $db->f("idnewsrcp"); 
    } 
  } 
  if ($rcp_found) { 
    $sql = "DELETE FROM " .$cfg["tab"]["news_rcp"] ." WHERE idnewsrcp = '".$rcp_id."'"; 
    $db->query($sql); 
    echo $msg["htmlOKUnsubscribe"]; 

  } else { 
    echo $msg["htmlErrUnsubscribe"]; 
  }    
} 
?>

Ach ja, im ErrorLog konnte ich folgendes finden:

Code: Alles auswählen

[24-Aug-2005 13:31:42] PHP Parse error:  parse error, unexpected '}' in /homepages/32/d21406323/htdocs/contenido/includes/functions.mod.php(155) : eval()'d code on line 6
[24-Aug-2005 13:31:56] PHP Parse error:  parse error, unexpected '}' in /homepages/32/d21406323/htdocs/contenido/includes/functions.mod.php(155) : eval()'d code on line 6
[24-Aug-2005 13:32:37] PHP Parse error:  parse error, unexpected '}' in /homepages/32/d21406323/htdocs/contenido/includes/functions.mod.php(155) : eval()'d code on line 6
[24-Aug-2005 13:32:46] PHP Fatal error:  Cannot instantiate non-existent class:  phpmailer in /homepages/32/d21406323/htdocs/index.php(563) : eval()'d code on line 902
Bin nun leider nicht sooon PHP-Talent...

Würd mich echt freuen wenn jemand helfen kann!
Danke im Voraus

Chrille

hari
Beiträge: 39
Registriert: Do 21. Aug 2003, 19:21
Kontaktdaten:

Kein Willkommensletter an neuem User

Beitrag von hari » Fr 26. Aug 2005, 07:47

Hier wurde bereits das Thema erwähnt, aber noch nicht richtig, bzw komplett beantwortet.

Ich habe einen Newsletter erstellt und es "Willkommen" genannt. Dieses habe ich auch in die "Newsletterblackbox" eingetragen. Siehe Code:

Code: Alles auswählen


    $db->query($sql);
    echo $msg["htmlOKConfirm"];
    if ($welcome_title != "Willkommen") {
      $sql = "SELECT * FROM ".$cfg["tab"]["news"]." WHERE idclient='$client' AND idlang='$lang' AND name='$welcome_title'";
      $db->query($sql);

Nun habe ich das ganze einmal getestet und mich als neuen Interessenten eingetragen und auch bestätigt. Nur erhalte ich dann leider keinen Willkommen-Newsletter.

Muss ich da vielleicht noch an weitere Dinge denken bzw. eintragen?

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Sa 27. Aug 2005, 06:30

@Chrille: So auf die Schnelle: Irgendwo ist da was im Code falsch oder eine Deiner Uebersetzungen enthaelt Zeichen, die fuer PHP relevant sind - die solltest Du nochmal ueberpruefen.

@hari:
Was ist das fuer ein Code? Setzt Du den Code von Seite 1 ein? Dann brauchst Du nur den Namen des Willkommensnewsletters in den ersten Zeilen eintragen. Die Zeile "if ($welcome_title != "Willkommen") {" kenne ich nicht...

Gruss
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

hari
Beiträge: 39
Registriert: Do 21. Aug 2003, 19:21
Kontaktdaten:

Anfang uebersehen

Beitrag von hari » Sa 27. Aug 2005, 07:58

Vertan, vertan.

Ich habe die Zeile am Anfang ganz übersehen. Benutzt habe ich die Zeile innerhalb des Cods. Dieses war eben nicht richtig.
Nun funktioniert es auch.

Chrille
Beiträge: 2
Registriert: Mi 24. Aug 2005, 12:49
Kontaktdaten:

Beitrag von Chrille » So 28. Aug 2005, 14:11

HerrB hat geschrieben:@Chrille: So auf die Schnelle: Irgendwo ist da was im Code falsch oder eine Deiner Uebersetzungen enthaelt Zeichen, die fuer PHP relevant sind - die solltest Du nochmal ueberpruefen.
Hmm, hab nun schon fast alles probiert, hab sogar schon meine Übersetzungen (eintrag erfolgreich... usw.) durch die des Original-Moduls ersetzt, ich dachte vielleicht sind meine Texte zu umfangreich oder so.
Aber soweit ich alles probiert habe half nichts davon...

Ich tippe darauf, dass was im Code falsch ist, aber was???
Was kann ich denn nun machen, hat denn keiner ne ahnung was das sein kann?

kypta
Beiträge: 295
Registriert: Di 8. Jul 2003, 13:25
Kontaktdaten:

Beitrag von kypta » Di 27. Sep 2005, 13:35

Was mir noch fehlte war eine E-Mail Überprüfung. Bis anhin werden die E-Mail-Adressen ja nicht darauf geprüft, ob sie überhaupt korrekt sind. Ebenso werden noch alle "hardcodierten" Zeilenumbüche (CR und NL) rausgenommen -> Spamer versuchen ja öfter mal, mehr als eine E-Mail-Adresse in ein Formular reinzupacken - in der Hoffnung, er könnte das Script für sich selber nutzen.

Mehr zu diesem Thema unter: http://www.egm.at/weblog/entry.php?id=01167

Mein Code kann den Abschnitt "if (subscribe)" ersetzen:

Code: Alles auswählen

if ($action == "subscribe") 
{ 
  if (!isset($email) || !$email) { 
    echo $msg["htmlErrNoEMail"]; 
  } else { 
  	// e-mail adresse überprüfen
	$email_2_check = urldecode(strtolower($email));
	if (eregi ("^([a-z0-9_]|-|.)+@(([a-z0-9_]|-)+.)+[a-z]{2,4}$", $email_2_check))
	{
		$value = ereg_replace("\n","",$value);
		$value = ereg_replace("\r","",$value); 
		// e-mail adresse überprüfen ende 
	    $encoded_email = urlencode($email_2_check); 
	    $sql = "SELECT idnewsrcp FROM ".$cfg["tab"]["news_rcp"] ." WHERE email = '$encoded_email' AND idclient='$client' AND idlang='$lang'"; 
  
	    $db->query($sql); 
	    if (!$db->next_record()) 
	    { 
	      $body = $msg["txtMsgSubscribe"]."\n".$cfgClient[$client]["path"]["htmlpath"]."front_content.php?changelang=".$lang."&idcatart=".$newsletteridcatart."&confirm=".md5($encoded_email)."\n\n"; 

	      $timestamp = date("Y-m-d H:i:s"); 
	      $sql = "INSERT INTO ".$cfg["tab"]["news_rcp"] ." SET idnewsrcp = '".$db->nextid($cfg["tab"]["news_rcp"])."', idclient='$client', idlang='$lang', author='website', email='$encoded_email', name='".urlencode($emailname)."', deactivated='1', created='$timestamp'"; 
	      $db->query($sql); 

	      mail("$email", $msg["txtMsgSubscribeHeader"], "$body", 'From: '.$from."\n"."X-Mailer: Contenido [PHP/" . phpversion()."]"); 
	
	      echo $msg["htmlOKSubscribe"]; 
	    } else { 
	      echo $msg["htmlErrSubscribe"]; 
	    }
	} else {
		// da müsste natürlich das msg-array noch erweitert werden
		echo "Die E-Mail-Adresse ist nicht korrekt";
	}  
  } 
}
Gruss
Thomas

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Di 27. Sep 2005, 14:58

Ist in der kommenden Version für Contenido V4.6 bereits integriert. Das mit den \n und \r nehme ich noch rein, danke.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

McSilver
Beiträge: 60
Registriert: Mo 25. Apr 2005, 12:14
Wohnort: Teltow
Kontaktdaten:

Beitrag von McSilver » Di 1. Nov 2005, 12:49

ich habe versucht, die Änderungen den HTMLArea2 für das Newslettermodul einzubinden.
Allerdings zeigt er mir das "Ding erst garnicht.
Kann es daran liegen, dass ich ansonsten den fckeditor2 eingebunden habe?

habe alle Änderungen von ILCONSULT übernommen und in der config.php eine zusätzliche Zeile eingebunden
/* The server path to the desired WYSIWYG-Editor */
$cfg['path']['wysiwyg'] = '/homepages/xx/xxxxxxxx/xxx/xxxxxxxx/contenido/external/wysiwyg/fckeditor2/';


/* The web path to the desired WYSIWYG-Editor */
$cfg['path']['wysiwyg_html'] = 'http://xxxxxxxxxxxx/contenido/external/ ... ckeditor2/';
$cfg['path']['htmlarea2'] = 'http://xxxxxxxxxxx/contenido/external/w ... htmlarea2/';
weiß jemand Rat? ... oder habe ich damit keine Chance?
Habe es auch mit dem fckeditor ausprobiert , dar kommt zwar, aber ausserhalb des Newsletter-Formulars. Er bestätigt zwar die Speicherung der Eingabe, übernimmt diese aber nicht.

McSilver
Beiträge: 60
Registriert: Mo 25. Apr 2005, 12:14
Wohnort: Teltow
Kontaktdaten:

Entschuldigung

Beitrag von McSilver » Di 1. Nov 2005, 14:42

:oops:
Hab's endlich überrissen!!
Htmlarea2 geht nur im IE. Da ich aber fast ausschlieslich auf Mozilla / Firefox fixiert bin, hat's nicht geklappt! im IE schon!

.... oder vielleicht doch?

malsdgtac
Beiträge: 717
Registriert: Fr 12. Mär 2004, 15:50
Kontaktdaten:

Beitrag von malsdgtac » Mi 9. Nov 2005, 09:01

Ich verwende den HTML-Newsletter schon mehrmals, und er funktioniert immer wieder super - schönes Teil!

2 Fragen dazu:

1. hat sich schon jemand darüber gemacht den "vom Newsletter abmelden" Link zu integrieren. Meine Variante (steht auch irgendwo hier in den 14 Seiten) funktioniert ja - ist aber etwas kompliziert aber ich habe keine bessere Idee.

2. Hat jemand eine Textversion des HTML-Newsletter integriert, oder hat jemand eine Idee wie ich das umsetzen könnte? Mir würde es für den Anfang auch schon reichen, wenn es oberhalb des HTML-Teils einen Link wie "Sie können diesen Newsletter nicht lesen - dan klicken Sie hier" mit dem Link auf die entsprechende Webseite zum Newsletter.

Danke für Eure Antworten

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Do 10. Nov 2005, 00:02

Sagen wir mal, dass das Punkt 1 auf meiner ToDo-Liste ist - allerdings für das Modul in Version 4.6. Dort gibt es sogar bereits einen schönen Ansatz.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

busi
Beiträge: 82
Registriert: Mi 18. Sep 2002, 13:36
Kontaktdaten:

Beitrag von busi » Sa 12. Nov 2005, 14:35

Hallo alle,

Kann mir jemand weiterhelfen? Ich habe den Newsletter installiert, alle Dateien hochgeladen und die Tabelle in der DB angepasst, trotzdem erhalte ich immer die folgende Fehlermeldung im Errorlog:

Code: Alles auswählen

Invalid SQL: INSERT INTO con_news_rcp SET idnewsrcp = '85', idclient='1', idlang='1', author='website', email='test%40bfdesign.ch', name='ad', deactivated='1', created='2005-11-12 14:27:33'<br><br>
Der SQL Befehl im Newsletter Blackbox Modul sieht so aus:

Code: Alles auswählen

      $sql = "INSERT INTO ".$cfg["tab"]["news_rcp"] ." SET idnewsrcp = '".$db->nextid($cfg["tab"]["news_rcp"])."', idclient='$client', idlang='$lang', author='website', email='$encoded_email', name='".urlencode($emailname)."', deactivated='1', created='$timestamp'"; 
Fazit ist, dass sich niemand am Newsletter anmelden kann. Was kann ich machen, um den Fehler zu beheben?

Besten Dank schon mal.
busi

"...please forgive me, now I see that I've been blind..."

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Sa 12. Nov 2005, 15:11

Welche Contenido-Version?

Da der Code nachweislich korrekt ist, solltest Du die Datenbanktabelle nochmal überprüfen.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

busi
Beiträge: 82
Registriert: Mi 18. Sep 2002, 13:36
Kontaktdaten:

Beitrag von busi » So 13. Nov 2005, 17:37

@ HerrB

Danke für den Tipp. Habe die DB-Felder (confirmed & hash) mal gelöscht und neu erstellt und nun funktionierts.
busi

"...please forgive me, now I see that I've been blind..."

JochBec
Beiträge: 54
Registriert: Sa 18. Dez 2004, 15:11
Kontaktdaten:

Newsletter verschickt sich doppelt an jede Adresse

Beitrag von JochBec » Do 8. Dez 2005, 19:32

Hallo :)

bei mir lief der Newsletter super, klappt auch immer noch ohne Fehler und ohne Eintrag im Error Log. AAAAber:

neuerdings wird der Letter an jeden Empfänger 2x verschickt. Und das ohne nachvollziehbare Änderung oder Anpassung. Ist plötzlich einfach so passiert.

Spooky... hat jemand eine Idee? Die Adressen liegen alle nur einmal vor...

Greetz und Danke!

Gesperrt