Changeset 409 in t29-www


Ignore:
Timestamp:
May 21, 2013, 7:03:09 PM (6 years ago)
Author:
sven
Message:

Anmeldesystem verbessert: Schreibt jetzt richtige E-Mails
und auch eine Bestätigungsmail.

Files:
3 added
3 edited

Legend:

Unmodified
Added
Removed
  • de/anmeldung.php

    r400 r409  
    33        $version = '$Id: index.php 387 2013-05-08 09:58:11Z heribert $';
    44        $titel = 'Anmeldung zu Terminen für Führungen';
     5        $dynamischer_inhalt = true;
     6
     7        require "../lib/technikum29.php";
     8        require "../lib/mail/mailer.php";
    59       
    6         require "../lib/technikum29.php";
    7 ?>
     10        if(empty($_POST)) { // Wenn noch keine Formulardaten vorhanden sind, eigentliches Formular anzeigen
     11        ?>
    812
    913        <h2>Termine und Führungen - Anmeldung</h2>
     
    1620       
    1721        <div class="anmelde-maske">
    18             <form id="anmeldung" action="http://dev.technikum29.de/cgi-bin/mail.php" method="post">
    19                         <input type="hidden" name="to" value="sven">
    20                         <input type="hidden" name="subject" value="Webanmeldung für Führung">
    21                         <input type="hidden" name="pre" value="Folgender Besucher hat sich für eine Führung angemeldet:">
    22                         <input type="hidden" name="out_heading" value="Ihre Anmeldung wurde entgegengenommen.">
    23                         <input type="hidden" name="out_text" value="Vielen Dank für ihre Anmeldung zur Veranstaltung. <a href=http://www.technikum29.de/de/termine>Zurück zur Termine-Website</a>">
    24 
     22            <form id="anmeldung" action="<?=$host->rewrite_link('/de/anmeldung.php'); ?>" method="POST">
    2523                        <dl>
    2624                                <dt>Veranstaltung</dt>
    2725                                <dd><?php if($veranstaltung) {
    2826                                        echo $veranstaltung;
    29                                         echo '<input type="hidden" name="text_veranstaltung" name="'.$veranstaltung.'">';
     27                                        echo '<input type="hidden" name="veranstaltung" name="'.$veranstaltung.'">';
    3028                                } else { ?>
    31                                         <input type="text" name="text_veranstaltung">
     29                                        <input type="text" name="veranstaltung">
    3230                               
    3331                                <?php } /* if */ ?>
     
    3634                                <dt>Termin</dt>
    3735                                <!--<dd><%=termin%>
    38                                 <input type="hidden" name="text_termin" value="<%=termin%>">-->
    39                                 <dd class="termin"><input type="text" name="text_termin">
     36                                <input type="hidden" name="termin" value="<%=termin%>">-->
     37                                <dd class="termin"><input type="text" name="termin">
    4038                                </dd>
    4139
    4240                                <dt>Name</dt>
    43                                 <dd><input type="text" name="text_anmelder_name"></dd>
     41                                <dd><input type="text" name="anmelder_name"></dd>
    4442
    4543                                <dt>Anzahl der Personen</dt>
    46                                 <dd><input type="text" name="text_personenanzahl"></dd>
     44                                <dd><input type="text" name="personenanzahl"></dd>
    4745                               
    4846                                <dt>E-Mail-Adresse</dt>
    49                                 <dd><input type="email" name="text_email_adresse"></dd>
     47                                <dd><input type="email" name="email_adresse"></dd>
    5048                               
     49                                <!--
    5150                                <dt>Telefonnummer</dt>
    5251                                <dd><input type="tel" name="text_telefon_nummer"></dd>
     52                                -->
    5353                               
    5454                                <dt>Ggf. Anmerkungen</dt>
    55                                 <dd><textarea name="text"></textarea></dd>
     55                                <dd><textarea name="weitere_anmerkungen"></textarea></dd>
     56                               
     57                                <dt>Captcha</dt>
     58                                <dd>Bitte bestätigen Sie, dass Sie menschlich sind:
     59                                <?php
     60                                        if($ajax)
     61                                                echo "<span class='t29-recaptcha' data-publickey='". t29Mailer::recaptcha_get_publickey() ."'></span>";
     62                                        else
     63                                                echo t29Mailer::recaptcha_get_html();
     64                                ?></dd>
    5665                               
    5766                                <dd><input type="submit" value="Abschicken" class="submit"> <input type="reset" value="Abbrechen"> </dd>
     
    5968            </form>
    6069           </div>
     70<?php
     71        } // ende der Ausgaben, wenn keine Formulardaten vorhanden sind
     72        else {
     73                // Formular auswerten, d.h. Formmailer verwenden
     74               
     75                $mailer = new t29Mailer($_POST);
     76               
     77                // fill up form data
     78                $mailer->to = "sven";
     79                $mailer->subject = "Webanmeldung für Führung \"{veranstaltung}\"";
     80                $mailer->header = array(
     81                        'From' => 'technikum29 Computer Museum Anmeldesystem <post@technikum29.de>',
     82                );
     83                $mailer->body = <<<MAIL_BODY
     84Hallo,
     85
     86auf der Anmeldungsseite der Homepage www.technikum29.de ging eine neue Anmeldung ein:
     87
     88Veranstaltung: {veranstaltung}
     89Termin: {termin}
     90(Vgl. Termine auf Startseite: http://www.technikum29.de/de/#termine
     91
     92Name: {anmelder_name}
     93Anzahl der Personen: {personenanzahl}
     94E-Mail-Adresse: {email_adresse}
     95
     96Ggf. weitere Anmerkungen, die angegeben wurden:
     97{weitere_anmerkungen}
     98
     99Die Person hat eine Bestätigungsmail ihrer Daten erhalten.
     100
     101Viele Grüße,
     102deine Website
     103
     104PS: Wenn im Rahmen dieser Mail auch Spam ankommt, wird das System missbraucht. Dann bitte
     105bescheid sagen.
     106
     107MAIL_BODY;
     108
     109                // Bestätigungsmail aufsetzen
     110                $mailer->ack = true;
     111                $mailer->ack_to = '{email_adresse}';
     112                $mailer->ack_subject = "Bestätigung ihrer Webanmeldung zur technikum29-Führung \"{veranstaltung}\"";
     113                $mailer->ack_body = <<<ACK_MAIL_BODY
     114Hallo {anmelder_name},
     115
     116vielen Dank für Ihre Web-Anmeldung zu einer Führung im technikum29 Computer Museum (http://www.technikum29.de/).
     117
     118Sie haben sich mit {personenanzahl} zu der Führung "{veranstaltung}" am {termin} angemeldet.
     119
     120Diese Mail bestätigt den Eingang ihrer Anmeldung. Bitte setzen Sie sich bei weiteren Fragen mit der Museumsführung in Kontakt, schreiben Sie dazu eien Mail an post@technikum29.de, siehe auch Kontaktdaten auf http://www.technikum29.de/de/impressum .
     121
     122-- Diese E-Mail wurde automatisch generiert. Bitte antworten Sie nicht darauf --
     123ACK_MAIL_BODY;
     124
     125                $mailer->output_error_page = function($mailer, $text) {
     126                        ?><h2>Bei der Anmeldung traten Fehler auf</h2>
     127                        <p>Sie wurden dazu aufgefordert, ihre Menschlichkeit zu beweisen. Da wir keine Massenspam-Mails
     128                        erwünschen, füllen Sie bitte dieses Captcha <i>richtig</i> aus:</p>
     129                       
     130                        <form method="POST">
     131                                <?php $mailer->print_serialized_hidden_form(); ?>
     132                                <?php echo $text; ?>
     133                                <input type="submit" value="Anmeldung abschicken">
     134                        </form>
     135                        <?php
     136                };
     137
     138                $mailer->output_success_page = function($mailer) {
     139                        ?><h2>Ihre Anmeldung wurde eingereicht</h2>
     140                       
     141                        <p>Vielen Dank für ihre Anmeldung zur Veranstaltung <strong><?=$mailer->veranstaltung; ?></strong> am
     142                        <strong><?=$mailer->termin; ?></strong>. Sie erhielten eine Bestätigungsmail an ihre Mail-Adresse
     143                        <em><?=$mailer->email_adresse; ?></em>. Bei Fragen wenden Sie sich bitte an die Museumsführung, siehe
     144                        Kontaktdaten im <a href="/de/impressum">Impressum</a>.</p>
     145                       
     146                        <p><a class="go" href="/de/">Zurück zur Startseite</a></p>
     147                       
     148                        <?php
     149                };
     150               
     151                // checken ob alle Pflichtfelder vorhanden sind
     152                $pflicht = array('veranstaltung', 'termin', 'anmelder_name', 'email_adresse');
     153                foreach($pflicht as $feld) {
     154                        if(isset($mailer->_values[$feld]) && !empty($mailer->_values[$feld])) continue;
     155                       
     156                        // Richtig hässliche Fehlerseite anzeigen
     157                        ?><h2>Bitte füllen Sie das Anmeldeformular vollständig aus</h2>
     158                        <p>Die Angabe von Name, Termin, Veranstaltung und E-Mail-Adresse ist zwingend erforderlich.
     159                        <a class="go" href="javascript:history.go();">Zurückgehen und korrigieren</a> oder
     160                        <a href="/de/anmeldung.php">Neu ausfüllen</a>.
     161                        <?php
     162                        return; // end of script
     163                }       
     164               
     165                // mailer starten
     166                if(!$mailer->run()) {
     167                        ?><div style="opacity:0.5"><hr>
     168                        <p><small>Es wurde ein Fehler beim Anmelden festgestellt</small></p><?php
     169                }
     170        }
  • de/index.php

    r408 r409  
    9393<div class="leftcol">
    9494        <h3>Führungen</h3>
    95 <div class="box termin only clear-after">
     95<div class="box termin clear-after">
    9696                <p class="date left"><em>2013</em> 22. Mai</em></p>
    9797                <h4>Die Geschichte der Kommunikation</h4>
     
    217217<div class="center button-box">
    218218        <a href="#archiv" class="go archiv-btn">Vergangene Termine anzeigen</a>
    219         <!--
    220         &middot; <a href="/de/anmeldung.php" class="anmeldung-btn">Zu Führung anmelden</a> -->
     219        &middot; <a href="/de/anmeldung.php" class="anmeldung-btn">Zu Führung anmelden</a>
    221220</div>
    222221
  • shared/js-v6/pagescripts/startseite.js

    r405 r409  
    1919                       
    2020                        // Termine aus Startseite extrahieren
    21                         veranstaltungen = $("#termine .box.termin.only");
     21                        veranstaltungen = $("#termine .box.termin");
    2222                       
    2323                        if(veranstaltungen.length > 1) {
    2424                                // Input-Box durch Chooser ersetzen
    25                                 $anmeldebox.find("input[name='text_veranstaltung']").replaceWith('<select name="text_veranstaltung"></select>');
    26                                 $ver_select = $anmeldebox.find("select[name='text_veranstaltung']");
     25                                $anmeldebox.find("input[name='veranstaltung']").replaceWith('<select name="veranstaltung"></select>');
     26                                $ver_select = $anmeldebox.find("select[name='veranstaltung']");
    2727                               
    2828                                $.each(veranstaltungen, function() {
     
    4646                                // nur ein Termin angeboten:
    4747                                // statt chooser einfach fixe Vorgabe machen (keine Auswahlmoeglichkeit)
    48                                 $anmeldebox.find("input[name='text_veranstaltung']").replaceWith(veranstaltungen.find('h4').text());
     48                                $anmeldebox.find("input[name='veranstaltung']").replaceWith(veranstaltungen.find('h4').text());
    4949                                $anmeldebox.find("dd.termin").text(veranstaltungen.find('dd.termin').text());
    5050                        }
     
    6262                       
    6363                        $anmeldebox.hide().insertBefore('.archiv').slideDown();
     64                       
     65                        // Bugfix: Recaptcha kann nicht per JavaScript inserted werden, muss also
     66                        // per AJAX nachgeladen werden
     67                        t29_recaptcha_insert_id = "t29-recaptcha-insert";
     68                        $anmeldebox.find(".t29-recaptcha").attr("id", t29_recaptcha_insert_id);
     69                        publickey = $anmeldebox.find(".t29-recaptcha").data("publickey");
     70                        t29.load.js("http://www.google.com/recaptcha/api/js/recaptcha_ajax.js", function() {
     71                                 Recaptcha.create(publickey, t29_recaptcha_insert_id, {
     72                                        theme: "clean",
     73                                        callback: Recaptcha.focus_response_field
     74                                 });
     75                        });
     76                       
    6477                        $("a.anmeldung-btn").slideUp();
    6578                });
Note: See TracChangeset for help on using the changeset viewer.
© 2008 - 2013 technikum29 • Sven Köppel • Some rights reserved
Powered by Trac
Expect where otherwise noted, content on this site is licensed under a Creative Commons 3.0 License