Patrick Gallitz: Alternativen Text bei Newsletterbestellung einblenden

Hallo,
ich habe unter http://www.global-reporter.de/deutsch/index.html einen Link "Newsletter bestellen" eingebaut. Beim Abonnieren blendet das mailing.cgi eine weiße Seite mit einem Bestätigungstext ein. Ich würde diesen Text gerne auf der eigenen Seite einblenden, also im gleichen Design. Kann ich das CGI so ändern, das statt dem Text eine andere Datei aufgerufen wird? Wenn ja, wie müsste das im Quelltext des CGI aussehen?
Momentan sieht dieser Teil so aus:

$message="Vielen Dank für Ihr Interesse an unseren umweltpolitischen Themen! Die Emailadresse <font color=red>$in{'address'}</font> wurde temporär erfasst. Sie muss noch bestätigt werden. Bitte klicken Sie dazu auf den Link, den wir Ihnen soeben per Email zugesendet haben.";
&mailtemp;
&message;
exit;

Danke

  1. Hi,

    ich habe unter http://www.global-reporter.de/deutsch/index.html einen Link "Newsletter bestellen" eingebaut. Beim Abonnieren blendet das mailing.cgi eine weiße Seite mit einem Bestätigungstext ein.

    Annahme: CGI eq Perl

    Ich würde diesen Text gerne auf der eigenen Seite einblenden, also im gleichen Design. Kann ich das CGI so ändern, das statt dem Text eine andere Datei aufgerufen wird?

    Jepp, mit print "Location: $bestaetigung\n\n";, wobei $bestaetigung deine Bestätigungsseite enthalten muss (z.B bestaetigung.html). Beachte dabei aber die korrekte Pfadangabe. Alternativ kannst du es auch mit dem CPAN-Modul HTML::Template umsetzen, dann könntest du statt einer statischen Seite noch ein Variable einfügen. Noch alternativer kannst du auch eine Vorlage einlesen, zeilenweise ausgeben und die Variablen (z.B. die E-Mail) an der entsprechenden Stelle einfügen.

    Viele Grüße
    Torsten

    --
    ss:| zu:) ls:] fo:) de:[ va:| ch:? sh:( n4:~ rl:? br:> js:| ie:% fl:( mo:)
    1. Hy,

      print "Location: $bestaetigung\n\n";, wobei $bestaetigung deine Bestätigungsseite enthalten muss (z.B bestaetigung.html).

      Ich bin nicht sonderlich firm in Skriptsprachen. Vielleicht kannst du mir da nochmal etwas aushelfen?

      Der Text schaut momentan so aus:

      $temp_entry = $number . "::" .
                   $address . "::";
      print LIST "$temp_entry\n";
      close(LIST);
      $message="Vielen Dank für Ihr Interesse an unseren >umweltpolitischen Themen! Die Emailadresse <font color=red>$in
      {'address'}</font> wurde temporär erfasst. Sie muss noch bestätigt >werden. Bitte klicken Sie dazu auf den Link, den wir Ihnen soeben >per Email zugesendet haben.";
      &mailtemp;
      &message;
      exit;
      }

      Schreibe ich statt $message dann: print "Location: $bestaetigung\n\n"; und definiere $bestaetigung="/deutsch/projekt/new_best.html"?

      Danke!

      1. Hi,

        Schreibe ich statt $message dann: print "Location: $bestaetigung\n\n"; und definiere $bestaetigung="/deutsch/projekt/new_best.html"?

        Genauso. Allerdings ist in dieser Variante new_best.html grundsätzlich eine statische Seite. Wenn du willst, dass dort Variablen aus deinem Script ausgegeben werden sollen, musst du einen etwas anderen Weg gehen. Mein Ansatz sähe so aus:

        Nimm deine Anmeldungs-Seite und mache daraus eine Vorlage, indem du alles, was seitenspezifisch ist, rausnimmst. Das Ergebnis sollte eine leere Seite in deinem HP-Design sein. Dort, wo du deine $message reinhaben willst, schreibe in eine Zeile nur einen Dummy ein, z.B. USER_MESSAGE. Speichere diese als HTML-Datei ab (z.B. new_best.html).

        Wenn es in deinem Script um die Ausgabe der Seite geht, öffne die Datei und gib sie zeilenweise aus. Der dazu gehörende Code könnte so aussehen (ungetestet):

        open ( MESSAGE, "new_best.html") or die $!;
        while( <MESSAGE> ) {
          if ( index($_, "USER_MESSAGE") >= 0 ) {
            print $message;
          }
          else {
            print $_;
          }
        }
        close(MESSAGE);

        So müsste es denke ich gehen. BTW, das print "Location: ..." brauchst du dann nicht mehr.

        Viele Grüße
        Torsten

        --
        ss:| zu:) ls:] fo:) de:[ va:| ch:? sh:( n4:~ rl:? br:> js:| ie:% fl:( mo:)
        1. Hy,
          danke für den Tipp!
          Ich habe die HTML-Datei so angelegt wie du geschrieben hast. Allerdings weiß ich nicht genau, wo ich Folgendes in das mailing.cgi einsetzen soll und was ich rausnehmen muss ....

          open ( MESSAGE, "new_best.html") or die $!;
          while( <MESSAGE> ) {
            if ( index($_, "USER_MESSAGE") >= 0 ) {
              print $message;
            }
            else {
              print $_;
            }
          }
          close(MESSAGE);

          Kannst du mir das bitte noch erklären!?
          Danke ;-)

          Saludos

          Patrick

          1. Hi,

            Ich habe die HTML-Datei so angelegt wie du geschrieben hast. Allerdings weiß ich nicht genau, wo ich Folgendes in das mailing.cgi einsetzen soll und was ich rausnehmen muss ....

            Dein Script dürfte in etwa folgenden Ablauf haben:

            • Entgegennahme der Formulareingaben
            • Prüfung/Verarbeitung der Daten
            • Absenden einer E-Mail
            • Ausgabe der Dankesseite

            Den Code müsstest du an die Stelle einfügen, wo bisher dein $message ausgegeben wurde, also bei "Ausgabe der Dankesseite". Für genauere Hinweise wäre ein wenig Quelltext hilfreich.

            Viele Grüße
            Torsten

            --
            ss:| zu:) ls:] fo:) de:[ va:| ch:? sh:( n4:~ rl:? br:> js:| ie:% fl:( mo:)
            1. Hy,
              wäre klasse, wenn du  mir eine Email Adresse schickst, dann würde ich dir das CGI senden.
              Saludos
              Patrick

              1. Hi,

                wäre klasse, wenn du  mir eine Email Adresse schickst, dann würde ich dir das CGI senden.

                Das ist jetzt _absolut nicht_ böse gemeint, aber: Nein, ich beantworte keine E-Mails zu Postings in diesem Forum. Vorschlag zur Güte: mache aus deinem Script eine Textdatei und poste einen Link drauf.

                Viele Grüße
                Torsten

                --
                ss:| zu:) ls:] fo:) de:[ va:| ch:? sh:( n4:~ rl:? br:> js:| ie:% fl:( mo:)
                1. Hy,
                  kein Problem, unter http://www.global-reporter.de/deutsch/script.rtf findest du das mailing.cgi!
                  Danke für die Hilfe!
                  Saludos
                  Patrick

                  1. Hi,

                    kein Problem, unter http://www.global-reporter.de/deutsch/script.rtf findest du das mailing.cgi

                    Ich will ja nicht motzen, aber das Script ist irgendwie ziemlich chaotisch und teilweise eigenartig, wo hast du das denn her? Ich rate dir dringend, dich eingehender mit Perl zu befassen, um verstehen zu können, was das Script überhaupt macht. Zu deiner Frage der Hinweis, dass das Script ganz offensichtlich alle Ausgaben über die sub message am Ende realisiert, da müsstest du also ansetzen. Achso, da sehe ich gerade noch die Variable $list_name, die müsstest du auch noch in deinem Template unterbringen, also nicht nur $message.

                    BTW, ist es überhaupt erlaubt, dieses Script zu verändern (siehe merkwürdiger Copyright-Hinweis am Anfang)?

                    Viele Grüße
                    Torsten

                    --
                    ss:| zu:) ls:] fo:) de:[ va:| ch:? sh:( n4:~ rl:? br:> js:| ie:% fl:( mo:)
                    1. Hy,
                      das Skript stammt vom Provider DomainFactory. Die hatte ich in dieser Sache auch kontaktiert. Die meinten, ich könnte die Ausgabe verändern, haben mir aber keine weiteren Tipps gegeben.
                      Ich werde mal versuchen, das Skript zu ändern.
                      Danke!
                      Patrick

                      1. Hi,

                        [...]

                        Habe mir das Script mal in Ruhe angeschaut, ich an deiner Stelle würde es komplett umschreiben und insbesondere abspecken. Es wird dir wohl nichts anderes übrig bleiben.

                        Viele Grüße
                        Torsten

                        --
                        Wäre Stoizismus eine Programmiersprache, würde ich ein Experte sein.