Newsletterscript mit Vorschau ?

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

  • Newsletterscript mit Vorschau ?

    Moin Leutz,

    es ist mal wieder soweit, ich muss hier mal wieder nach Hilfe rufen. =)

    Folgendes Problem:

    Ich habe ein Newsletterscript gemacht, welches eine Vorschau bieten soll.

    Der Ablauf ist folgendermaßen:

    Der Verfasser schreibt den Text und klickt auf "absenden", dann wird die Mail lediglich an den Verfasser gesendet. Dieser kann sie sich anschauen und dann entscheiden ob das so ok ist, oder ob er noch was ändern möchte.

    Nehmen wir mal an, daß alles ok ist, dann klickt er auf einen "Ok" und die Mail wird an alle User gesendet, die für den Newsletter eingetragen sind.

    Das klappt soweit auch alles, aber ich habe das Problem, daß die Mail beim "richtigen" versenden, also wenn es an alle User gehen soll leer ist.

    Aus irgendeinem Grund übernimmt er die Variablen der eingabefelder beim zweiten versenden nicht und obwohl ich nun schon einige Foren und php-Bücher studiert habe, bin ich noch immer nicht dahinter gekommen woran das liegen könnte.

    Der Quellcode sieht so aus:
    PHP-Code:
    echo "Bitte Newsletter verfassen";
            
            echo 
    "<form action='newsletter.php' method='GET'>";
            echo 
    "Betreff:<input type='text' name='betreff' value='$betreff'><BR>";
            echo 
    "Inhalt:<textarea name='inhalt' rows='10' cols='100'></textarea><br>";
            echo 
    "<input type='hidden' name='action' value='testen'>";
            echo 
    "<input type='submit'>";
            echo 
    "</form>";
            
            
    #$header    = "From: [email]xxx@xxxxx.de[/email]\r\n";
    #$header   .= "Content-Type: text/html\n";



    if ($action == "testen") {

    $header    "From: [email]xxx@xxxxx.de[/email]\r\n";
    $header   .= "Content-Type: text/html\n";

    $AlleUserQ=mysql_query("select * from fuser where uname ='$uname'")or die (mysql_error());
    while (
    $AlleUser=mysql_fetch_array($AlleUserQ))
        {
            echo 
    $AlleUser['email'];
        
    mail ($AlleUser['email'],$betreff,$inhalt,$header);
                echo 
    "<br>";
                }
                
                    
                print 
    "<br><br>Der Newsletter wurde zum testen versendet an &nbsp;" .$uname;
                
                print 
    "<br><br>Wurde der Newsletter richtig angezeigt? Klicke auf 'Ja' um den
     Newsletter nun an alle User 
    zu versenden. Oder auf 'Nein' um noch etwas zu ändern.<br>"
    ;
                
                
                print 
    "<br><br><a href=./newsletter.php?action=start>Ja</a><br><br>";
                print 
    "<a href=javascript:history.back();>Nein</a><br><br>";
                print 
    "$betreff";

                }


    if (
    $action == "start") {

    $header    "From: [email]xxx@xxxx.de[/email]\r\n";
    $header   .= "Content-Type: text/html\n";
    $AlleUserQ=mysql_query("select * from fuser where newsl=1")or die (mysql_error());
    while (
    $AlleUser=mysql_fetch_array($AlleUserQ))
        {
            echo 
    $AlleUser['email'];
        
    mail ($AlleUser['email'],$betreff,$inhalt,$header);
                echo 
    "<br>";
                }
                print 
    "<br><br>Der Newsletter wurde versendet";
                print 
    "$betreff";
                }

    echo 
    "$betreff";
      
    ?> 
    Einige "echo"´s einfach ignorieren, die habe ich nur gemacht um zu schauen wie das mit den Variablen aussieht.

    An dieser Stelle sei noch gesagt, daß ich noch ein ziemlicher noob bin was php angeht, also reisst mich bitte nicht gleich
    in Stücke wenn der Code schlampig gemacht ist.

    Danke für eure Hilfe und liebe Grüße.
    Zuletzt geändert von BlackCrow; 23.01.2005, 19:36.

  • #2
    http://www.php-resource.de/forum/sho...threadid=47906
    befolgen, bitte!

    Kommentar


    • #3
      Ich erhalte keine Fehlermeldung falls Du das meinst.

      Die empfangene Mail ist halt einfach nur leer.

      Kommentar


      • #4
        brich bitte deinen code um, damit man nicht seitwärts scrollen muss.

        Kommentar


        • #5
          So sollte es besser sein. Sorry war mir net aufgefallen, hoffe das ist nun gut so, weil ich habe ne ziemlich hohe Auflösung.

          Gruß

          Kommentar


          • #6
            kannst du mal zeigen, was in $AlleUser['email'] drin steht, bevor die mail rausgeht? einmal beim testen und einmal beim massenmailen.

            ach ja - für die zukunft - verzichte auf register globals.

            Kommentar


            • #7
              $AlleUser['email'] - ist lediglich die Auswahl der Mailadressen aus der Datenbank, welche sichfür den Newsletter eingetragen haben.

              Wie gesagt die Mail werden einwandfrei gesendet, nur sind die Mails bei dem Massenversand leer. Es scheint also, daß er die Variablen "$betreff,$inhalt,$header" nur beim Preview-Versand verwendet. Warum auch immer.

              Mache ich ein echo $AlleUser['email'] - bekomme ich die Liste der User angezeigt, welche den Newsletter erhalten, daß heißt bei der Preview den Verfasser ( das holt er sich aus der Session) und beim Massenversand aus der Datenbank bei den Leute die in der Spalte "newsl=1" haben.

              Funzt auch alles wunderbar.

              Kommentar


              • #8
                ich bestehe darauf. ersetze die buchstaben von mir aus alle durch 'x', aber zeige den inhalt der variable "as is". zumindest die ersten 3 adressen.

                Kommentar


                • #9
                  kapier ich net

                  Was soll ich denn da anzeigen? Die Mailadressen die er mir raus printet bei dem Echobefehl?

                  Kommentar


                  • #10
                    ja

                    Kommentar


                    • #11
                      Nach dem Absenden der Preview:

                      blackcrow@xxxx.de

                      Der Newsletter wurde zum testen versendet an BlackCrow

                      Wurde der Newsletter richtig angezeigt? Klicke auf 'Ja' um den Newsletter nun an alle User zu versenden. Oder auf 'Nein' um noch etwas zu 䮤ern.


                      Ja

                      Nein

                      testtest

                      Und das nach dem Bestätigen:

                      Kommentar


                      • #12
                        so, besser.
                        und nun: http://de3.php.net/manual/de/function.mail.php
                        und zwar die dritte zeile des vierten beispiels lesen.

                        weißt du, was ich meine?

                        Kommentar


                        • #13
                          $to .= "Kelly <kelly@example.com>";
                          Öhm nö, nun seh ich überhaupt nicht mehr durch.

                          Was hat das denn mit dem Inhalt der Mail zu tun? Oder bin ich nun völlig blöd?

                          Kommentar


                          • #14
                            wenn man "<?php" mitzählt, was mein editor tut, ist das die dritte:
                            PHP-Code:
                            $to  "Mary <mary@example.com>" ", " // beachten Sie das Komma 
                            siehst du, was man beachten muss, wenn's mehrere empfänger sind?

                            Kommentar


                            • #15
                              Ok, das hab ich gecheckt, aber wenn ich nun zb. die Preview Funktion entferne und direkt nach dem Verfassen des Textes an alle User versende, dann klappt es wunderbar.

                              Problem ist halt nur, wenn ich zuvor eine Preview-Mail senden lasse, dann sind danach sämtliche Mails vom Inhalt leer. Das ergibt doch keinen Sinn, oder?

                              Kommentar

                              Lädt...
                              X