Newsletter - Anmeldeformular überträgt keine Mailadressen

Fragen und Tipps & Tricks zur Newsletter Software SuperMailer oder zum BirthdayMailer

Moderatoren: mirko, Wolfi

Antworten
kurvenspaeher
Beiträge: 10
Registriert: 09.12.2003, 07:52

Beitrag von kurvenspaeher »

Ja stimmt mein Fehler. Aber das Problem lag woanders:
In Typo3 war Register globals in php nicht freigeschaltet. Ist standardmässig bei jeder Typo3 Installation so.

Jetzt funzt es - danke

Gruss Dirk
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

Das Script gibt es einmal normal und einmal mit Double-OptIn und auich noch eine Variante für PHP3. Wenn man das Script entsprechend anders generieren lässt, dann sieht es auch anders aus, das ist ja logisch.


--
mirko
kurvenspaeher
Beiträge: 10
Registriert: 09.12.2003, 07:52

Beitrag von kurvenspaeher »

Hallo !
Mit dem test.php bekomme ich nur Fehler von Typo. Ich glaube aber auch nicht, dass es das Problem ist.
Ich habe mir heute das php script nochmal generiert. Da ist schon ein Unterschied
Alt:

if ( (!isset($_POST[\"EMail\"])) || ($_POST[\"EMail\"] == \"\") || ( !CheckEMail($_POST[\"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;
Neu:

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;
}

OK jetzt bekomme ich keine leere Mail mehr sondern den Hinweis, das mit der E-Mailadresse was nicht stimmt. Ich werde auf die von mir definierte Fehlerseite geleitet.

Nun bin ich nicht der PHP Profi. Aber ich glaube bei der Syntaxprüfung der Mailadresse liegt der Hund begraben...
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

Windows Notepad öffnen und diesen PHP-Code reinkopieren

<error_reporting>


Das ganz als z.B. test.php speichern und auf den Server per FTP übertragen. Jetzt im Browser die Domain + /test.php aufrufen. Wird eine E-Mail verschickt?

Das Script oben ist nicht getestet, hoffentlich ist kein Syntax-Fehler enthalten.:D


--
mirko
Zuletzt geändert von mirko am 09.12.2003, 21:29, insgesamt 1-mal geändert.
kurvenspaeher
Beiträge: 10
Registriert: 09.12.2003, 07:52

Beitrag von kurvenspaeher »

Hallo!
Habe das Script für die Newsletteranmeldung in das CMS Typo3 integriert. Es scheint auch in sofern zu funzen, das nach Eingabe der Mailadresse eine Prüfung stattfindet ob diese gültig ist und auf die Bestätigungsseite verlinkt wird. Leider wird die E-Mail Adresse nicht übermittelt. Ich bekomme immer nur eine Mail mut dem Inhalt \"Email:\" mehr nicht . Die E-MAil Adresse fehlt.

Supermailer Version 3.10. anbei der PHP Code den ich integiriert habe:
  • <?
    ###################################################################### #######
    # 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: PHP 4 und Windows/Unix #
    ###################################################################### #######

    # Geben Sie die E-Mail Adresse Ihres speziellen POP3 Postfachs ein
    $Recipient=\"supermailer@profiwerkstatt.de\";

    # Geben Sie die Seite an, die angezeigt werden soll, wenn eine ANmeldung erfolgte
    # Angabe mit http://

    $SubscribeOKPage=\"http://www.profilister.de/index.php?id=1394&type=1\";

    # Geben Sie die Seite an, die angezeigt werden soll, wenn eine ABmeldung erfolgte
    # Angabe mit http://

    $UnsubscribeOKPage=\"http://www.profilister.de/index.php?id=1395&type=1\";


    # 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.profilister.de/index.php?id=1396&type=1\";


    ########### 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($_POST[\"EMail\"])) || ($_POST[\"EMail\"] == \"\") || ( !CheckEMail($_POST[\"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($_POST[\"Action\"])) || ($_POST[\"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 ($_POST[\"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>\";
    ?>


jemand einen Tipp ??
Antworten