Ankündigung

Einklappen
Keine Ankündigung bisher.

Personalisierte Fragebögen

Einklappen

Neue Werbung 2019

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

  • Personalisierte Fragebögen

    Hallo zusammen,

    brauche dringend eure Hilfe!
    Folgende Ausgangssituation:
    Ich erstelle zur Zeit einen Fragebogen in PHP über absolvierte Schulungen. Es gibt mehrere Schulungen, die natürlich von mehreren Teilnehmer genutzt werden.
    Sobald eine Schulung abgeschlossen ist, sollen die entsprechenden Teilnehmer per Mail eine Aufforderung zur Bewertung mit entsprechenden Link erhalten. Wird der Link genutzt, soll der Teilnehmer direkt angesprochen werden und seine Daten, die zuvor in eine mySQL-DB eingegeben wurden, angezeigt und die Bewertung kann vollzogen werden.

    Meine Frage lautet nun: Wie kann ich eine solche Mail versenden, die dem entsprechenden Teilnehmer gleich aus der DB sucht und entsprechende Daten in die Formularfelder setzt?

    Habe mir gedacht, dass ich die Mails mit PHPMailer versende.

    Danke für eure Vorschläge!

    Gruß
    Björn

  • #2
    Eine Session in der Datenbank speichern bzw einen "random Key", diesen an dann in dem Llink, der in der Mail steht mit reinschreiben und schon kommst du an die DB Datensätze =)

    Kommentar


    • #3
      Danke @ Papst,

      mit Session meinst du das normale php-Sessionmanagement mit session_start(), etc? Wie setze ich denn die session-id fest, oder überlege ich mir selbst eine?

      Zum Punkt "random key". Was ist denn das? hab ich noch nie gehört, bin auch wohl etwas zu doof das bei php.net in die suche einzugeben.

      Danke nochmals!

      Kommentar


      • #4
        Die einfachste Möglichkeit

        Am einfachsten ist es wenn du die Daten deines Benutzers einträgst einfach in der Datenbank direkt eine ID vergibst die sich von selbst inkrementiert (auto_increment) und diese dann in die Mail-Funktion einbindest bzw. in den Link in der Mail Funktion.
        Also z.B.:
        <a href="deine-hp.de/bewertung.php?id='".$id."'>Unsere Bewertung</a>
        Liest dann mit der globalen Variable $_GET den Wert aus der URL ausliest...

        mfg
        CHAOS.A.D

        Kommentar


        • #5
          Danke @Chaos,

          wie muss denn mein php-skript aussehen? muss zusätzlich zu meiner DB-Anbindung und einer Select-Anweisung noch eine weitere Angabe gemacht werden? Ich bekomme nur meinen ersten Eintrag angezeigt

          Code:
              $sql = "SELECT teilnehmer_lastname, teilnehmer_firstname, teilnehmer_company, teilnehmer_adress, teilnehmer_mail
                      FROM schul_teilnehmer";
                      
              $res = mysql_query($sql);
              $row = mysql_fetch_array($res, MYSQL_ASSOC);
          
             echo '<td>
             <p>Name:<td><input name="vorname" type="text" size="30" maxlength="30" value="' . $row['teilnehmer_lastname'] . '"></p>
             </td>
          Hier ein kleiner Ausschnitt. Vorher ist nur noch die DB-Anbindung definiert.

          Hängt wahrscheinlich an der $_Get-Variable, wie würde der Code dafür aussehen. Sorry, stehe voll auf'm Schlauch!

          Kommentar


          • #6
            hab's. Mir hat in dem SQL-Statement, die WHERE-Anweisung gefehlt, ich Idiot!

            Thx!

            Kommentar


            • #7
              Du hast hier folgendes:
              $res = mysql_query($sql);

              Du musst aber noch die Variable mit den Zugangsdaten zu Datenbank einbinden...
              also zum Beispiel:
              $res= mysql_query($sql,$conn);
              du musst natürlich noch eine DB selektieren und die datei mit der Verbindung inkludieren.

              Genau und die Where-Anweisung noch machen.exakt dann sollts gehn

              Kommentar


              • #8
                Zitat von CHAOS.A.D Beitrag anzeigen
                Du hast hier folgendes:
                $res = mysql_query($sql);

                Du musst aber noch die Variable mit den Zugangsdaten zu Datenbank einbinden...
                also zum Beispiel:
                $res= mysql_query($sql,$conn);
                du musst natürlich noch eine DB selektieren und die datei mit der Verbindung inkludieren.

                Genau und die Where-Anweisung noch machen.exakt dann sollts gehn
                Hiho,

                muss man nicht die Angabe ist optional

                Kommentar


                • #9
                  optional aber sinnvoll.
                  Wenn man mehr als eine Verbindung gleichzeitig hat, ist es unumgänglich.
                  Ausserdem vermeidet man Fehler durch die albernen autconnect Versuche von php (das ist echt so ein blödes "feature" der mysql Erweiterung).

                  Kommentar


                  • #10
                    eine Frage habe ich dann aber doch noch zu dem Link ( <a href="deine-hp.de/bewertung.php?id='".$id."'>Unsere Bewertung</a>). Funktioniert super, aber theoretisch kann dann jeder jeden Datensatz aufrufen.

                    Kann man das noch irgendwie sicherer machen?

                    Kommentar


                    • #11
                      nicht die ID nehmen, sondern einen "random key" einen hash, irgendwas. Habe ich doch oben schon geschrieben

                      Kommentar


                      • #12
                        nicht die ID nehmen, sondern einen "random key" einen hash, irgendwas. Habe ich doch oben schon geschrieben
                        Stimmt, da hatter recht...

                        Wie krieg ich das denn automatisiert hin?

                        Nochmals Danke!

                        Kommentar


                        • #13
                          Hu,

                          Codeschnipsel bzw Funktionen für zufällig erzeugte Strings gibt es zuhauf im Internet, einfach beim eintragen einen erstellen lassen und in beim Datensatz mitspeichern. Über die Mail in den Link schreiben und per GET übergeben.

                          Kommentar

                          Lädt...
                          X