Warenkorb Script verschickt teilweise leere E-Mails

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Warenkorb Script verschickt teilweise leere E-Mails

    Ich habe ein PHP-Skript, das zwei E-Mails mit dem Befehl mail sendet.
    Eine E-Mail geht immer an den Besucher der Website - sie kommt immer korrekt an.
    Eine zweite E-Mail geht an den Betreiber der Website. Die Post kommt immer an, ist aber in etwa 10% der Fälle leer.
    Es ist also nur der Text darin, aber die Variablen wie $ _SESSION ['Name'], die eingefügt werden sollen, werden dann nicht übernommen.
    Diese sind alle leer. Dies geschieht immer nur mit der E-Mail an den Site-Betreiber, aber nie mit der ersten E-Mail an den Kunden (Website-Besucher).

    Kann mir da jemand helfen, wo da das Problem liegen könnte, warum die Variablen der Mail spiradisch leer übermittelt werden?
    Alternativ, wie könnte man durch eine Abfrage verhindern, dass bei leeren Variablen eine Mail versendet wird?
    Die Funktion "mail_cart"
    Code:
    function mailCart() {
        //Versandkosten berechnen
        if($_POST['Versandart']==1) { $V_Preis="3.00"; } else { $V_Preis="0.00"; }
    
        global $db;
        $cart = $_SESSION['cart'];
        if ($cart!="") {
            $items = explode(',',$cart);
            $contents = array();
            foreach ($items as $item) {
                $contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1 : 1;
            }
            $output[] = '<table border="1" width="460">';
            $output[] = '<tr><td class="tdtitle" width="260">Veranstaltung</td><td class="tdtitle_right" width="60">E-Preis</td><td class="tdtitle" width="40">Anzahl</td><td class="tdtitle_right" width="100">Gesamtpreis</td></tr>';
            foreach ($contents as $id=>$qty) {
                //Kat aufdröseln
                list($id, $kat) =  explode(":", $id);
    
                $sql = 'SELECT * FROM artikel WHERE id = '.$id;
                $result = $db->query($sql);
                $row = $result->fetch();
                extract($row);
                $output[] = '<tr>';
                $output[] = '<td>'.$Titel.' am '.datesplit_Datum($Datum).'</td>';
    
                $output[] = '<td align="right">'.sprintf("%01.2f", $Preise).' &euro;</td>';
                $output[] = '<td align="center">'.$qty.'</td>';
                $output[] = '<td align="right">'.sprintf("%01.2f", $Preise * $qty).' &euro;</td>';
                $total += $Preise * $qty;
                $total_versand = $total+$V_Preis; 
                $total_netto = ($total-$total/1.07)+($V_Preis-$V_Preis/1.07);           
                }
                $output[] = '</tr>';
                $output[] = '<tr><td colspan="3">Versandkosten:</td>';
                $output[] = '<td align="right">'. sprintf("%01.2f", $V_Preis) .' &euro;</td></tr>';
                $output[] = '<tr><td colspan="3">inkl. MwSt. 7%:</td>';
                $output[] = '<td align="right">'.  sprintf("%01.2f", $total_netto) .' &euro;</td></tr>';
                $output[] = '<tr><td colspan="3"><b>Summe:</b></td>';
                $output[] = '<td align="right"><b>'.  sprintf("%01.2f", $total_versand)  .' &euro;</b></td></tr>';
    
                $output[] = '<tr><td align="right" colspan="5">';
                $output[] = '</table>';
            }
            //Neu zur Fehlereingrenzung
            else {$output[] = '<p>Fehler bei der Übermittlung der Ticketdaten aus dem Warenkorb</p>';}
            return join('',$output);
    }

    Der eigentliche Mailaufruf lautet:
    Code:
     ob_start(); 
    
    include('templates/mail/order_mail.htm'); 
    
    $MessAnbieter = ob_get_contents();  
    
    ob_end_clean();
    
    
     mail($_SESSION['eMail'], "Ihre Ticketbestellung", "$MessAnbieter",   "From: tickets@domain.de\nReply-To: tickets@domain.de\nContent-Type: text/html; Charset=utf-8\nX-Mailer: PHP/" . phpversion());   
    
    mail("tickets@domain.de", "Web-Ticket-Bestellung!", "$MessAnbieter",   "From: tickets@domain.de\nReply-To: tickets@domain.de\nContent-Type: text/html; Charset=utf-8\nX-Mailer: PHP/" . phpversion());

    Für die Mail die generiert wird gibt es ein Template als Vorlage.
    Dort steht folgendes:
    Code:
    <b>Bestellung von:</b><br>
        <?php echo "$_SESSION[Anrede]"; ?> <?php echo "$_SESSION[Name1]"; ?> <?php echo "$_SESSION[Name2]"; ?><br>
        <?php echo "$_SESSION[Adresse]"; ?><br>
        <?php echo "$_SESSION[PLZ]"; ?> <?php echo "$_SESSION[Ort]"; ?><br>
        E-Mail: <?php echo "$_SESSION[eMail]"; ?><br>
        <hr>
        <b>Ticketdaten:</b><br>
        <?php echo mailCart(); ?>
        <br>
        Versandart: <?php echo "$VersandSet"; ?>
        <br><hr>
        <b>Newsletter:</b><br>
        <?php echo "$NLset"; ?><br>
        <b>Mitteillung:</b><br>
        <?php echo "$_SESSION[Info]"; ?><br>
Lädt...
X