Newsletter: Bestätigungslink funktioniert nicht richtig...

Gesperrt
Acidgod
Beiträge: 91
Registriert: Di 6. Jan 2004, 10:17
Wohnort: Bremen
Kontaktdaten:

Newsletter: Bestätigungslink funktioniert nicht richtig...

Beitrag von Acidgod »

Habe mir das Newsletter Modul installiert:

http://www.contenido.de/forum/viewtopic.php?t=3684

Nur wenn ich jetzt auf den Bestätigungslink klicke dann wird im Backend zwar der "Deaktiviert" deaktiviert, nur der Punkt "Bestätigt" bleibt leider deaktiviert (sollte doch sicherlich nicht der Fall sein, oder?).
Die Funktion "stop" & "unsubscribe" scheinen auch nicht zu funzen...

Meine news.php:

Code: Alles auswählen

<?php
$targetidcatart = 9;

include ("config.php");
include ($contenido_path . "includes/config.php");
include ($cfg["path"]["contenido"].$cfg["path"]["includes"] . "cfg_sql.inc.php");
#include ($cfg["path"]["contenido"].$cfg["path"]["includes"] . "cfg_language_".$language.".inc.php");
include ($cfg["path"]["contenido"].$cfg["path"]["includes"] . "functions.general.php");

$oldpwd = getcwd();
chdir($cfg["path"]["contenido"].$cfg["path"]["cronjobs"]);
include ($cfg["path"]["contenido"].$cfg["path"]["includes"] . "pseudo-cron.inc.php");
chdir($oldpwd);



$db = new DB_Contenido;

if ($cfgClient["set"] != "set")
{
  rereadClients ();

}

        $sql = "SELECT
				idlang,
                encoding
            FROM
            ".$cfg["tab"]["lang"];

        $db->query($sql);

        while ($db->next_record())
        {
        	$encoding[$db->f("idlang")] = $db->f("encoding");
        }

// Sprache wechseln
if (isset($changelang)) $lang = $changelang;

// Client wechseln
if (isset($changeclient)){
    $client = $changeclient;
    unset($lang);
}

// Client initialisieren
if (!isset($client)) {
        //load_client defined in frontend/config.php
        $client = $load_client;
}

// Initialize language
if (!isset($lang)) {
    //if is an entry load_lang in frontend/config.php use it,    else use the first language of this client
    if(isset($load_lang)){
        //load_client is set in    frontend/config.php
        $lang = $load_lang;

    }else{

        $sql = "SELECT
                    A.idlang
                FROM
                    ".$cfg["tab"]["clients"]." AS A,
                    ".$cfg["tab"]["lang"]." AS B
                WHERE
                    idclient='$client' AND
                    A.idlang=B.idlang AND
                    B.active='1'
                LIMIT
                    0,1";

        $db->query($sql);
        $db->next_record();

        $lang = $db->f("idlang");

    }
}

if (strlen($_GET["stop"]) == 32)
{
	$loc .= "&stop=".$_GET["stop"];
}

if (strlen($_GET["goon"]) == 32){
	$loc .= "&goon=".$_GET["goon"];
}

if (strlen($_GET["unsubscribe"]) == 32)
{
	$loc .= "&unsubscribe=".$_GET["unsubscribe"];
}

if (strlen($_GET["confirm"]) == 32)
{
	$loc .= "&confirm=".$_GET["confirm"];
}
header ("Location: ".$cfgClient[$client]["path"]["htmlpath"]."front_content.php?idcatart=$targetidcatart".$loc);

?>
Mein Modul Newsletter I:

Code: Alles auswählen

<?php 
/* 
Created by unknown 
Extended by Stefano Gregis 17.03.2004 
*/ 



$error_mail_farbe='c1f7b3'; // farbe beliebig wählen 
$now = date('Y-m-d H:i:s'); 

echo '<table width="100%">'; // Diese Tabelle wird am schluss des anderen Moduls geschlossen 

/* Das erste mal muss das Modul keine Fehlermeldung darstellen, deshalb wird überprüft, od $firsttime auf 1 gestezt ist (das passiert nur wenn man das Form im zweiten Modul schickt)*/ 


if ($firsttime==1){ 
   if (!strstr($email,".") OR !strstr($email,"@") OR $email == "" OR $name ==""){ 
      if ($name ==""){ 
         $error_mail_1 = $error_mail_farbe; 
         echo '<tr> 
               <td colspan="2"><em>Fügen Sie bitte Ihr Name und Vorname ein.</em> 
               </td> 
              </tr>'; //end echo 
      } // end if name is null 
      else { 
         $error_mail_2 = $error_mail_farbe; 
         echo '<tr> 
               <td colspan="2"><em>Sie haben keine gültige EMail Adresse angegeben, bitte überprüfen Sie Ihre Eingabe</em> 
               </td> 
              </tr>'; //end echo 
      } // end else 
   } // end if "name und/oder e-mail ungültig" 
   else { 
      $from = 'Newsletter <newsletter@rawert.de>'; //adresse selber anpassen 
      $confirmText = 'Vielen Dank für Ihren Eintrag in unsere Newsletter-Kartei! Sehr geehrter Interessent, um Ihre Teilnahme am Newsletter zu bestätigen, klicken Sie bitte auf untenstehenden Link:'; 

      if ($action == "subscribe"){ 
         $sql = "SELECT idnewsrcp FROM ".$cfg["tab"]["news_rcp"] ." WHERE email = '$email' AND idclient='$client' AND idlang='$lang'"; 
          $db->query($sql); 
           if (!$db->next_record()){ 
            $body = $confirmText."\n".$cfgClient[$client]["path"]["htmlpath"]."news.php?confirm=".md5($email)."\n\n"; 
            $sql = "INSERT INTO ".$cfg["tab"]["news_rcp"] ." SET idnewsrcp = '".$db->nextid($cfg["tab"]["news_rcp"])."', idclient='$client', idlang='$lang', email='$email', name='$name', deactivated='1', created='$now'"; 
            $db->query($sql); 
              mail("$email", "Newsletter-Bestätigung", "$body", 'From: '.$from."\n"."X-Mailer: Contenido [PHP/" . phpversion()."]"); 
              echo '<tr> 
                  <td colspan="2"><em>Sehr geehrter Interessent,<br><br>es wurde Ihnen eine E-Mail geschickt, um Ihre Teilnahme am Newsletter zu bestätigen.</em></td> 
                </tr>'; // end echo 
            $firsttime=2; // So wird das zweites Modul nicht mehr dargestellt. 
           }  // end if "next_record" 
         else { 
            echo '<tr> 
                  <td colspan="2"><em>Diese E-Mail-Adresse ist bereits für den Newsletter eingetragen.</em></td> 
                </tr>'; //end echo 
           } //end else 
      } // end if "subscribe" 
   } // end else (name und e-mail gültig) 
} // end if ($firsttime = 1) 

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

  while ($db->next_record()) 
  { 
    if ($confirm == md5($db->f("email"))) 
    { 
       $sql = "UPDATE " .$cfg["tab"]["news_rcp"] ." SET deactivated = '0', lastmodified='$now' WHERE idnewsrcp = '".$db->f("idnewsrcp")."'"; 
       $db->query($sql); 
       echo '<tr> 
             <td colspan="2"><em>Vielen Dank, Sie wurden nun in den Newsletter aufgenommen.</em></td> 
                </tr>'; //end echo 
      $firsttime=2; // So wird das zweites Modul nicht mehr dargestellt. 
    } //end if 
  } // end while 
} // end if (action=confirm) 

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

  while ($db->next_record()) 
  { 
    if ($stop == md5($db->f("email"))) 
    { 
       $sql = "UPDATE " .$cfg["tab"]["news_rcp"] ." SET deactivated = '1', lastmodified='$now' WHERE idnewsrcp = '".$db->f("idnewsrcp")."'"; 
       $db->query($sql); 
       echo '<tr> 
             <td colspan="2"><em>Sie wurden von der Newsletterverteilung ausgenommen.</em></td> 
                </tr>'; //end echo 
      $firsttime=2; // So wird das zweites Modul nicht mehr dargestellt. 
    } //end if 
  } // end while 
} // end if (action=stop) 

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

  while ($db->next_record()) 
  { 
    if ($goon == md5($db->f("email"))) 
    { 
       $sql = "UPDATE " .$cfg["tab"]["news_rcp"] ." SET deactivated = '0', lastmodified='$now' WHERE idnewsrcp = '".$db->f("idnewsrcp")."'"; 
       $db->query($sql); 
       echo '<tr> 
             <td colspan="2"><em>Der Newsletter wird nun wieder an Sie verschickt.</em></td> 
                </tr>'; //end echo 
      $firsttime=2; // So wird das zweites Modul nicht mehr dargestellt. 
    } //end if 
  } // end while 
} // end if (action=goon) 

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

  while ($db->next_record()) 
  { 
    if ($unsubscribe == md5($db->f("email"))) 
    { 
       $sql = "DELETE FROM " .$cfg["tab"]["news_rcp"] ." WHERE idnewsrcp = '".$db->f("idnewsrcp")."'"; 
       $db->query($sql); 
       echo '<tr> 
             <td colspan="2"><em>Sie wurden nun aus unserer Empfängerdatenbank entfernt.</em></td> 
                </tr>'; //end echo 
      $firsttime=2; // So wird das zweites Modul nicht mehr dargestellt. 
    } //end if 
  } // end while 
} // end if (action=unsubscribe) 

?>
Mein Modul Newsletter II:

Code: Alles auswählen

<?php 
/* 
Created by unknown 
Extended by Stefano Gregis 17.03.2004 
*/ 



include($cfg['path']['contenido']."includes/cfg_language_de.inc.php"); 

if ($firsttime !=2){ 

$newsletterIDCatArt = 9; // Wert selber konfigurieren hier und im news.php 

echo'<tr> 
       <td> 
         <form name="Kontakt" method="post" action="front_content.php?"> 
            <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
               <tr> 
                   <td colspan="2"> 
                  <input type="hidden" name="idcatart" value="' . $newsletterIDCatArt . '"> 
                  <input type="hidden" name="firsttime" value="1"> 
                  <br>&nbsp;<br> 
                  </td> 
               </tr> 
               <tr> 
                  <td>Ihr Name und Vorname:</td> 
                  <td> 
                  <input name="name" type="text" value="' . $name . '"';  //end echo       
if (isset($error_mail1)){ 
   echo "style='background-color:$error_mail1'"; 
} //end if 

echo '                  ></td> 
                 </tr> 
               <tr> 
                  <td valign="bottom">Ihre Email-Adresse:</td> 
                  <td> 
                     <input name="email" type="text" value="' . $email . '"';  //end echo 
if (isset($error_mail2)){ 
   echo "style='background-color:$error_mail2'"; 
} // end if 

echo'                 ></td> 
               </tr> 
                 <tr> 
                  <td>&nbsp;</td> 
                    <td>&nbsp;</td> 
                </tr> 
               <tr> 
                  <td>&nbsp;</td> 
                  <td> 
                  <input type="hidden" name="action" value="subscribe">&nbsp;&nbsp;&nbsp; 
                  <input type="submit" value="Anmelden!"></td> 
               </tr> 
                <tr> 
                    <td>&nbsp;</td> 
                    <td>&nbsp;</td> 
                </tr> 
            </table> 
         </form> 
      </td> 
   </tr>';  // end echo 
} // end if 

echo ' 
</table>'; // diese Tabelle wurde Anfangs des anderen Modul geöffnet 
?> 
Ich verzweifel langsam hier... )o:

Gruß
Acidgod
Acidgod
Beiträge: 91
Registriert: Di 6. Jan 2004, 10:17
Wohnort: Bremen
Kontaktdaten:

Beitrag von Acidgod »

Das mit dem "Bestätigen" habe ich in den Griff bekommen.

Habe einfach beim

Code: Alles auswählen

$sql = "INSERT INTO ".$cfg["tab"]["news_rcp"] ." SET idnewsrcp = '".$db->nextid($cfg["tab"]["news_rcp"])."', idclient='$client', idlang='$lang', email='$email', name='$name', deactivated='1', confirmed = '1', created='$now'"; 
confirmed = '1', eingefügt.

Jetzt wir das Bestätigt immer aktiviert.
Das mit dem "Bestätigt" und "Deaktiviert" ist doch e doppelt gemoppelt oder was für einen Sinn hat es mit dem "Bestätigen" und dem "Deaktivieren"?
Gesperrt