rubi: Ein personenorientiertes Formular erstellen!

Hallo Freaks!
Ich habe mich hier angemeldet wegen folgender Frage:

Ich möchte Kunden einen Link per eMail schicken, der, wenn sie darauf klicken, eine Seite öffnet wo ein Formular zum ausfüllen ist. Es geht nur um die Erstellung und Funktion dieses Formulars. Der Kunde soll dort nur ein bis zwei Sachen ausfüllen und diese absenden können, so dass ich die Nachricht erhalten. Der Clou aber ist, dass ich dann sehen will wer von den Kunden den vorher per eMail verschickten Link angeklickt hat. Somit will ich den Kunden ersparen im Formular ihre Kontaktdaten anzugeben.

Also quasi Kunde XYZ bekommt eMail, klickt auf Link, füllt Formular aus, ich erhalte eMail mit Formulardaten UND Information das genau Kunde XYZ dieses ausgefüllt hat. Also muss dann wahrscheinlich jeder Kunde einen anderen Link zugeschickt bekommen.

Also wer Lust hat kurz was zu schreiben, wie man so ein Vorhaben realisieren könnte, wäre ich sehr dankbar. Ahnung habe ich keine von Forms bzw. PHP, allerdings etwas von HTML. Ich könnte das Form ja bei einer Seite erstellen, es geht nur um den Clou den ich da drin haben will

Vielen Dank, Folks!

  1. Ich habe mich hier angemeldet wegen folgender Frage:

    In diesem Forum kann man auch posten, wenn man nicht angemeldet ist.

    Also quasi Kunde XYZ bekommt eMail, klickt auf Link, füllt Formular aus, ich erhalte eMail mit Formulardaten UND Information das genau Kunde XYZ dieses ausgefüllt hat. Also muss dann wahrscheinlich jeder Kunde einen anderen Link zugeschickt bekommen.

    Anders ja, aber nicht die Adresse.
    www.example.org/forumlar.php?kunde=XYZ

    Stichwort: GET parameter

    Das Formular vergleicht diesen Parameter mit einer Datenbank und lässt sich, evtl., nicht ausfüllen, wenn der Eintrag nicht gefunden wurde. Wenn ja, dann füllt sich das Formular mit Daten aus der DB. Beim Absenden verschickst Du den Parameter auch mit, weil Du -- schalau wie du sein wirst -- den Parameter auch in ein hidden field schreibst.

    Ahnung habe ich keine von Forms bzw. PHP, allerdings etwas von HTML.

    Ein bisschen serverseitge Sprache (zum Beispiel php) brauchst Du schon... Such mal nach Affenformular.

    Cheers,
    Freak

    1. Stichwort: GET parameter

      Der Begriff "GET parameter" ist etwas unglücklich. Sagen wir url parameter.

      Cheers,
      Baba

    2. Anders ja, aber nicht die Adresse.
      www.example.org/forumlar.php?kunde=XYZ

      eher ?kunde=XYZ&authCode=2bb1ce3dddd02d3855f3737c9c8b4d5d

      Dieser zusätzliche schlüssel ist je versandter Nachricht eindeutig und wird gemeinsam mit dem Benutzer in einer Datenbank hinterlegt, wenn man also die Daten eines bestimmten Kunden aufrufen will, wird nachgeschaut ob der Code mit dem hinterlegten übereinstimmt.

      Ansonsten kann man damit nämlich bequem sämtliche hinterlegten Kundendaten abgrasen - ich wäre in so einem Fall als Kunde ziemlich angepisst.

      1. Ansonsten kann man damit nämlich bequem sämtliche hinterlegten Kundendaten abgrasen

        Ich gehe davon aus, dass bereits der Kunde ein solcher Code ist.
        nicht index.php?kunde=maxmeier
        sondern index.php?kunde=2bb1ce3dddd02d3855f3737c9c8b4d5d

        Cheers,
        Baba

    3. Ich habe ja schon eine Seite mit einem Formular dessen Inhalt mir geschickt wird. Das habe ich ohne PHP Kenntnisse einfach über son kostenplfichtigen Service machen lassen, daher wollte ich erstmal wissen ob meine Idee überhaupt funktioniert. Und was ihr da schreibt ist mir schon zu hoch :)

      Nehmen wir einfach mal an ich habe schon ein Formular auf einer Seite und in dieses trägt ein Kunde ein:

      Artikel: ...
      Stückzahl: ...

      abschicken!

      so und das kommt bei mir an, aber mit einem Hinweis wer von den Linkklickern in der Mail denn das Formular ausgefüllt hat.  Ich könnte ja zB auch jedem Kunde eine andere Seite schicken aber das wäre zu aufwändig was!?

      Das man hier nicht angemeldet sein muss wusste ich nicht :D

      1. Ich habe ja schon eine Seite mit einem Formular dessen Inhalt mir geschickt wird. Das habe ich ohne PHP Kenntnisse einfach über son kostenplfichtigen Service machen lassen,

        Na dann geht es wohl nicht, gelle. Wenn dieses Formular keine Parameter entgegennehmen kann, was ich nicht wisse kann, wenn Du den Service nicht angibst, wovon ich aber ausgehe, wie sollst Du dann die Felder vorbelegen?

        Ich könnte ja zB auch jedem Kunde eine andere Seite schicken aber das wäre zu aufwändig was!?

        Für mich wäre das zuviel aufwand, weil es relativ einfach zu programmieren ist. Für Dich vielleicht nicht, wenn Du kein php lernen willst. Ich nehme an, Du musst es dann wohl...

        Cheers,
        Baba

        1. Die Seite ist https://www.dw-formmailer.de da kann man formulare erstellen. kann mir nur nicht vorstellen dass mit nem personenbezogenen link zu verknüpfen.

          ne ziemlich dumme idee ist ja auch dem kunden in der email nen code zB XYZ zu geben und den trägt er in ein feld ein dann weiß ich ja das es xyz ist. aber das ist dämlich und mehr arbeit für kunden und kann missbraucht werden oder man verschreibt sich etc. ich weiß keene lösung dabei isses doch nur sone kleene sache :D

          1. Lieber rubi,

            wenn Du Deine Kunden an irgendeinen "bequemen" Dienst im Netz verweist, dann ist das in meinen Augen sehr unseriös. Soetwas muss in meinen Augen über die eigene Domain gehen.

            ich weiß keene lösung dabei isses doch nur sone kleene sache :D

            Nein, ist es nicht. Wenn Du es nicht selbst kannst oder können willst, dann bezahle jemanden, damit er das für Dich tut, oder schreibe eben Deine Zettel und Maile die Leute an, damit sie Dir in einer Antwortmail Deine Bestellungen tätigen.

            Liebe Grüße,

            Felix Riesterer.

            --
            ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
            1. Ich verweiße die an keinen Dienst, ich nutze den Dienst nur um ein Formular zu erstellen und das binde ich dann nur in meine eigene Seite ein, mit meiner URL.

              Ich bezahle niemanden dafür :D ich wollte doch nur wissen ob es irgendwie realisierbar ist oder ob mir jemand einen Tipp geben kann um mich auf den richtigen Weg zu bringen. Es muss nur ne kommunikation mit dem link und dem formular geben, das ist ja eigtl alles.

              1. Lieber rubi,

                ich wollte doch nur wissen ob es irgendwie realisierbar ist

                das implizite "JA!" ist bei Dir angekommen ... oder doch nicht?

                oder ob mir jemand einen Tipp geben kann um mich auf den richtigen Weg zu bringen.

                Und was hat Dir von den ausführlichen bisherigen Hinweisen weitergeholfen? Wirklich nichts?

                Es muss nur ne kommunikation mit dem link und dem formular geben, das ist ja eigtl alles.

                Jaja, die bisherigen Hilfestellungen hast Du mit "Antwort klingt gut, aber kompliziert!" abgetan und dann angefangen, irgend etwas von einem Zettel zu faseln. Offensichtlich bist Du hier falsch, da Du nicht verstehen willst, sondern eine fertige Lösung suchst. Genau das wird hier aber nicht gern gesehen!

                Liebe Grüße,

                Felix Riesterer.

                --
                ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. Lieber rubi,

    für solche Dinge benutze ich gerne eine einmalige ID, welche mir in PHP uniqid() liefert.

    In einer Liste (array) steht dann, welcher Kunde welche ID hat, sodass das Formular je nach ID passend aufgebaut werden kann.

    Stellen wir uns vor der Link sieht in etwa so aus:

    http://example.org/questionaire/?id=5262a47ecf2e6

    Wenn der Kunde nun den Link anklickt, dann kann Dein PHP-Script diese ID unter $_GET['id'] benutzen. Stellen wir uns nun vor, Du hättest ein Array dieser Struktur:

    $customers = array(  
        '5262a47ecf2e6' => array(  
            'name'  => 'Herr Obelix Hinkelstein',  
            'mail'  => 'obelix@example.org',  
            'order' => array(  
                'item1' => 0,  
                'item2' => 0,  
                'item3' => 0  
            )  
        ),  
        '5262a522f3d1f' => array(  
            'name'  => 'Herr Miraculix Mondsichel',  
            'mail'  => 'miraculix@example.org',  
            'order' => array(  
                'item1' => 0,  
                'item2' => 0,  
                'item3' => 0  
            )  
        )  
    );
    

    Nun kannst Du schnell feststellen, ob ein Kunde mit der entsprechenden ID existiert:

    $html = '';  
      
    if (array_key_exists($_GET['id'], $customers)) {  
      
        // diesen Kunden haben wir -> Formular erstellen  
        $html = '<form>...</form>';  
      
    } else {  
      
        // diesen Kunden haben wir nicht -> Danke sagen  
        $html = '<p>Vielen Dank für Ihren Besuch.</p>';  
    }
    

    Im Formular müsste dann die ID als <http://de.selfhtml.org/html/formulare/versteckte.htm#definieren@title=verstecktes Element> wieder eingetragen werden, damit bei der Auswertung dieses Formulars die Angaben dem richtigen Kunden zugeordnet werden.

    Wenn es um das Versenden einer Rundmail an alle Kunden geht, dann wirst Du Dir die mail()-Funktion genauer anschauen müssen. Im Mailtext kannst Du dann den Link mit der ID eintragen. Sicherlich wirst Du eine Schleife nutzen, um die Mails zu versenden:

    $customers = array(... siehe oben ...);  
      
    foreach ($customers as $id => $c) {  
        $mailtext = sprintf(  
            'Sehr geehrter %1$s,'."\r\n\r\n"  
            . 'bitte nutzen Sie folgenden Link, um Ihre Bestellung zu tätigen:'."\r\n\r\n"  
            . 'http://example.org/questionaire/?id=%2$s'."\r\n\r\n"  
            . 'Vielen Dank,'."\r\n\r\n"  
            . 'rubi der SELFHTML-Frager'."\r\n\r\n",  
            $c['name'],  
            $id  
        );  
      
        mail(  
            $c['mail'],  
            'Bestellung bei rubi',  
            $mailtext  
        );  
    }
    

    In meinem Beispiel werden Mails mit sehr seltsamen Umlauten versendet. Du solltest nachschauen, wie Du Mails mit korrekten Umlauten verschicken kannst.

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Deine Antwort klingt gut, aber kompliziert! Also ich finde das geht auch ohne Datenbank. Ich könnte mir ja theoretisch aufn Zettel schreiben XYZ ist Herr Bachmann. So dann bekommt Herr Bachmann eine eMail mit einem Link nur für ihn. Füllt er das Formular aus erhalte ich dann den Hinweis das es von XYZ ausgefüllt wurde und sehe auf meiner Liste aha XYZ ist Herr Bachmann. Dann sind dem seine Daten auch nicht im Netz.

      so..? :D

      1. Deine Antwort klingt gut, aber kompliziert! Also ich finde das geht auch ohne Datenbank. Ich könnte mir ja theoretisch aufn Zettel schreiben XYZ ist Herr Bachmann. So dann bekommt Herr Bachmann eine eMail mit einem Link nur für ihn. Füllt er das Formular aus erhalte ich dann den Hinweis das es von XYZ ausgefüllt wurde und sehe auf meiner Liste aha XYZ ist Herr Bachmann. Dann sind dem seine Daten auch nicht im Netz.

        Ob du die Liste per Hand führst oder das automatisierst spielt keine Rolle - es ist nur wichtig, dass du damit keine Daten preisgibst, also z.B. keine fortlaufenden Nummern oder ähnliches verwendest.