[Hilfe] Gedankenansätze komplexes Geburtstagsscript (Noob)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Hilfe] Gedankenansätze komplexes Geburtstagsscript (Noob)

    Geburtstagsscript (für Cronjob)

    Hallo,

    ich suche jetzt schon seit einiger Zeit nach einem fertigen GeburtstagsScript was ich mir mal ansehen kann um ein eigenes Script nach meinen Bedürfnissen zu erstellen. Leider habe ich bis jetzt nichts gefunden.
    Deswegen habe ich mir gedacht, ich versuche es mal selber.

    Ich hoffe auf diesem Wege, einige Gedankenansätze (Wie fängt man an, welche Datenbank-Tabellen sollte man erstellen, etc.) oder auch CodeSnipsel zu erhalten die mir bei meinem Projekt helfen und dir mir auch helfen das alles ein bisschen besser zu verstehen. Da ich bei diesem Script fremde eMail-Daten verwende, möchte ich schon, dass es sicher ist.

    Ich bin eigentlich blutiger Anfänger, bin aber gewillt, mich durch die Materie durch zu lesen. Das Script, da ich es ja auch mit Eure Hilfe erstelle, möchte ich dann auch hier zum download rein stellen.
    Es handelt sich, wie im Titel leicht zu erkennen um ein Geburtstagsscript welches mittels Cronjob oder auch manuell ausgeführt werden kann. Welches aber 3 Besonderheiten haben soll. Einmal soll er zum Geburtstag und zum Jahrestag gratulieren, dann soll er aber auch noch allen in der Liste stehenden eine eMail schicken wenn eine besondere Person Geburtstag hat.
    Alle eMails sollten, wenn möglich als html-Mail versendet werden, wobei a) die html-Email (Ausehen, Vorlage) in einer separaten Datei stehen soll, b) die Personen persönlich angeschrieben werden sollen (Glückwunsch Name) und c) für alle 3 Besonderheiten eine andere html-Email Vorlage verwendet werden soll. (Ich hoffe, dass ich mich richtig ausgedrückt habe.)

    Ich hoffe also, dass nun einige Interesse haben weiter zu lesen.
    Ich fange mal an zu schreiben, was das Script können muss:

    Features (Gedankenansätze)
    - Das Script soll in php geschrieben sein und wenn es geht über eine Datenbank (mysql) laufen, da ich gehört habe das eine Datenbank die sicherste Möglichkeit ist. Ich hatte erst überlegt eine CSV-Datei zu wählen.
    - Das Script soll einmal am Tag per Cronjob oder auch manuell ausgeführt werden können.
    - Es sollte am besten durch ein Passwort (was über GET versendet wird) geschützt sein, so dass es nicht jeder ausführen kann.
    - Das Script prüft nun einmal am Tag wer an diesem Tag Geburtstag hat und wer an diesem Tag Jahrestag hat und sendet der/den Person(en) die betreffenden eMails der Personen.
    Ich habe mir hier überlegt, dass er das auch so anzeigt, wenn er man das Script manuell aufruft:
    Code:
    heutige Geburtstage:
    <Tabelle>
    <eMail an Person senden>
    Vorname, Nachname wird X Jahre - Bild mit Hacken oder Kreuz anzeigen
    <update Zeile mit aktuellem Versanddatum>
    <eMail an Person senden>
    Vorname, Nachname wird X Jahre - Bild mit Hacken oder Kreuz anzeigen
    <update Zeile mit aktuellem Versanddatum>
    </Tabelle>
    heutige Jahrestage:
    <Tabelle>
    <eMail an Person senden>
    Vorname, Nachname wird X Jahre - Bild mit Hacken oder Kreuz anzeigen
    <update Zeile mit aktuellem Versanddatum>
    <eMail an Person senden>
     Vorname, Nachname wird X Jahre - Bild mit Hacken oder Kreuz anzeigen
    <update Zeile mit aktuellem Versanddatum>
    </Tabelle>
    besondere Geburtstage:
    <Tabelle>
    <eMail an Person senden>
    Der Position Vorname, Nachname wird heute X Jahre - Bild mit Hacken oder Kreuz anzeigen
    <update Zeile mit aktuellem Versanddatum>
    <eMail an Person senden>
     Der Position Vorname, Nachname wird heute X Jahre - Bild mit Hacken oder Kreuz anzeigen
    <update Zeile mit aktuellem Versanddatum>
    </Tabelle>
    <Gesamtauflistung versenden>
    - Zusätzlich wird geprüft ob die Person eine besondere Person ist (in meinem Fall hätte ich jetzt gedacht, ich erstelle eine Datenbank-Tabelle "vorstand" und wenn dort etwas eingetragen ist, dann ist es eine besondere Person.) Wenn es eine besondere Person ist bekommen alle, die in der Liste stehen, eine eMail mit der Info das eine besondere Person Geburtstag hat.
    - Alle Ergebnisse werden nun auch nochmal an eine Adresse versendet (Admin). Er bekommt eine eMail mit einer Gesamt-Auflistung,
    Beispiel:
    Betreff: xx.xx.xxxx - Geburts-, Jahres- & besondere Tage
    Code:
    Heute ist der 
    xx.xx.xxxx 
    
    x Personen haben Geburtstag:
    Vorname Nachname (Alter) - eMail (anklickbar),
    Vorname Nachname (Alter) - eMail (anklickbar),
    etc.
    
    x Personen haben Jahrestag:
    Vorname Nachname (Alter) - eMail (anklickbar),
    Vorname Nachname (Alter) - eMail (anklickbar),
    etc.
    
    Besondere Personen:
    Position - Vorname Nachname (Alter) - eMail (anklickbar),
    Position - Vorname Nachname (Alter) - eMail (anklickbar),
    etc.
    - Es sollte auch möglich sein, Personen ohne eMail einzutragen. Die Info bekommt aber dann nur die Person mit der Gesamtauflistung. So kann er Admin, dann evtl. anrufen bzw. sich anders melden.


    Anfang
    Mache ich mal den Anfang.
    Ich habe mir überlegt eine Datenbank-Tabelle zu erstellen, die wie folgt aussieht:
    Code:
    id|position|vorname|nachname|email|geburtstag|jahrestag|versandt
    id - wird automatisch erstellt.
    position - Wenn hier was drin steht, ist es eine besondere Person, steht nix drin (weiß nicht ob man das Feld leer lassen sollte oder einen Wert (z.B. 0) zuweisen sollte).
    vorname bis email - sind klar.
    geburtstag, jahrestag - weiß ich nicht welches Format ich nehmen soll, da ich ja auch wissen möchte wie alt die Person wird.
    versandt - hier habe ich mir überlegt, dass man eine kontrolle einbaut, ob die eMail versandt wurde. Hier soll das letzte Datum der Versendung rein.


    Meine Überlegung ist nun:
    - Reicht eine Datenbank-Tabelle?
    - Welches Datumformat soll ich für alle Felder verwenden?
    - Wie sieht der INSERT-Befehl für die Erstellung der Datenbank-Tabelle aus. (Ich würde es gerne so machen, dass wenn man die Datenbank-Variablen in der config ausgefühlt hat, prüft das Script ob die Tabelle existiert und wenn nicht soll er die benötigte Tabelle installieren. Also von wegen. Konnte Tabelle nicht finden. Datenbank ist erreichbar und aktiv. Tabelle wurde erfolgreich erstellt.)
    - Sind weitere Spalten notwendig?
    - Darf bzw. sollte man eine externe config.inc erstellen um da weitere Einstellungsmöglichkeiten eingeben zu können?
    - Wie versende ich eine Mail wo ich die eigentliche eMail (Content) in einer externen Datei habe?
    - Muss ich etwas beachten, wenn ich eine eMail an alle in der Liste befindlichen Personen schicke?
    - Wie sollte ich nun am besten Anfangen?

    Ich denke, ich warte erst einmal auf antworten bis es hier weiter geht.

    Ich bedanke mich schon bei allen die sich hier den Text nun durchgelesen haben und ggf. auch antworten.

    Gruss Dj_PD

  • #2
    Ich bin eigentlich blutiger Anfänger, bin aber gewillt, mich durch die Materie durch zu lesen.
    Grundlagen zu PHP gibt es z.B. bei mir. Ebenso die zu MySQL. Und ein paar Tutorials findest du hier.

    Und keine Angst, wurde extra für Anfänger gemacht.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Zitat von Dj_PD Beitrag anzeigen
      Zusätzlich wird geprüft ob die Person eine besondere Person ist (in meinem Fall hätte ich jetzt gedacht, ich erstelle eine Datenbank-Tabelle "vorstand" und wenn dort etwas eingetragen ist, dann ist es eine besondere Person.)
      Du meinst, eine zusätzliche Tabelle, in die nur die Vorstandsmitglieder rein kommen, und die anderen Personen in eine andere Tabelle?

      Nein.

      Als Faustregel gilt: Daten gleicher Struktur kommen auch in die gleiche Tabelle.

      - Wie sollte ich nun am besten Anfangen?
      Mit was kleinerem.

      Anfänger, die sich übernehmen und zu viel auf einmal wollen, fallen regelmässig auf die Nase.

      Ich würde empfehlen, erst mal ein paar Tutorials durchzuarbeiten, in deren Verlauf "Standardscripte" wie bspw. ein Gästebuch erstellt werden - um damit schon mal die Grundlagen der Formularverarbeitung, des Umgangs mit einer Datenbank, etc. zu lernen.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        @Kropff - Vielen Dank für die Seite. Sieht wirklich gut aus. Als wenn man sich dort sehr viel Mühe mit gegeben hat. Ich werde es mir in jedem Fall durchlesen.
        (Habs auch gerade mal gemacht, also angefangen und ich bin echt, fast schon begeistert, super verständlich erklärt. Danke. . .


        @wahsaga - Ist ja leicht gesagt, zu sagen, dass man mit etwas kleinerem Anfangen soll. Es ist nur so, dass ich gar kein Gästebuch benötige, aber dieses Script schon.
        Im Internet scheint es tatsächlich so ein Script nicht zu geben, was mich ehrlich gesagt schon arg verwundert hat.

        Naja, wenn ihr meint, dass es eine Nummer zu groß wäre.
        Was soll ich den jetzt sonst machen?

        Einfach sagen, "Such dir was kleineres" ist ja schön und gut, aber so bekomme ich das benötigte Script nicht.

        Wäre hier einer bereit sowas zu programmieren?
        Wo findet man Personen die sowas leicht und am besten verständlich (nachvollziehbar) programmieren?
        Und wie teuer wäre das? (Umsonst ist ja heute kaum noch etwas)

        Und du bist dir echt sicher das ich/wir das nicht hin bekommen?

        Kommentar


        • #5
          Ein Jobangebot kannst du hier posten und dir konkrete Angebote reinholen. Das ist –*IMHO –*die einzige Möglichkeit an so ein Script zu kommen, für dich.
          [FONT="Helvetica"]twitter.com/unset[/FONT]

          Shitstorm Podcast – Wöchentliches Auskotzen

          Kommentar


          • #6
            Du kannst dich schon an diese Aufgabe wagen, aber beginne mit einem kleinen Teil und baue sukzessiv weitere Features dazu.
            - passwortgeschützte Seite (die erstmal nur "Hallo" anzeigt, wenn man sich einloggt)
            - Eingabe von Personen mit Geburtstagen, speichern in Datenbank, anzeigen der DB-Inhalte (Gästebuch-Niveau)
            - Generieren einfacher Textmails per Klick auf einen Link
            - Verwendung von DB-Inhalten in den Textmails
            - HTML-Mails statt Text
            - Generieren der Mails durch Cron
            - Anzeige der Statistik auf Webseite
            - Versandt der Statistik per Mail

            Das schwierigste daran ist, bei jeder Ausbaustufe zu bedenken, wo die Reise hingeht und die entsprechenden Strukturen zu schaffen. Für Profis kein Problem, aber für einen Anfänger sicherlich nahezu unmöglich. Deshalb solltest du dir besonders viel Zeit für die Planung nehmen und die Dinge hier immer wieder zur Diskussion stellen. Damit das fruchten kann, solltest du allerdings die Grundlagen bereits beherrschen. Bis zum Gästebuch-Niveau solltest du also schon alles drauf haben. Das kannst du ja auch prima anhand irgendwelcher Einsteiger-Tutorials üben.

            Kommentar


            • #7
              Ok, gut.
              Ich werde es mal versuchen und sollte ich es nicht schaffen, kann ich ja immer noch ein Job rein stellen. (Hoffe mal das sowas nicht all zu teuer ist, wobei ich immer bereit bin für solche Leistungen angemessen zu zahlen. @Kropff - bei dir auf der Seite fehlt auch nen PayPal-Link)

              Öhm, ok, also ich fange nun mal an. Am besten ist glaube ich wenn ich insgesamt mal einige Fragen stelle die zu diesem Script stelle. Da ich das ganze Script vor Augen habe, wäre es hilfreich für mich, wenn ich so in etwa die Punkte im Kopf und beantwortet habe die mich derzeit noch zum grübbeln bringen.
              Ich schreibe immer eine Nummer vor der Frage, damit man hierzu auch antworten kann. Vielleicht kann mir ja jemand ein paar Lösungsvorschläge, Tipps oder CodeSnipsel geben.

              Das Script soll ja eigentlich so einfach wie möglich sein, also wollte ich auch erst einmal einen Adminbereich komplett weg lassen, schon allein weil ich mit das Script schnellstmöglich benötige. Deswegen werde ich wohl kein Passwortschutz in dem Sinne brauchen. Das einzige was ich mir überlegt hatte, dass ich per GET ein Passwort mitsende, so dass es eben nicht jeder sehen kann. Also bei Aufruf von sagen wir mal geburtstagsdatei.php sieht man eine weiße Seite oder es kommt eine Weiterleitung und bei geburtstagsdatei.php?anzeigen=kjashdjkshajdh wird die Auflistung der Geburtstage angezeigt. Warum? Weil ich so verhindere, dass das Script von anderen Ausführen läßt. Zudem kann ich ja nicht einfach ein Passwortsystem verwendet, da sich der Cronjob ja sicher nicht anmelden kann.

              Ich habe auch für erst einmal nur für Geburtstag zu erstellen. Wenn ich das fertig habe, ist es ja einfach dies für Jahrestage zu duplizieren und naja, für besondere Personen wäre es evtl. noch eine Herrausforderung.

              Aber nun gut. Erst einmal ein paar Grundlegende Fragen zum Script.

              1) Welches Datumformat soll ich für die Datum-Felder verwenden?
              2) Ich habe ja versandt als Tabellenspalte gewählt. Findet ihr die Idee sinnvoll eine Kontrolle einzubauen, wann die letzte Mail versandt wurde? Ich mein, wenn der Admin dann eine eMail bekommt und sieht in der Auflistung, dass eine eMail nicht versendet wurde, so könnte er das Script ja nochmal manuell ausführen und da das Script dann sieht, dass eine eMail nicht versendet wurde und das Script würde es dann nochmal versuchen.
              3) Jeder sieht ja oben, wie ich die Tabelle erstellen wwürde. Würdet ihr weitere Spalten für bestimmte Optionen wählen? Oder reichen diese Spalten völlig aus? (Ich habe noch vor eine config.inc zu erstellen um allgemeine Einstellungen einzubauen.)
              4) Darf für die Verwendung von Cronjob externe Dateien (config.inc, etc.) verwenden oder kann es hier zu Problemem kommen. Eigentlich stelle ich mir Cronjob (jetzt mal primitiv gesehen) einfach nur als eine Person vor, die das Script für mich ausführt. Daher würde ich jetzt sagen, dass es auch ein ganz normales Script sein kann. Also, dass ich bei Cronjob nichts direkt berücksichtigen brauch, stimmts?
              5) Wie man eine Mail (auch html) versenden, weiß ich. Habe schon einige Hilfen diesbezüglich gesehen und gelesen. Aber nirgendwo finde ich eine Hilfe wie man eine Mail versenden, wenn man das html-Gerüst in einer externen Datei steht. Die meisten nehmen einfach nur einen String und packen da alles rein. Aber ich müßte ja, die Datei einlesen, diese dann mit Textbausteinen (Vorname, Nachname, ggf. Datum von Geburtstag und Jahrestag und Alter) versehen und dann erst versenden. Wenn jemand zufällig ein gutes Tutorial kennt, wäre ich echt verbunden, da diese Passage einer der schwierigsten ohne Hilfe sein wird.
              6) Dann noch eine Frage bzgl. der Sache, wenn ein besonderes Mitglied Geburtstag hat. Ich habe mal gehört, dass es manchmal zu Problemen kommen kann, wenn man viele eMails versendet. Muss ich etwas beachten, wenn ich eine eMail an alle in der Liste befindlichen Personen schicke?
              Bzw. da ich ja schon davon gehört habe. Kennt jemand zufällig ein CodeSnipsel? Ich habe da jetzt so im Gedanken, dass ich die Seite nach den ersten X versendeten eMail neu lade. Dann sage ich immer versende X eMail wo die Tabelle versandt noch nicht das aktuelle Datum hat. Hmmmm, ist ja auch blöd, da es ja sein kann, dass bereits eine Geburtstagsmail versandt wurde und das aktuelle Datum bereits drin steht. Normal müßte ich dann noch eine versandt_besondere machen. Shit. Ich muss glaube ich zu jedem Ereignis (Geburts-, Jahrestag und besonderer Tag) eine versandt-kontrolle einbauen. Wobei, was meint ihr. Gibt es da evtl. eine bessere Möglichkeit?

              Ich denke, dass wären jetzt erst einmal meine grundlegenden Fragen. Ich würde mich freuen, wenn der ein oder andere mal zu einigen Fragepunkten antworten könnten. Würde mir wirklich helfen in die richtige Richtung zu denken.

              Gruss
              Dj

              Kommentar


              • #8
                Hallo DJ,

                Zitat von Dj_PD Beitrag anzeigen
                Das einzige was ich mir überlegt hatte, dass ich per GET ein Passwort mitsende
                das ist eine schlechte Idee. Lies dir mal was zum Thema HTTP-Authentifizierung durch, z. B. das hier. Wenn der Cron-Job auf dem Server läuft, braucht er keine Anmeldung, er greift ja direkt über das Dateisystem zu.

                1. DATE, darin kannst du den Tag der Geburt speichern und kannst daraus den jährlichen Geburtstag ermitteln und das aktuelle Alter

                4. Diese Vorstellung kommt so hin, also kein Problem.

                5. Das funktioniert in etwa so, wie Template Engines arbeiten. Mittels irgendwelcher Platzhalter wird aus dem Template und dem Content ein fertiges HTML-Dokument.

                6. Da musst du deinen Webspace-Provider fragen. Die sagen dir, wie viele Mails pro Tag/Monat du verschicken darfst. Manche bieten auch Listenserver (z. B. Majordomo) an, mit denen man dann unbegrenzt mailen darf, ist aber ein klein wenig komplizierter. Diese Begrenzungen sind dabei durchaus keine Schikane, sondern stellen sicher, dass dein Server nicht nach dem ersten Versand in sämtlichen Blacklisten als Spam-Server geführt wird.

                Gruß,

                Amica
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  Ok, zu der HTTP-Authentifizierung nochmal.
                  Das heißt, wenn ich das Script auf dieser Art schütze, würde das Script auch vom Cronjob ausgeführt werden?
                  Da hab ich aber noch eine doofe Fragen:
                  Was wäre den dann der Loginname und das Passwort wenn ich jetzt z.B. das Beispiel 1 verwenden würde (oder ist 3 besser) ? Die Benutzerdaten die ich eingebe um mich bei meinen Provider anzumelden?

                  Kommentar


                  • #10
                    Zitat von Dj_PD Beitrag anzeigen
                    Die Benutzerdaten die ich eingebe um mich bei meinen Provider anzumelden?
                    Nein, guck dir mal den von mir genannten Link genau an. Du kannst das selbst festlegen und das ist eigentlich auch ganz einfach
                    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                    Super, danke!
                    [/COLOR]

                    Kommentar


                    • #11
                      (Womit das ganze wohl nun Projekthilfe ist)
                      [FONT="Helvetica"]twitter.com/unset[/FONT]

                      Shitstorm Podcast – Wöchentliches Auskotzen

                      Kommentar

                      Lädt...
                      X