Beiträge von JR Cologne

    Du müsstest im Grunde zwei Dinge erstellen.


    Eine Seite, auf der man sich eintragen kann und die Daten dann in einer Datei oder Datenbank gespeichert werden.


    Das Zweite wäre ein Script, dass dann für die Zuteilung sowie Versendung sorgt.


    Die Zuteilung würde ich so angehen, dass du dir aus der DB oder Datei alle Teilnehmer ziehst, diese in einem Array speicherst und dann mittels foreach durchläufst. Für jeden Eintrag erstellst du dann ein temporäres Array, welches allerdings die aktuelle Person nicht enthält, um die Ziehung von sich selber zu verzichten.

    Des Weiteren müsstest du bereits vergebene Leute entfernen.


    Die Zuordnung erfolgt dann so, dass du z.B. die ID der zugeordneten Person für die entsprechende Person abspeicherst.


    Hoffe, ich habe das halbwegs verständlich erklärt. Kann ansonsten auch nochmal ein Beispiel erstellen.

    Durch die umfangreiche Dokumentation hatte ich da mit PHP eigentlich nie Probleme...


    Für dein Beispiel könntest du z.B. explode() nutzen:


    PHP
    1. <?php
    2. $str = 'bla1 diesen text will ich haben bla2';
    3. $str = trim(explode('bla2', explode('bla1', $str)[1])[0]);


    Das Ganze sieht etwas kompliziert aus, das stimmt. Im Prinzip ist es aber das Gleiche, wie deine JS-Lösung. Der Unterschied: In PHP kann man halt nicht einfach Funktionen hintereinander hängen.


    Eine etwas bessere Lösung wäre natürlich die Nutzung von str_replace. Damit kannst du die ungewollten Bestandteile einfach mit einem leeren String ersetzen.


    PHP
    1. <?php
    2. $str = 'bla1 diesen text will ich haben bla2';
    3. $str = trim(str_replace([ 'bla1', 'bla2' ], '', $str));
    4. echo $str;

    Stimme dem absolut zu!


    Es ist super, dass du so engagiert bist, Basti, aber du kannst nicht immer alles einfach durch Learning by doing in einem Fiddle machen.


    Du musst auch die Grundlagen lernen und verschiedene Kurse durchlaufen, damit du es richtig lernst. Dazu gehört auch, richtige Websites zu entwickeln und nicht nur in einem Fiddle rumzuspielen.

    Das sind alles Präprozessoren, welche erst in HTML bzw. CSS kompiliert werden müssen. Es gibt also keine Möglichkeit, diesen Code einfach auf den Server hochzuladen, weil der Browser das nicht verstehen würde.


    Irgendwelche Scripte, die du zusätzlich einfügst und dann alles funktioniert, gibt es dafür auch nicht. Das liegt daran, dass es im Grunde eine andere Sprache mit anderem Syntax usw. ist.

    Schau ich mir morgen an. Der erste Fehler sollte eigentlich auch bei Xampp nicht auftreten.


    Die Vorgehensweise alles auf den Server zu kopieren, sollte eigentlich auch funktionieren.


    Letzteres scheint eher ein Konfigurationsproblem von deinem SMTP zu sein.

    Kurz zum weiteren Vorgehen:

    1. -> erledigt

    (Frage wäre hier, warum dies in den vielen, vielen Beispielen von swiftmailer im Internet immer angezogen wird. Kann aber verstehen, dass das mit dem composer sich erledigt)


    Das sollte eigentlich nur bei den Beispielen ohne Composer vorhanden sein.



    Dir fehlt das new-Keyword. Mit dem new-Keyword wird nämlich ein Objekt (bzw. Instanz) einer Klasse erstellt/erzeugt.

    Die Fehlermeldung bekommst du, weil PHP denkt, es würde sich um eine normale Funktion handeln, jedoch existiert diese logischerweise nicht.

    Es gibt lediglich eine Klasse, die so heißt.

    Ah, ne. So kann das nicht funktionieren.


    1. Entferne die Einbindung von swift_required.php. Der Sinn hinter dem Composer Autoloader ist, dass dieser bereits alle Dateien, die benötigt werden, einbindet. Das wäre also doppelt gemoppelt.


    2. Du hast einfach die composer.json vom Swift-Mailer kopiert. Das ist falsch, da dies die Datei ist, die das Swift-Mailer Package beschreibt. Wenn du selber ein Package für Composer entwickeln würdest, bräuchtest du eine ähnliche Datei.

    In deinem Fall reicht jedoch Folgendes aus:

    Code
    1. {
    2. "require": {
    3. "swiftmailer/swiftmailer": "^6.0"
    4. }
    5. }

    Dann noch composer install im Terminal ausführen und alles sollte installiert sein.


    Alternativ kannst du auch nur das Terminal nutzen und Folgendes innerhalb deines Projektordners ausführen:


    Code
    1. composer require "swiftmailer/swiftmailer:^6.0"


    Dies erstellt die composer.json dann automatisch und installiert alles.