Alternativen Text bei Newsletterbestellung einblenden
Patrick Gallitz
- cgi
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
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
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!
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
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
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:
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
Hy,
wäre klasse, wenn du mir eine Email Adresse schickst, dann würde ich dir das CGI senden.
Saludos
Patrick
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
Hy,
kein Problem, unter http://www.global-reporter.de/deutsch/script.rtf findest du das mailing.cgi!
Danke für die Hilfe!
Saludos
Patrick
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
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
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