Jeena Paradies: Jeenas NewsletterSystem (bewertet es bitte)

Hallo,

Ich habe wie ja einige bestimmt gemerkt haben in den letzten Wochen an einem Newsletterscript gearbeitet. Jetzt bin ich damit fertig geworden.

Ich würde euch bitten es auszuprobieren, und mir dann zu sagen wie euer Eindruck davon ist, und wass ich doch noch anders machen könnte oder sollte. Achtet nicht so sehr auf das Layout, sondern eher auf die Funktionen, versteht man was man wie machen soll?

http://www.jeenaparadies.clever-webspace.de/vivosomuertos/newsletter

Danke an dieser Stelle allen die mir geholfen haben PHP besser zu verstehen.

Grüße
Jeena Paradies

--
"I want to be a woman... from now on I want you all to call me Loretta."
  1. " $dbpasswort = "leckboy"; "

    Leckboy???

    Was hast denn da nebenbei grad für ein Video angesehen beim Schreiben des Codes?

    ;-)

    Schmeissi

    1. Hallo,

      " $dbpasswort = "leckboy"; "
      Leckboy???
      Was hast denn da nebenbei grad für ein Video angesehen beim Schreiben des Codes?

      Moment ich guck mal nach wie das hieß ... *suchsuch* ach ja "blutjunge Boys die alles machen" unter anderem auch das ;-)

      Man muss sich ja weiterbilden :-)

      Grüße
      Jeena Paradies

      --
      I want to be a woman... from now on I want you all to call me Loretta.
  2. Hallo Jeena!

    Sorry, dass ich hier in ganz anderem Kontext antworte.

    Das Newsletter-System hat mich nicht sooo interessiert, finde aber toll, dass du solche Sachen machst.

    Nicht so toll, habe ich Deine Homepage gefunden (die musste ich mir gleich anschauen, um den Menschen etwas kennenzulernen ;-)

    Um es in Deinen Worten zu sagen:

    Stimmt, oft erreichen die Präsentationen niemanden und es sind kaum überwindbare Hürden: Dein Text erscheint bei mir sooo superklein, dass ich es nicht lesen kann. (nur den Quelltext)

    1. Hallo,

      Stimmt, oft erreichen die Präsentationen niemanden und es sind kaum überwindbare Hürden: Dein Text erscheint bei mir sooo superklein, dass ich es nicht lesen kann. (nur den Quelltext)

      Wirklich? Es sind ja 0.8em aber sooo superklein ist das ja nun auch wieder nicht, Es sind 80% von dem was du als ausreichend groß eingestellt hast. Aber vieleicht hast du recht. Ich überlege mir mal, ob ich nicht doch einfach 1em einstelle.

      Grüße
      Jeena Paradies

      --
      I want to be a woman... from now on I want you all to call me Loretta.
      1. Hi!

        Stimmt, oft erreichen die Präsentationen niemanden und es sind kaum überwindbare Hürden: Dein Text erscheint bei mir sooo superklein, dass ich es nicht lesen kann. (nur den Quelltext)
        Wirklich? Es sind ja 0.8em aber sooo superklein ist das ja nun auch wieder nicht, Es sind 80% von dem was du als ausreichend groß eingestellt hast. Aber vieleicht hast du recht. Ich überlege mir mal, ob ich nicht doch einfach 1em einstelle.

        Tja keine Ahnung was da los sein könnte. Bei mir hab i gar nix als Standard eingestellt. Wüsste zumindest nicht wo. Die Schrift ist nur ein paar pixel hoch, schätze also ob man eine Größe von 6 px eingiebt.

        Verwende IE5 auf Win2k. Ich verwende nie em, aber vielleicht ist das mein Fehler. Jedenfalls ists bei mir unleserlich klein. Nicht nur ein wenig klein, sondern nicht mehr zu lesen.

        gruß
        sven

        1. Hallo,

          Dann hast du wahrscheinlich unter Ansicht->Schriftgrad die Schriftgröße auf 'sehr klein' gestellt.

          Ich finde das jetzt eigentlich ganz lustig, weil es den Satz '1em ist immer genau so groß, wie der Benutzer seine Standardschrift haben will', den man hier sehr häufig liest, etwas relativiert.

          Oft sollte der nämlich viel eher lauten '1em ist oft so groß, wie es der (IE)Benutzer mal unwissentlich eingestellt hat, als er bei gedrückter <Strg>-Taste am Scrollrad gedreht hat'.

          Ich bin mir nicht so sicher, ob nun 'em' oder 'px' für die Mehrheit der Leute die Zugänglichkeit der Seite verbessert oder verschlechtert. Wenn der IE Schriftgrößen, die 'px' angegeben wurden, skalieren könnte, würde ich fast zu 'px' tendieren. Eine optimale Lösung scheint es zur Zeit irgendwie nicht zu geben.

          Wie seht ihr das?

          Gruß, Jan

          1. Hallo Jan,

            Wenn der IE Schriftgrößen, die 'px' angegeben wurden, skalieren könnte,

            würden auch diese

            oft so groß, wie es der (IE)Benutzer mal unwissentlich eingestellt hat, als er bei gedrückter <Strg>-Taste am Scrollrad gedreht hat'.

            Detlef

            1. Hallo Detlef,

              Wenn der IE Schriftgrößen, die 'px' angegeben wurden, skalieren könnte,

              würden auch diese

              oft so groß, wie es der (IE)Benutzer mal unwissentlich eingestellt hat, als er bei gedrückter <Strg>-Taste am Scrollrad gedreht hat'.

              Schon. Nur würde die Schriftgrößenänderung dann jedem sofort auffallen.

              Ich lese gelegentlich auch mal in Foren, in denen die Benutzer nicht so versiert im Umgang mit ihrem Browser sind, wie in diesem. Und die Frage 'Auf manchen Seiten ist bei mir die Schrift auf einmal so winzig/riesig. Auf allen anderen ist alles normal. Was kann ich da machen? Ist mein Browser kaputt?' findet man dort ziemlich häufig. Diese Benutzer scheinen ein echtes Problem bzgl. der Zugänglichkeit mit diesen -an sich oft gut gemachten Seiten- zu haben, sonst würden sie nicht extra irgendwo posten.

              Ich befürchte, daß die Gruppe derer, die diese Option in ihrem Browser nicht kennen und die Änderungung nicht bemerkt haben (weil auf den meisten Seiten die Schrifgröße ja in 'px' angegeben ist), wesentlich größer ist als die derer, die eine irreparable Sehschwäche haben, an den IE gebunden sind, dort die Option 'Schriftgrößenangaben ignorieren' nicht kennen und auch keine zusätzlichen Hilfprogramme installieren können.

              Deshalb glaube ich, das eine Angabe in 'em' oder '%' zur Zeit für mehr Benutzer eine Hürde ist als eine in 'px'. Zumindest solange man keine 'super-stylische' 8px-Schrift verwendet.

              Gruß, Jan

      2. Hallo.

        Wirklich? Es sind ja 0.8em aber sooo superklein ist das ja nun auch wieder nicht, Es sind 80% von dem was du als ausreichend groß eingestellt hast.

        Wenn zwanzig Prozent zum "ausreichend" fehlen, ist das mindestens "mangelhaft" ;-)
        MfG, at

        1. Hallo,

          Wenn zwanzig Prozent zum "ausreichend" fehlen, ist das mindestens "mangelhaft" ;-)

          Ho Ho ;-)

          Grüße
          Jeena Paradies

          --
          I want to be a woman... from now on I want you all to call me Loretta.
  3. Hello,

    Mir gefällt der Aufbau so gut.
    Aber Multiposting hast Du nicht verhindert, oder? Das muss dringend noch rein.

    Tabelle mit den Versanddaten:

    ID
      ID_newsletter
      ID_empfänger

    und dann immer mit einem "Left Join is null" beim Beschaffen der Adressen kontrollieren, ob die Newsletter-ID für den Adressaten noch nicht existiert.

    Ich teste noch weiter...

    Liebe Grüße aus http://www.braunschweig.de

    --
    Fortschritt ensteht nur durch die Auseinandersetzung der Kreativen
    1. Hallo,

      Jetzt habe ich das mit dem Multiposting hingekriegt. Danke euch beiden für die Hilfe.

      Grüße
      Jeena Paradies

      --
      I want to be a woman... from now on I want you all to call me Loretta.
  4. Hello,

    so, nun habe ich Dir drei Newsletter fabriziert. Scahu doch mal in Deiner Datenbank, wer da als Autor eingetragen ist.
    Und dann würde ich mich noch dafür interessieren, was als Betreff übernommen wurde.

    Willst Du nicht auch Attachments realisieren? Da hatte ich das Script auf meinem Server freigegeben. http://bitworks.de/~selfHTML/mime_mail.php.txt

    Liebe Grüße aus http://www.braunschweig.de

    --
    Fortschritt ensteht nur durch die Auseinandersetzung der Kreativen
    1. Hallo,

      33 X Neues vom Newsletter an Guten Tag Nun schreibe ich erst einmal ganz normal und dann ... 2003-12-05 16:23:04
      34 X Neues vom Newsletter an Guten Tag Nun schreibe ich erst einmal ganz normal und dann ... 2003-12-05 16:23:40
      35   Neues vom Newsletter an Guten Tag zweiter Versuch.

      Mal schauen, ob Dir die Disku... 2003-12-05 16:32:40

      Hm also beim dritten mal hat es gar nichts als Autor eingetragen :-/ Das mit der Sicherheit hab ich noch nicht so ganz drauf. ich hatte einfach mal angenommen, dass wenn es nur die sachen zur auswahl gibt, er nur das reinschreiben würde.

      Grüße
      Jeena Paradies

      --
      I want to be a woman... from now on I want you all to call me Loretta.
      1. Hallo,

        35   Neues vom Newsletter an Guten Tag zweiter Versuch.

        Oj und noch was stimmt, der Betreff ist ein ganz anderer als in der Datenbank :-\

        Grüße
        Jeena Paradies

        --
        I want to be a woman... from now on I want you all to call me Loretta.
      2. Hello,

        35   Neues vom Newsletter an Guten Tag zweiter Versuch.

        Mal schauen, ob Dir die Disku... 2003-12-05 16:32:40

        Hm also beim dritten mal hat es gar nichts als Autor eingetragen :-/ Das mit der Sicherheit hab ich noch nicht so ganz drauf. ich hatte einfach mal angenommen, dass wenn es nur die sachen zur auswahl gibt, er nur das reinschreiben würde.

        Ja, dann postuliere ich mal, dass das ein Feld vom Typ SET ist.
        Ich habe mir deine HTML-Datei auf der lokalen Platte gespeichert und im Option-Feld einfach meinen Namen hinzugefügt. Da der aber nicht in Deinem Set steht, hat das Insert den Wert nicht übernommen.

        Um Manipulationen auszuschließen, sollte man
        1. die POST-Daten gegenprüfen.
        2. Die Datenverarbeitung ablehnen, wenn ungültige Postdaten kommen
           oder ungültige Felder angesprochen werden.

        Außerdem musst Du noch was gegen Multipost tun.

        Liebe Grüße aus http://www.braunschweig.de

        --
        Fortschritt ensteht nur durch die Auseinandersetzung der Kreativen
        1. Hallo,

          Ja, dann postuliere ich mal, dass das ein Feld vom Typ SET ist.
          Ich habe mir deine HTML-Datei auf der lokalen Platte gespeichert und im Option-Feld einfach meinen Namen hinzugefügt. Da der aber nicht in Deinem Set steht, hat das Insert den Wert nicht übernommen.

          Ach so jetzt wird es klarer. Da aber dieser Bereich der Seite mit .htaccess und einem Passwort geschützt sein wird ist das nicht so akut. Ich meine speziell für _diesen_ Fall. Ich glaube nicht, dass sich irgendjemand der einen Newsletter verschicken will um die Leute zu erreichen, die er erreichen will um solche sachen kümmert. Der wird aller warscheinlichkeit nach alles so machen dass seine E-Mail gut aussehend ankommt.

          Um Manipulationen auszuschließen, sollte man

          1. die POST-Daten gegenprüfen.
          2. Die Datenverarbeitung ablehnen, wenn ungültige Postdaten kommen
               oder ungültige Felder angesprochen werden.

          Das ist dann auf jeden fall ein Ansatz für ein Weblog, oder wenn Leute aus dem Internet etwas kommentieren oder eingeben können. Das werde ich dann auf jeden Fall berücksichtigen. Danke für die Aufklärung.

          Außerdem musst Du noch was gegen Multipost tun.

          Ich glaube das ist ein akuteres Problem, mal sehen wie ich das angehen kann.

          Grüße
          Jeena Paradies

          --
          I want to be a woman... from now on I want you all to call me Loretta.
          1. Hello,

            Außerdem musst Du noch was gegen Multipost tun.
            Ich glaube das ist ein akuteres Problem, mal sehen wie ich das angehen kann.

            Ganz einfach:
            Die Mailings werde ja in eine DB eingetragen.
            Gib dem Formular beim Aufruf eine Mailingnummer oder lass den User eine vergeben. Und wenn dann das Mailing posted wird, machst Du erst den Insert in die Tabelle. MAILING_NO ist Unique-Feld.
            Wenn der Insert NICHT geklappt hat, wird das Mailing abgelehnt.

            Liebe Grüße aus http://www.braunschweig.de

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            1. Hallo,

              Ganz einfach:

              Nicht für mich :-)

              Die Mailings werde ja in eine DB eingetragen.

              Was sind Mailings? Ist das alles was in die DB kommt?

              Gib dem Formular beim Aufruf eine Mailingnummer oder lass den User eine vergeben. Und wenn dann das Mailing posted wird, machst Du erst den Insert in die Tabelle. MAILING_NO ist Unique-Feld.

              Eine Mailingnummer? Wie jetzt was ist das denn jetzt? Eine Zufallszahl oder so was? Wie soll ich mir das vorstellen?

              Wenn der Insert NICHT geklappt hat, wird das Mailing abgelehnt.

              Das ist dann leichter zu verstehen.

              Grüße
              Jeena Paradies

              --
              I want to be a woman... from now on I want you all to call me Loretta.
              1. Hello,

                Die Mailings werde ja in eine DB eingetragen.
                Was sind Mailings? Ist das alles was in die DB kommt?

                Na, deine Newsletter. Die trägst Du doch sicher irgendwo ein.
                Und dann erweiterst Du die Tabelle für die Newsletter eben um eine char(32) Spalte mit unique Index.

                Wenn das Script aufgerufen wird, würfelst Du eine Zufallszahl aus. Die überträgst Du in einem hidden-Field des Formulars.

                Wenn der Insert NICHT geklappt hat, wird das Mailing abgelehnt.
                Das ist dann leichter zu verstehen.

                Da die Zufallszahl beim Insert auch eingetragen wird, geht das nur, wenn sie noch nicht in der NewsLetter-Tabelle steht.

                Ich denke, dass Du das ganz locker packst. Alles Andere hast Du ja auch hingekriegt. ;-))

                Liebe Grüße aus http://www.braunschweig.de

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                1. Hallo,

                  Na, deine Newsletter. Die trägst Du doch sicher irgendwo ein.
                  Und dann erweiterst Du die Tabelle für die Newsletter eben um eine char(32) Spalte mit unique Index.

                  Einen unique Index habe ich schon, der wird aber bisher automatisch von MySQL erzeugt.

                  Wenn das Script aufgerufen wird, würfelst Du eine Zufallszahl aus. Die überträgst Du in einem hidden-Field des Formulars.
                  Da die Zufallszahl beim Insert auch eingetragen wird, geht das nur, wenn sie noch nicht in der NewsLetter-Tabelle steht.

                  Ja aber eine Zufallszahl kann ja zufällig eine Sein, die schon mal da war, und dann wird das verschicken abgelehnt, und der ungeübte Benutzer gibt irgendwann einmal auf und schreibt mich an dass das nicht geht.  Das muss doch auch irgendwie zu verhindern sein.

                  Ich denke, dass Du das ganz locker packst. Alles Andere hast Du ja auch hingekriegt. ;-))

                  Jo das denke ich auch ich überlege schon die ganze Zeit wie ich das machen soll. Aber der Einzige Weg glaube ich ist den letzten Newsletter aus der Datenbank zu holen, und ihn mit den Angaben zu vergleichen.

                  Grüße
                  Jeena Paradies

                  --
                  I want to be a woman... from now on I want you all to call me Loretta.
                  1. Hi,

                    Ja aber eine Zufallszahl kann ja zufällig eine Sein, die schon mal da war, und dann wird das verschicken abgelehnt, und der ungeübte Benutzer gibt irgendwann einmal auf und schreibt mich an dass das nicht geht.  Das muss doch auch irgendwie zu verhindern sein.

                    z.B. indem Du einen Timestamp in die Zufallszahl integrierst.

                    freundliche Grüße
                    Ingo

                    1. Hallo,

                      z.B. indem Du einen Timestamp in die Zufallszahl integrierst.

                      hm dann kann ich ja gleich den Timestamp nehmen der ist ja einmalig.

                      Grüße
                      Jeena Paradies

                      --
                      I want to be a woman... from now on I want you all to call me Loretta.
                      1. Hi,

                        z.B. indem Du einen Timestamp in die Zufallszahl integrierst.
                        hm dann kann ich ja gleich den Timestamp nehmen der ist ja einmalig.

                        ich denke nicht 100%ig. Theoretisch könnten doch in derselben Millisekunde zwei verschiedene Anfragen kommen. Und dann gibt's da noch die Zeitumstellungen und vielleicht wird auf dem Server ja auch mal die Uhrzeit auch so korrigiert ...

                        freundliche Grüße
                        Ingo

                        1. Hallo,

                          ich denke nicht 100%ig.

                          Das stimmt.

                          Theoretisch könnten doch in derselben Millisekunde zwei verschiedene Anfragen kommen.

                          Man spricht sich doch in einer Firma/Band ab, wer wann einen Newsletter schreibt oder? Und gleiche Millisekunde ist schon ganz schön krass, dann könnte es auch sein, dass in dieser gleichen Millisekunde zwei gleiche Zufallszahlen generiert werden, und schon hat man das gleiche Problem.

                          Und dann gibt's da noch die Zeitumstellungen und vielleicht wird auf dem Server ja auch mal die Uhrzeit auch so korrigiert ...

                          Das ist schon eher ein Argument. Aber da reicht dann schon eine 4 stellige Zufallszahl+Datum+Uhrzeit aus oder?

                          Also mal sehen ob ich das richtig verstanden habe:

                          1. Beim ersten betreten der Seite newsletter-schreiben.php mache ich eine Zufallszahl+Datum+Uhrzeit
                          2. Diese wird nur dann generiert,

                          if(empty($_POST["form_submitted"])
                             {
                              $id = rand(1000,9999).time();
                             }

                          3. Schreibe ich diese als unique id in die Datenbank
                          4. Wenn man auf den Zurück Button drückt, hat man immer noch die gleiche $id
                          5. Bevor Abgeschickt, oder in die DB reingeschrieben wird wird verglichen ob irgendeine id aus der BB == $id (oder kommt da gleich ein Fehler von der DB weil die id ja auf unique gestellt ist?)
                          6. wenn ja wird abgebrochen und eine Fehlermeldung ausgegeben
                          7. wenn nein, wird alles so gemacht wie bisher

                          Habe ich da irgendwo einen Denkfahler drin? Ich werde es dann mal nächste Woche versuchen umzusetzten. Dann brauche ich ja die automatisch generierte id in der DB gar nicht.

                          Grüße
                          Jeena Paradies

                          --
                          I want to be a woman... from now on I want you all to call me Loretta.