Antworten auf deine Fragen:
Neues Thema erstellen

Newsletter macht mich irre!

AbbySu

Noch nicht viel geschrieben

Hallo an alle,

also so langsam werd ich irre. Schon viel zu viele Tage habe ich jetzt damit verbracht zu verstehen, was ich alles brauche um den Usern zu ermöglichen sich für den Newsletter einzutragen und diesen Usern dann auch den Newsletter zukommen zu lassen.

Es ist auch nicht so sehr hilfreich, dass Google bevorzugt Foren ausspuckt, in denen dann immer nur der Hinweis steht, dass man Google nutzen soll...
Kostenpflichtige Skripts kommen auch nicht in Frage und ich möchte auch nicht über einen Drittanbieter das ganze Lösen. Doch die gefundenen Skripte und deren Tutorials haben mich nur bedingt weiter gebracht. Ein bisschen lernen konnte ich auf jeden Fall, aber leider noch nicht genug.

Also inzwischen habe ich mich entschlossen das Formular nicht mimt PHP sondern direkt in HTML zu schreiben. Das stell ich mal hier ein:
HTML:
        <form action="newsletter/news.php" method="post" id="newl_form">
            <p>
                <label for="news_vname">Vorname:<span class="col_gruen">*</span></label></p>
            <p>
                <input id="news_vname" type="text" name="vname" size="30" maxlength="30" /></p>
            <p>
                <label for="news_name">Nachname:<span class="col_gruen">*</span></label></p>
            <p>
                <input id="news_name" type="text" name="name" size="30" maxlength="30" /></p>
            <p>                
                <label for="news_gbt">Geburtstag:<span class="col_gruen">*</span></label></p>
            <p>
                <input id="news_gbt" type="text" name="gbt" size="30" maxlength="30" /></p>
            <p>
                <label for="news_email">E&ndash;Mail Adresse:<span class="col_rot">*</span></label></p>
            <p>
                <input id="news_email" type="text" name="email" size="30" maxlength="30" /></p>
            <p>
                <input id="news_auswahl1" type="radio" name="news" value="bestellt" checked />
                    <label for="news_auswahl1">Bestellen</label>&emsp;
                <input id="news_auswahl2" type="radio" name="news" value="abbestellt" />
                    <label for="news_auswahl2">Abbestellen</label></p>
            <p>
                <input type="submit" value="Absenden" class="btn_absenden" /></p>
        </form>
        <p>
            <span class="col_gruen">* Freiwillige Angaben</span><br />
            <span class="col_rot">* Pflichtfeld</span></p>
action="newsletter/news.php", weil bei meinem letzten Versuch diese Datei verwendet wurde. Ja und diese datei kann ich ja auch mal einstellen, aber ich versteh selbst noch nicht alles davon.
PHP:
<?
//Eingabe-Ueberpruefung

   function MailChek($Addr, $Level) {

//  z. Zt. gueltige Top-Level Domains
    $gTLDs = "com:net:org:edu:gov:mil:int:arpa:";
    $CCs   = "ad:ae:af:ag:ai:al:am:an:ao:aq:ar:as:at:au:aw:az:ba:bb:bd:be:bf:".
             "bg:bh:bi:bj:bm:bn:bo:br:bs:bt:bv:bw:by:bz:ca:cc:cf:cd:cg:ch:ci:".
             "ck:cl:cm:cn:co:cr:cs:cu:cv:cx:cy:cz:de:dj:dk:dm:do:dz:ec:ee:eg:".
             "eh:er:es:et:fi:fj:fk:fm:fo:fr:fx:ga:gb:gd:ge:gf:gh:gi:gl:gm:gn:".
             "gp:gq:gr:gs:gt:gu:gw:gy:hk:hm:hn:hr:ht:hu:id:ie:il:in:io:iq:ir:".
             "is:it:jm:jo:jp:ke:kg:kh:ki:km:kn:kp:kr:kw:ky:kz:la:lb:lc:li:lk:".
             "lr:ls:lt:lu:lv:ly:ma:mc:md:mg:mh:mk:ml:mm:mn:mo:mp:mq:mr:ms:mt:".
             "mu:mv:mw:mx:my:mz:na:nc:ne:nf:ng:ni:nl:no:np:nr:nt:nu:nz:om:pa:".
             "pe:pf:pg:ph:pk:pl:pm:pn:pr:pt:pw:py:qa:re:ro:ru:rw:sa:sb:sc:sd:".
             "se:sg:sh:si:sj:sk:sl:sm:sn:so:sr:st:su:sv:sy:sz:tc:td:tf:tg:th:".
             "tj:tk:tm:tn:to:tp:tr:tt:tv:tw:tz:ua:ug:uk:um:us:uy:uz:va:vc:ve:".
             "vg:vi:vn:vu:wf:ws:ye:yt:yu:za:zm:zr:zw:";

//  country codes koennen folgende TLD`s vorangestellt sein
    $cTLDs = "com:net:org:edu:gov:mil:co:ne:or:ed:go:mi:";

    $fail = 0;

//  wandelt in Kleinbuchstaben um
    $Addr = strtolower($Addr);

//  teilt die Adresse in user und domain Teile
    $UD = explode("@", $Addr);
    if (sizeof($UD) != 2 || !$UD[0]) $fail = 1;
    echo "$ud[0]";
    echo "$ud[1]";
//  teilt den domain Abschnitt
    $Levels = explode(".", $UD[1]); $sLevels = sizeof($Levels);
    if ($sLevels < 2) $fail = 1;

//  holt die TLD und ueberprueft die L&auml;nge
    $tld = $Levels[$sLevels-1];
    $tld = ereg_replace("[>)}]$|]$", "", $tld);
    if (strlen($tld) < 2 || strlen($tld) > 3 && $tld != "arpa") $fail = 1;

//  ueberprueft TLD
    if ($Level && !$fail) {
    $Level--;
    if (!ereg($tld.":", $gTLDs) && !ereg($tld.":", $CCs)) $fail = 2;
    }

//  ueberprueft country code
    if ($Level && !$fail) {
    $cd = $sLevels - 2; $domain = $Levels[$cd].".".$tld;
    if (ereg($Levels[$cd].":", $cTLDs)) { $cd--; $domain = $Levels[$cd].".".$domain; }
    }
  } //end MailChek

  $fail =  MailChek ($email,1) ;
  if ($fail != 0){
     include ('error.php3');
     exit;
     }
     else {
     include ('acknow.php3');
     }

//Log at database textfile - Daten werden in txt-Datei geschrieben
    $datum=date('Y-m-d H:i',time());
    $zeile=$datum.'²'.$email.'²'.$news."\n";
    $fp=fopen('news.txt','a');
    fwrite($fp,$zeile,100);
    fclose($fp);

//mySQL-Verbindung
    echo "<br>";
    echo "<br>";
    $sqlid=mysql_connect("localhost","****","******");   //Hier host, user und Passwort eintragen
    if (!$sqlid) die ("Kann Server nicht erreichen");
    else echo 'Datenbank connect';

    mysql_select_db("testdatenbank",$sqlid);    //Die Datenbank 'newsletter' muss schon angelegt sein
    $sql="insert into newsletter (email, name, vname, gbt) values ('$email', '$name', '$vname', '$gbt')";  //ebenso die Tabelle 'email_adress'
    mysql_query ($sql,$sqlid);

    mysql_close($sqlid);

//email to user
    mail ("admin@localhost",    //Hier den Empfaenger eintragen
        "newsletter $news",   //Hier steht die Betreff-Zeile
        "Hallo DREAMRIDER, $email hat den newsletter $news und zwar am $datum",  //Hier der Text der mail
        "From:$email");  //Hier steht der Absender
?>
Besonders den letzten Absatz...

Ach ich weiß auch nicht, ich hätte nicht gedacht, dass das so schwer ist...
 
Zuletzt bearbeitet:

AbbySu

Noch nicht viel geschrieben

AW: Newsletter macht mich irre!

hmpf...

Also den ersten Link habe ich selbst schon entdeckt und grad nochmals versucht das ganze zu verstehen, aber irgendwie versteh ich es nicht.

Die anderen zwei arbeiten offenbar nicht nur mit PHP und MySQL, das wollte ich aber gerne.

Gibts denn nichts einfacheres oder jmd der mir direkt helfen kann? Das eingestellte Skript oben habe ich inzwischen auch schon abgeändert, weil ein paar Variablen nicht benannt wurden und das Probleme machte (auch in den includierten Dateien waren noch kleinere Fehler).

:(
 

Duddle

Posting-Frequenz: 14µHz

AW: Newsletter macht mich irre!

Ich kann keine richtige Frage aus deinen zwei Beiträgen lesen, abgesehen davon dass du manches nicht verstehst.
Bei jeglichem Wissen gibt es zwei Optionen: entweder lernst du es, oder du suchst dir jemanden der es schon weiß. Da du hier postest, gehe ich von ersterem Fall aus.

Einen Newsletter zu verschicken heißt, eine E-Mail an mehrere Nutzer zu verschicken. Diese Nutzer können sich im Idealfall selbst dafür entscheiden / registrieren. Für beide Teilaufgaben gibt es mehrere Ansätze, aber ich gehe vom webbasierten Formular und PHP-basiertem Versand der Mails aus.

Ein Formular zu Registrierung eines Nutzers ist ein Formular, dass du serverseitig auswertest und relevante Informationen abspeicherst. Formulare werden z.B. hier einfach erklärt. Wenn du die dort genutzte Syntax nicht verstehst, musst du ein Tutorial früher anfangen usw.

Die übergebenen Daten kannst du entweder in einer flachen Datei oder in einer Datenbank abspeichern.

Zum Versand der Mails brauchst du dann nur noch die abgespeicherten Daten auslesen und pro Adresse eine Mail verschicken.


Auch wenn das sehr einfach klingt (und diese Funktionen sind nicht schwierig): Jeder dieser Teilschritte ist mit potenziellen Sicherheitslücken und Tücken gespickt. Deshalb ist es hier (wie im Allgemeinen) ratsamer vorhandene Lösungen, die erfahrenere Programmierer monatelang getestet haben, zu nehmen.


Duddle
 

AbbySu

Noch nicht viel geschrieben

AW: Newsletter macht mich irre!

Hi Duddle,

Ich kann keine richtige Frage aus deinen zwei Beiträgen lesen, abgesehen davon dass du manches nicht verstehst.
Bei jeglichem Wissen gibt es zwei Optionen: entweder lernst du es, oder du suchst dir jemanden der es schon weiß. Da du hier postest, gehe ich von ersterem Fall aus.
Also ersteres wäre mir auf jeden Fall das liebste. Offenbar muss ich das dafür tatsächlich endlich mal komplett lernen und nicht immer Bruchstücke. Hätt' ja klappen können ;)

Allerdings find ich auch keinen, der einfach ein passendes, fertiges Skript für mich hat :lol:

Einen Newsletter zu verschicken heißt, eine E-Mail an mehrere Nutzer zu verschicken. Diese Nutzer können sich im Idealfall selbst dafür entscheiden / registrieren. Für beide Teilaufgaben gibt es mehrere Ansätze, aber ich gehe vom webbasierten Formular und PHP-basiertem Versand der Mails aus.

Ein Formular zu Registrierung eines Nutzers ist ein Formular, dass du serverseitig auswertest und relevante Informationen abspeicherst. Formulare werden z.B. hier einfach erklärt. Wenn du die dort genutzte Syntax nicht verstehst, musst du ein Tutorial früher anfangen usw.
Ah, so war der Link dieser Seite. Ich kannte die Seite schon, hatte die bei den letzten Suchen aber nicht bei den Ergebnissen und darum wohl vergessen. Wobei ich soweit schon bin, die Daten auslesen bekomm ich hin. (Brauchte ich bereits fürs Kontaktformular)

Die übergebenen Daten kannst du entweder in einer flachen Datei oder in einer Datenbank abspeichern.
Ja und da fingen die Probleme an... Datenbank wäre nutzbar und scheint ja auch die bessere Wahl. Bei meinem letzten Lokalen versuch hat er zwar eine neue Spalte erzeugt, aber nichts eingetragen. Wobei ich schon den ein oder anderen Fehler diesbezüglich gefunden hatte, doch ich vermute, dass ich den Hamster noch nicht richtig eingestellt habe und das Lokal noch gar nicht klappen kann...

Unpraktischerweise hatte ich das noch nicht online getestet, weil ich eben hoffte alles richtig eingestellt zu haben und er ja immerhin auch eine neue Spalte erzeugt hat.

Was wird das wohl gewesen sein? Kann er eine neue Spalte erzeugen, ohne den Inhalt zu übergeben? Hab ich den Inhalt womöglich falsch übergeben?
Hier noch mal der Codeschnipsel:
PHP:
//mySQL-Verbindung
    echo "<br>";
    echo "<br>";
    $sqlid=mysql_connect("localhost","****","*****");   //Hier host, user und Passwort eintragen
    if (!$sqlid) die ("Kann Server nicht erreichen");
    else echo 'Datenbank connect';

    mysql_select_db("testdatenbank",$sqlid);
    $sql="insert into newsletter (email, name, vorname, geburtstag) values ('$email', '$name', '$vname', '$gbt')";
    mysql_query ($sql,$sqlid);

    mysql_close($sqlid);
Zum Versand der Mails brauchst du dann nur noch die abgespeicherten Daten auslesen und pro Adresse eine Mail verschicken.
Nagut, dass ist auf der Seite ja schon ganz gut erklärt, aber ich bin mal gespannt, ob ich das nachher wirklich zusammengebastelt bekomme... voralem in ein Formular, über das man dann die Mails verschicken kann und jeder auch nur seine eigene Adresse im Head sieht...

Auch wenn das sehr einfach klingt (und diese Funktionen sind nicht schwierig): Jeder dieser Teilschritte ist mit potenziellen Sicherheitslücken und Tücken gespickt. Deshalb ist es hier (wie im Allgemeinen) ratsamer vorhandene Lösungen, die erfahrenere Programmierer monatelang getestet haben, zu nehmen.

Klingt also einfach?! Ja... nee :D
Genau diese Sicherheitslücken machen mir Sorgen... Seh ich das eigentlich richtig, dass der CAPTCHA alleine im Grunde nicht viel bringt? Und überhaupt und sowieso nicht sehr Sinnvoll ist? Mal ganz davon abgesehen, dass er nicht barrierefrei ist.

Aber was kann ich noch machen und was ist wirklich sinnvoll?
Den User so eine Mail schicken, die er bestätigen muss ehe die Adresse eingetragen wird? Den Inhalt der Felder auf verschiedene Sachen prüfen, zB ob die E-Mail Adresse eine sein kann und so?

Ja und ich kann nur noch mal sagen, dass von allem (auch von deinen drei Links) kein wirklich passendes Skript dabei war. Meistens viel zu umfangreich, da mit RSS-dings und Archiv und weiß der Geier nicht alles für unnötige Sachen... aber dafür dann wieder nicht die extra Felder die ich brauche... is ja nicht so, dass ich nicht schon etliche Skripte probiert hab...
 

Duddle

Posting-Frequenz: 14µHz

AW: Newsletter macht mich irre!

Meistens viel zu umfangreich, da mit RSS-dings und Archiv und weiß der Geier nicht alles für unnötige Sachen...
"Viel zu umfangreich" bedeutet in der Regel "kann mehr als benötigt", gleichzeitig aber auch "kann mindestens so viel wie benötigt". Das Betriebssystem Windows kann sehr, sehr, sehr viel. Es ist hochkomplex. Deshalb kannst du damit auch problemlos eine DVD brennen und Dateien im lokalen Netzwerk freigeben. Wer keine Dateien im lokalen Netzwerk freigeben will, der ignoriert diese Funktionalität einfach.

aber dafür dann wieder nicht die extra Felder die ich brauche... is ja nicht so, dass ich nicht schon etliche Skripte probiert hab...
Ich habe keine zwei Minuten gebraucht, um die Demo-Seite für phplist zu finden, mich einzuloggen und mit den vorhandenen Masken ein zusätzliches Feld in deren Registrierungsformular zu erstellen. Das ist sogar alles auf Deutsch.
Hätte ich mir noch zusätzlich 10 Minuten genommen, um die Alternativen zum ersten Suchergebnis von Google auszuprobieren, wären mir sicher noch ein paar mindestens so einsteigerfreundliche Systeme in die Hände gefallen.

Kurz gesagt: es ist problemlos möglich, zufriedenstellend einfache, kostenlose, auf PHP- und MySQL-basierte Mailing-Systeme zu finden und an die eigenen Anforderungen anzupassen.

Nichtsdestotrotz suche ich mal die Fragen aus deinem Beitrag:

Was wird das wohl gewesen sein? Kann er eine neue Spalte erzeugen, ohne den Inhalt zu übergeben? Hab ich den Inhalt womöglich falsch übergeben?

Spalten werden nur beim Kreieren oder beim Modifizieren der Tabellenstruktur erzeugt.
Ich vermute, du meinst eine Zeile / einen Eintrag. Diese werden dann erzeugt, wenn du eine INSERT-Anfrage mit korrekter Syntax stellst und die Datentypen mit den übergebenen Daten zusammenspielen. Es ist MySQL egal, ob diese Inhalte leer sind (bei passenden Typen). Lass dir im Notfall die Anfrage vor dem Absenden anzeigen, dann siehst du was bei der Datenbank ankommt.

Seh ich das eigentlich richtig, dass der CAPTCHA alleine im Grunde nicht viel bringt? Und überhaupt und sowieso nicht sehr Sinnvoll ist? Mal ganz davon abgesehen, dass er nicht barrierefrei ist.

Ich meinte mit Sicherheitslücken keinen Spamschutz. Das ist nochmal ein anderer Berg an Problemen. Captchas sind (sofern gut gemacht) aber ein sinnvoller Zusatz.

Den User so eine Mail schicken, die er bestätigen muss ehe die Adresse eingetragen wird? Den Inhalt der Felder auf verschiedene Sachen prüfen, zB ob die E-Mail Adresse eine sein kann und so?

Im Idealfall alles davon und mehr. I am not a lawyer, aber ich glaube das Double Opt-In muss in solchen Fällen sowieso gemacht werden. Das hat aber nichts mehr mit der Programmierung selbst zu tun.


Duddle
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben