Felix Riesterer: Ein personenorientiertes Formular erstellen!

Beitrag lesen

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:)