Script-Probleme
-
- Beiträge: 5
- Registriert: 24.05.2011, 20:13
Das eregi() ist veraltet, funktioniert aber trotzdem.
Im Script oben jede anzuzeigende URL prüfen, also die http://-Aufrufe müssen alle stimmen. Klappt es danach nicht, das Script und die anzuzeigenden Seiten in ein Verzeichnis legen, danach im Script alle http:// Angaben entfernen und nur die Dateinamen stehen lassen, so dass er lokal die Dateien aus dem Verzeichnis direkt lädt.
Im Script oben jede anzuzeigende URL prüfen, also die http://-Aufrufe müssen alle stimmen. Klappt es danach nicht, das Script und die anzuzeigenden Seiten in ein Verzeichnis legen, danach im Script alle http:// Angaben entfernen und nur die Dateinamen stehen lassen, so dass er lokal die Dateien aus dem Verzeichnis direkt lädt.
-
- Beiträge: 5
- Registriert: 24.05.2011, 20:13
also ich verzweifel langsam ;(
ich hab den newsletter bei t-online als .php5, .php4 und als .php ausgeführt
und immer wird die php aufgerufen, werde auch abgemeldet
nur dann kommt ne leere seite anstatt der abmeldebestätigung
sowohl per email abmeldelink als auch über die form
bei meinem heimserver klappt alles nur bei t-online nich
meine anderen php dateien werden ausgeführt nur diese nicht
vielleicht is das quatsch aber ich hab irgendwo gelesen dass
eregi() veraltet ist
kann es vielleicht sein dass es von t-online ignoriert wird?
plz help
ich hab den newsletter bei t-online als .php5, .php4 und als .php ausgeführt
und immer wird die php aufgerufen, werde auch abgemeldet
nur dann kommt ne leere seite anstatt der abmeldebestätigung
sowohl per email abmeldelink als auch über die form
bei meinem heimserver klappt alles nur bei t-online nich
meine anderen php dateien werden ausgeführt nur diese nicht
vielleicht is das quatsch aber ich hab irgendwo gelesen dass
eregi() veraltet ist
kann es vielleicht sein dass es von t-online ignoriert wird?
plz help
Zuletzt geändert von chewbacca55 am 10.06.2011, 01:31, insgesamt 2-mal geändert.
-
- Beiträge: 5
- Registriert: 24.05.2011, 20:13
hiho mirko
da bin ich wieder
dein skript läuft super auf meinem heimrechner per xampp
jetzt haben wir das auf unsere homepage online gestellt und nun werden die skripte zwar ausgeführt aber zb werden die abmeldeseiten nich aufgerufen
auf dem t-online server werden die .php dateien standardmäßig als php5 ausgeführt
schätze es liegt daran
mein kollege hat auch schon das skript für php5 angefordert aber es kam wieder das für php4
kannst du mir das skript für php5 per pn schicken? die variablen sind egal die find ich schon um die auszufüllen
danke im vorraus
da bin ich wieder
dein skript läuft super auf meinem heimrechner per xampp
jetzt haben wir das auf unsere homepage online gestellt und nun werden die skripte zwar ausgeführt aber zb werden die abmeldeseiten nich aufgerufen
auf dem t-online server werden die .php dateien standardmäßig als php5 ausgeführt
schätze es liegt daran
mein kollege hat auch schon das skript für php5 angefordert aber es kam wieder das für php4
kannst du mir das skript für php5 per pn schicken? die variablen sind egal die find ich schon um die auszufüllen
danke im vorraus
-
- Beiträge: 5
- Registriert: 24.05.2011, 20:13
Im HTML-Formularcode gibt es eine Angabe
<select>
<option>anmelden</option>
<option>abmelden</option>
</select>
oder 2:
<input>
anmelden<br>
<input> abmelden
Dort ist Action mit großen A hinterlegt, das gibt an, ob sich derjenige anmelden oder abmelden will. Diese Angabe muss immer übermittelt werden, damit das Script weiss, was es tun soll.
<select>
<option>anmelden</option>
<option>abmelden</option>
</select>
oder 2:
<input>
anmelden<br>
<input> abmelden
Dort ist Action mit großen A hinterlegt, das gibt an, ob sich derjenige anmelden oder abmelden will. Diese Angabe muss immer übermittelt werden, damit das Script weiss, was es tun soll.
-
- Beiträge: 5
- Registriert: 24.05.2011, 20:13
Hi mirko
zuerst is zu sagen dass die homepage noch nich fertig ist und bei mir auf meinem heimrechner läuft per xampp
und ich benutze die tinybutstrong template engine falls das was ausmacht
http://www.tinybutstrong.com/
ich habe dein skript bekommen für die an und abmeldung zum newsletter
hab es auf die homepage eingebunden und nun kommt die fehlermeldung
Es wurde das Feld Action nicht übermittelt!
hab die if abfrage schon gefunden wo die action variable abgefragt wird
if ( (!isset($Action)) || ($Action == \"\") ) {
print \"Es wurde das Feld Action nicht übermittelt!\";
exit;
}
nun is die frage was fragt der genau ab? isset ? was kann ich überprüfen?
danke im vorraus
zuerst is zu sagen dass die homepage noch nich fertig ist und bei mir auf meinem heimrechner läuft per xampp
und ich benutze die tinybutstrong template engine falls das was ausmacht
http://www.tinybutstrong.com/
ich habe dein skript bekommen für die an und abmeldung zum newsletter
hab es auf die homepage eingebunden und nun kommt die fehlermeldung
Es wurde das Feld Action nicht übermittelt!
hab die if abfrage schon gefunden wo die action variable abgefragt wird
if ( (!isset($Action)) || ($Action == \"\") ) {
print \"Es wurde das Feld Action nicht übermittelt!\";
exit;
}
nun is die frage was fragt der genau ab? isset ? was kann ich überprüfen?
danke im vorraus
-
- Beiträge: 5
- Registriert: 20.11.2003, 14:40
-
- Beiträge: 5
- Registriert: 20.11.2003, 14:40
Also Mirko - hab mich erkundigt und PHP4 ist auch möglich trotzdem kommt der Fehler immer noch.
Was für Rechte muß ich dem php-script den geben (CHMOD755 ??) Wenn das stimmt hab ich das gemacht.
Ich hab auch alles so verfolgt wie beschrieben - was kann das denn noch sein ??
Würde mich freuen, wenn Du dich nochmal meldest - ist nämlich wirklich wichtig, da ich bald einen großen Newsletter versenden möchte und ich den Empfängern die Möglichkeit geben möchte sich wieder abzumelden.
GREETZ
Leachim
Was für Rechte muß ich dem php-script den geben (CHMOD755 ??) Wenn das stimmt hab ich das gemacht.
Ich hab auch alles so verfolgt wie beschrieben - was kann das denn noch sein ??
Würde mich freuen, wenn Du dich nochmal meldest - ist nämlich wirklich wichtig, da ich bald einen großen Newsletter versenden möchte und ich den Empfängern die Möglichkeit geben möchte sich wieder abzumelden.
GREETZ
Leachim
@Jimmy
Hallo,
die zuletzt gepostete Variante des HTML-Codes sowie des Scripts funktionieren einwandfrei (bei 1&1). Fehler 501 kommt bei 1&1 anscheinend öfters mal vor. Siehe: http://www.traum-projekt.com/forum/inha ... 898-1.html
--
Gruß
Wolfgang
Hallo,
die zuletzt gepostete Variante des HTML-Codes sowie des Scripts funktionieren einwandfrei (bei 1&1). Fehler 501 kommt bei 1&1 anscheinend öfters mal vor. Siehe: http://www.traum-projekt.com/forum/inha ... 898-1.html
--
Gruß
Wolfgang
Hallo Mirko,
ich habe nun alles überarbeitet. Aber leider habe ich noch immer das Problem, dass zwar das Anmeldefenster korrekt erscheint und ich dieses auch ausfüllen kann.
Sende ich den Eintrag dann jedoch ab, habe ich nach wie vor das gleiche Problem. Die Mail-Adresse wird nicht an das Postfach übertragen und es erscheint die Fehlermeldung, dass die Seite nicht aufgerufen werden kann.
Ich sende Dir noch einmal den überarbeiteten HTML-Code zu, sowie das Script.
HTML-Code:
<html>
<head>
<meta>
<meta>
<meta>
<title>Neue Seite 1</title>
</head>
<body>
<Newsletteranmeldung>
<form>
<p><font><b>Newsletter An-/
Abmeldung</b></font></p>
<p><font>Ihre E-Mail Adresse:<br>
<input></font></p>
<p><font>Sie möchten sich für
unseren Newsletter</font></p>
<p><font><input>
anmelden<br>
<input> abmelden</font></p>
<p> </p>
<p><font>
<input></font></p>
</form>
<Newsletteranmeldung>
</body>
</html>
Script:
<?
###################################################################### #######
# SUPERMAILER SUBSCRIBE/UNSUBSCRIBE SCRIPT #
# Copyright (c) 2001-2002 Mirko Boeer #
# http://www.supermailer.de/ #
# #
# Dieses Script kann kostenlos eingesetzt werden, jedoch muss dieser Header #
# im Script enthalten bleiben! #
# #
# Systemvoraussetzungen: PHP 4 und Windows/Unix #
###################################################################### #######
# Geben Sie die E-Mail Adresse Ihres speziellen POP3 Postfachs ein
$Recipient=\"newsletter@freemails.ch\";
# Geben Sie die Seite an, die angezeigt werden soll, wenn eine ANmeldung erfolgte
# Angabe mit http://
$SubscribeOKPage=\"http://www.kunstauktionen-net.de/newsletter/anbest.htm\";
# Geben Sie die Seite an, die angezeigt werden soll, wenn eine ABmeldung erfolgte
# Angabe mit http://
$UnsubscribeOKPage=\"http://www.kunstauktionen-net.de/newsletter/abbest.htm\";
# Geben Sie die Seite an, die angezeigt werden soll, wenn die E-Mail Adresse aeusserlich nicht korrekt ist = Fehlerseite
# Angabe mit http://
$ErrorPage=\"http://www.kunstauktionen-net.de/newsletter/error.htm\";
########### Ab hier nichts mehr aendern #####################
function CheckEMail($email) {
if (strpos($email, \"@\") === False)
return 0;
$s = substr($email, strpos($email, \"@\"), strlen($email));
if (count(explode(\".\", $s)) < 2)
return 0;
return 1;
}
if ( (!isset($EMail)) || ($EMail == \"\") || ( !CheckEMail($EMail) ) ) {
if ($ErrorPage != \"\")
header(\"Location: $ErrorPage\");
else
print \"<b>Es wurde keine E-Mail Adresse angegeben oder die E-Mail Adresse liegt nicht im korrekten Format vor!</b>\";
exit;
}
if ( (!isset($Action)) || ($Action == \"\") ) {
print \"Es wurde das Feld Action nicht übermittelt!\";
exit;
}
$headers = \"From: $EMailn\";
$headers .= \"X-Mailer: SuperMailScriptn\";
$headers .= \"Return-Path: <EMail>n\";
# $Action als Betreff
# message als Text der Mail
# Format des Mailtextes:
# FeldName: <feldinhalt>n
$message = \"EMail: $EMailn\";
# Beispiele fuer weitere Felder, diesen muessen im HTML-Formular und im SuperMailer angelegt werden!
#$message .= \"Name: $Namen\";
#$message .= \"Vorname: $Vornamen\";
# Versenden der Mail
mail($Recipient, $Action, $message, $headers);
if ($Action == \"subscribe\")
if ($SubscribeOKPage != \"\")
header(\"Location: $SubscribeOKPage\");
else
print \"<b>Die E-Mail Adresse wurde zu unserer Newsletterliste hinzugefügt!</b>\";
else
if ($UnsubscribeOKPage != \"\")
header(\"Location: $UnsubscribeOKPage\");
else
print \"<b>Die E-Mail Adresse wurde aus unserer Newsletterliste entfernt!</b>\";
?>
Ich bin am Verzweifeln. Wenn ich die Links direkt in den Browser einkopiere, funktionieren sie ohne Probleme.
Bitte hilf mir, Mirko!
Danke!
Lieben Gruß
Jimmy
ich habe nun alles überarbeitet. Aber leider habe ich noch immer das Problem, dass zwar das Anmeldefenster korrekt erscheint und ich dieses auch ausfüllen kann.
Sende ich den Eintrag dann jedoch ab, habe ich nach wie vor das gleiche Problem. Die Mail-Adresse wird nicht an das Postfach übertragen und es erscheint die Fehlermeldung, dass die Seite nicht aufgerufen werden kann.
Ich sende Dir noch einmal den überarbeiteten HTML-Code zu, sowie das Script.
HTML-Code:
<html>
<head>
<meta>
<meta>
<meta>
<title>Neue Seite 1</title>
</head>
<body>
<Newsletteranmeldung>
<form>
<p><font><b>Newsletter An-/
Abmeldung</b></font></p>
<p><font>Ihre E-Mail Adresse:<br>
<input></font></p>
<p><font>Sie möchten sich für
unseren Newsletter</font></p>
<p><font><input>
anmelden<br>
<input> abmelden</font></p>
<p> </p>
<p><font>
<input></font></p>
</form>
<Newsletteranmeldung>
</body>
</html>
Script:
<?
###################################################################### #######
# SUPERMAILER SUBSCRIBE/UNSUBSCRIBE SCRIPT #
# Copyright (c) 2001-2002 Mirko Boeer #
# http://www.supermailer.de/ #
# #
# Dieses Script kann kostenlos eingesetzt werden, jedoch muss dieser Header #
# im Script enthalten bleiben! #
# #
# Systemvoraussetzungen: PHP 4 und Windows/Unix #
###################################################################### #######
# Geben Sie die E-Mail Adresse Ihres speziellen POP3 Postfachs ein
$Recipient=\"newsletter@freemails.ch\";
# Geben Sie die Seite an, die angezeigt werden soll, wenn eine ANmeldung erfolgte
# Angabe mit http://
$SubscribeOKPage=\"http://www.kunstauktionen-net.de/newsletter/anbest.htm\";
# Geben Sie die Seite an, die angezeigt werden soll, wenn eine ABmeldung erfolgte
# Angabe mit http://
$UnsubscribeOKPage=\"http://www.kunstauktionen-net.de/newsletter/abbest.htm\";
# Geben Sie die Seite an, die angezeigt werden soll, wenn die E-Mail Adresse aeusserlich nicht korrekt ist = Fehlerseite
# Angabe mit http://
$ErrorPage=\"http://www.kunstauktionen-net.de/newsletter/error.htm\";
########### Ab hier nichts mehr aendern #####################
function CheckEMail($email) {
if (strpos($email, \"@\") === False)
return 0;
$s = substr($email, strpos($email, \"@\"), strlen($email));
if (count(explode(\".\", $s)) < 2)
return 0;
return 1;
}
if ( (!isset($EMail)) || ($EMail == \"\") || ( !CheckEMail($EMail) ) ) {
if ($ErrorPage != \"\")
header(\"Location: $ErrorPage\");
else
print \"<b>Es wurde keine E-Mail Adresse angegeben oder die E-Mail Adresse liegt nicht im korrekten Format vor!</b>\";
exit;
}
if ( (!isset($Action)) || ($Action == \"\") ) {
print \"Es wurde das Feld Action nicht übermittelt!\";
exit;
}
$headers = \"From: $EMailn\";
$headers .= \"X-Mailer: SuperMailScriptn\";
$headers .= \"Return-Path: <EMail>n\";
# $Action als Betreff
# message als Text der Mail
# Format des Mailtextes:
# FeldName: <feldinhalt>n
$message = \"EMail: $EMailn\";
# Beispiele fuer weitere Felder, diesen muessen im HTML-Formular und im SuperMailer angelegt werden!
#$message .= \"Name: $Namen\";
#$message .= \"Vorname: $Vornamen\";
# Versenden der Mail
mail($Recipient, $Action, $message, $headers);
if ($Action == \"subscribe\")
if ($SubscribeOKPage != \"\")
header(\"Location: $SubscribeOKPage\");
else
print \"<b>Die E-Mail Adresse wurde zu unserer Newsletterliste hinzugefügt!</b>\";
else
if ($UnsubscribeOKPage != \"\")
header(\"Location: $UnsubscribeOKPage\");
else
print \"<b>Die E-Mail Adresse wurde aus unserer Newsletterliste entfernt!</b>\";
?>
Ich bin am Verzweifeln. Wenn ich die Links direkt in den Browser einkopiere, funktionieren sie ohne Probleme.
Bitte hilf mir, Mirko!
Danke!
Lieben Gruß
Jimmy
-
- Beiträge: 5
- Registriert: 20.11.2003, 14:40
Das is ja mein Problem - ich kopier jetzt auch mal das Script:
#!/usr/bin/perl
###################################################################### #######
# SUPERMAILER SUBSCRIBE/UNSUBSCRIBE SCRIPT #
# Copyright © 2001-2002 Mirko Boeer #
# http://www.supermailer.de/ #
# #
# Dieses Script kann kostenlos eingesetzt werden, jedoch muss dieser Header #
# im Script enthalten bleiben! #
# #
# Systemvoraussetzungen: Perl und Windows/Unix #
###################################################################### #######
use LWP::UserAgent;
use CGI qw(header -no_debug);
# Geben Sie die E-Mail Adresse Ihres speziellen POP3 Postfachs ein
$Recipient=\'newslettercheck@bm-internetservice.de\';
# Geben Sie die Seite an, die angezeigt werden soll, wenn eine ANmeldung erfolgte
# Angabe mit http://
$SubscribeOKPage=\"http://www.bm-internetservice.de/danke.htm\";
# Geben Sie die Seite an, die angezeigt werden soll, wenn eine ABmeldung erfolgte
# Angabe mit http://
$UnsubscribeOKPage=\"http://www.bm-internetservice.de/schade.htm\";
# Geben Sie die Seite an, die angezeigt werden soll, wenn die E-Mail Adresse aeusserlich nicht korrekt ist = Fehlerseite
# Angabe mit http://
$ErrorPage=\"\";
# Pfad zum Mailprogramm, auf den meisten Servern ist diese Angabe richtig
$MailProgram = \"/usr/lib/sendmail -t\";
########### Ab hier nichts mehr aendern #####################
# E-Mail Adresse anschauen
sub email_check {
local($emails) = $_[0];
if ($emails =~ /(@.*@)|(..)|(@.)|(.@)|(^.)|(.$)/ ||
($emails !~ /^.+@localhost$/ &&
$emails !~ /^.+@[?(w|[-.])+.[a-zA-Z]{2,3}|[0-9]{1,3}]?$/)) {
return(0);
}
else {
if ($emails =~ /S/)
{
if ($emails =~ /^[w-.]+@[w-.]+$/)
{
return(1);
}
else
{
return(0);
}
}
}
}
# Form parsen
sub ReadParse
{
local (*in) = @_ if @_;
local ($i, $key, $val);
# Read in text
if (&MethGet)
{
$in = $ENV{\'QUERY_STRING\'};
}
elsif (&MethPost)
{
read(STDIN,$in,$ENV{\'CONTENT_LENGTH\'});
}
@in = split(/[&;]/,$in);
foreach $i (0 .. $#in)
{
# Convert plusses to spaces
$in[$i] =~ s/+/ /g;
# Split into key and value
# splits on the first =
($key, $val) = split(/=/,$in[$i],2);
# Convert %XX from hex numbers to alphanumeric
$key =~ s/%(..)/pack(\"c\",hex($1))/ge;
$val =~ s/%(..)/pack(\"c\",hex($1))/ge;
# Associate key and value
# \",\" is the multiple separator
$in{$key} .= \",\" if (defined($in{$key}));
$in{$key} .= $val;
}
return scalar(@in);
}
sub MethGet
{
return ($ENV{\'REQUEST_METHOD\'} eq \"GET\");
}
sub MethPost
{
return ($ENV{\'REQUEST_METHOD\'} eq \"POST\");
}
sub ShowPage {
$res = LWP::UserAgent->new->request(new HTTP::Request GET => $_[0]);
return $res->is_success ? $res->content : $res->status_line;
}
sub mail {
if (open (MAIL,\"|$MailProgram $Recipient\") ) {
print MAIL $headers;
print MAIL \"Subject: $Actionnn\";
print MAIL $message;
close (MAIL);
}
}
&ReadParse;
$EMail = $in{\'EMail\'};
$Action = $in{\'Action\'};
print \"Content-type: text/htmlnn\";
if ( ($EMail eq \"\") || (!&email_check($EMail)) ) {
if ($ErrorPage ne \"\") {
print &ShowPage($ErrorPage);
}
else {
print \"<b>Es wurde keine E-Mail Adresse angegeben oder die E-Mail Adresse liegt nicht im korrekten Format vor!</b>\";
}
exit;
}
if ( ($Action eq \"\") ) {
print \"Es wurde das Feld Action nicht übermittelt!\";
exit;
}
$headers = \"From: $EMailn\";
$headers .= \"X-Mailer: SuperMailScriptn\";
$headers .= \"Return-Path: <EMail>n\";
# $Action als Betreff
# message als Text der Mail
# Format des Mailtextes:
# FeldName: <feldinhalt>n
$message = \"EMail: $EMailn\";
# Beispiele fuer weitere Felder, diesen muessen im HTML-Formular und im SuperMailer angelegt werden!
# $Name = $in{\'Name\'};
# $message .= \"Name: $Namen\";
# $Vorname = $in{\'Vorname\'};
# $message .= \"Vorname: $Vornamen\";
# Versenden der Mail
mail($Recipient, $Action, $message, $headers);
if ($Action eq \"subscribe\") {
if ($SubscribeOKPage ne \"\") {
print &ShowPage($SubscribeOKPage);
}
else {
print \"<b>Die E-Mail Adresse wurde zu unserer Newsletterliste hinzugefügt!</b>\";
}
}
else {
if ($UnsubscribeOKPage ne \"\") {
print &ShowPage($UnsubscribeOKPage);
}
else {
print \"<b>Die E-Mail Adresse wurde aus unserer Newsletterliste entfernt!</b>\";
}
}
#!/usr/bin/perl
###################################################################### #######
# SUPERMAILER SUBSCRIBE/UNSUBSCRIBE SCRIPT #
# Copyright © 2001-2002 Mirko Boeer #
# http://www.supermailer.de/ #
# #
# Dieses Script kann kostenlos eingesetzt werden, jedoch muss dieser Header #
# im Script enthalten bleiben! #
# #
# Systemvoraussetzungen: Perl und Windows/Unix #
###################################################################### #######
use LWP::UserAgent;
use CGI qw(header -no_debug);
# Geben Sie die E-Mail Adresse Ihres speziellen POP3 Postfachs ein
$Recipient=\'newslettercheck@bm-internetservice.de\';
# Geben Sie die Seite an, die angezeigt werden soll, wenn eine ANmeldung erfolgte
# Angabe mit http://
$SubscribeOKPage=\"http://www.bm-internetservice.de/danke.htm\";
# Geben Sie die Seite an, die angezeigt werden soll, wenn eine ABmeldung erfolgte
# Angabe mit http://
$UnsubscribeOKPage=\"http://www.bm-internetservice.de/schade.htm\";
# Geben Sie die Seite an, die angezeigt werden soll, wenn die E-Mail Adresse aeusserlich nicht korrekt ist = Fehlerseite
# Angabe mit http://
$ErrorPage=\"\";
# Pfad zum Mailprogramm, auf den meisten Servern ist diese Angabe richtig
$MailProgram = \"/usr/lib/sendmail -t\";
########### Ab hier nichts mehr aendern #####################
# E-Mail Adresse anschauen
sub email_check {
local($emails) = $_[0];
if ($emails =~ /(@.*@)|(..)|(@.)|(.@)|(^.)|(.$)/ ||
($emails !~ /^.+@localhost$/ &&
$emails !~ /^.+@[?(w|[-.])+.[a-zA-Z]{2,3}|[0-9]{1,3}]?$/)) {
return(0);
}
else {
if ($emails =~ /S/)
{
if ($emails =~ /^[w-.]+@[w-.]+$/)
{
return(1);
}
else
{
return(0);
}
}
}
}
# Form parsen
sub ReadParse
{
local (*in) = @_ if @_;
local ($i, $key, $val);
# Read in text
if (&MethGet)
{
$in = $ENV{\'QUERY_STRING\'};
}
elsif (&MethPost)
{
read(STDIN,$in,$ENV{\'CONTENT_LENGTH\'});
}
@in = split(/[&;]/,$in);
foreach $i (0 .. $#in)
{
# Convert plusses to spaces
$in[$i] =~ s/+/ /g;
# Split into key and value
# splits on the first =
($key, $val) = split(/=/,$in[$i],2);
# Convert %XX from hex numbers to alphanumeric
$key =~ s/%(..)/pack(\"c\",hex($1))/ge;
$val =~ s/%(..)/pack(\"c\",hex($1))/ge;
# Associate key and value
# \",\" is the multiple separator
$in{$key} .= \",\" if (defined($in{$key}));
$in{$key} .= $val;
}
return scalar(@in);
}
sub MethGet
{
return ($ENV{\'REQUEST_METHOD\'} eq \"GET\");
}
sub MethPost
{
return ($ENV{\'REQUEST_METHOD\'} eq \"POST\");
}
sub ShowPage {
$res = LWP::UserAgent->new->request(new HTTP::Request GET => $_[0]);
return $res->is_success ? $res->content : $res->status_line;
}
sub mail {
if (open (MAIL,\"|$MailProgram $Recipient\") ) {
print MAIL $headers;
print MAIL \"Subject: $Actionnn\";
print MAIL $message;
close (MAIL);
}
}
&ReadParse;
$EMail = $in{\'EMail\'};
$Action = $in{\'Action\'};
print \"Content-type: text/htmlnn\";
if ( ($EMail eq \"\") || (!&email_check($EMail)) ) {
if ($ErrorPage ne \"\") {
print &ShowPage($ErrorPage);
}
else {
print \"<b>Es wurde keine E-Mail Adresse angegeben oder die E-Mail Adresse liegt nicht im korrekten Format vor!</b>\";
}
exit;
}
if ( ($Action eq \"\") ) {
print \"Es wurde das Feld Action nicht übermittelt!\";
exit;
}
$headers = \"From: $EMailn\";
$headers .= \"X-Mailer: SuperMailScriptn\";
$headers .= \"Return-Path: <EMail>n\";
# $Action als Betreff
# message als Text der Mail
# Format des Mailtextes:
# FeldName: <feldinhalt>n
$message = \"EMail: $EMailn\";
# Beispiele fuer weitere Felder, diesen muessen im HTML-Formular und im SuperMailer angelegt werden!
# $Name = $in{\'Name\'};
# $message .= \"Name: $Namen\";
# $Vorname = $in{\'Vorname\'};
# $message .= \"Vorname: $Vornamen\";
# Versenden der Mail
mail($Recipient, $Action, $message, $headers);
if ($Action eq \"subscribe\") {
if ($SubscribeOKPage ne \"\") {
print &ShowPage($SubscribeOKPage);
}
else {
print \"<b>Die E-Mail Adresse wurde zu unserer Newsletterliste hinzugefügt!</b>\";
}
}
else {
if ($UnsubscribeOKPage ne \"\") {
print &ShowPage($UnsubscribeOKPage);
}
else {
print \"<b>Die E-Mail Adresse wurde aus unserer Newsletterliste entfernt!</b>\";
}
}