E-Mail in Formular

Beim CGI-Formularversand wird die E-Mail-Adresse des Absenders nicht automatisch mit übertragen. Mancher Besucher vergisst aber, seine Adresse in das dafür vorgesehene Feld einzutragen (oder meint vielleicht, dies sei nicht notwendig). Wie kann ich die E-Mail-Adresse doch in das Formular bekommen? Aktuell habe ich folgende Felder als HIDDEN definiert:

  • type=„hidden“ name=„print_config“ value=„email“>
  • type=„hidden“ name=„realname“ value="www.marhold.de>

Vielen Dank für Tipps
Knut

Hallo Knut,

Beim CGI-Formularversand wird die E-Mail-Adresse des Absenders
nicht automatisch mit übertragen. Mancher Besucher vergisst
aber, seine Adresse in das dafür vorgesehene Feld einzutragen
(oder meint vielleicht, dies sei nicht notwendig). Wie kann
ich die E-Mail-Adresse doch in das Formular bekommen? Aktuell
habe ich folgende Felder als HIDDEN definiert:

  • type=„hidden“ name=„print_config“ value=„email“>
  • type=„hidden“ name=„realname“ value="www.marhold.de>

Nun, wenn ich Dich richtig verstehe, hast bzw.
möchtest Du ein Formular mit einem Feld in das der Besucher
seine Email-Adresse eintragen soll. Die obigen hidden-Felder
werden Dir diesbezüglich aber nicht weiterhelfen.

Ein Formular mit einem Eingabefeld für die Email sollte
ungefähr so aussehen:

Wenn der User das Eingabefeld (hier mit dem internen Namen
„user_email“) ausfüllt und dann das Formular abschickt,
kannst Du mit einer Programmiersprache Deiner Wahl
den zum Feld „user_email“ gehörenden Wert abfragen. Dies
ist dann idealerweise eine gültige Emailadresse des Benutzers.

Wenn der Benutzer nichts in das Feld eingibt und im
Formular trotzdem den Absende-Button drückt, kannst Du
z.B. mit JavaScript die Absendeaktion abbrechen und den
Schlingel darauf hinweisen, dass er gefälligst seine
Email-Adresse preisgeben soll.

Eine andere Möglichkeit, die Email-Adresse des Benutzers
herauszufinden ist das Abfragen der CGI-Variable HTTP_FROM.
Diese Feld wird manchmal vom Browser des
Benutzers mit übertragen in den meisten Fällen aber nicht.

In Perl kannst Du diese Variable mit $ENV{‚HTTP_FROM‘}
in Deinem CGI-Skript anschauen. Wenn nichts drin steht,
wurde sie auch nicht mitgesendet.

Es gibt ansonsten keine „Wunderwaffen“ die Email-Adresse des
Benutzers zu erfragen und das ist bezüglich der Privatsphäre
und des Datenschutzes auch gut so.

Gruss,
-Andreas.

Hi Andreas,

danke für deine Antwort. Grundsätzlich hast du natürlich recht - wer seine Mail-Adresse nicht angeben möchte, den sollte man diesbezüglich auch nicht ausspionieren. Allerdings „vergessen“ manche Besucher die Angabe, weil sie von „normalen“ E-Mails halt kennen, dass die Adresse sowieso mit übertragen wird.

Aber du hast recht - ich werde wohl mal nach einem kleinen Java-Script Ausschau halten, um auf das Fehlen der Adresse aufmerksam zu machen.

cu
Knut

Aber du hast recht - ich werde wohl mal nach einem kleinen
Java-Script Ausschau halten, um auf das Fehlen der Adresse
aufmerksam zu machen.

Hallo Knut!

Du kannst das folgende Skript verwenden, um Eingabefelder zu überprüfen:

\<!--
 function chkFormular() {
 if(document.formularname.email.value == "") {
 alert("Bitte geben Sie Ihre eMail-Adresse an!");
 document.formularname.email.focus();
 return false;
 }
 else {
 return true;
 }
 }
//--\>

CU
Markus

Klasse!!! Vielen Dank!!!

Knut

Aber du hast recht - ich werde wohl mal nach einem kleinen
Java-Script Ausschau halten, um auf das Fehlen der Adresse
aufmerksam zu machen.

Hallo Knut!

Du kannst das folgende Skript verwenden, um Eingabefelder zu
überprüfen:

Hallo Markus,

ich habe das JS getestet, bekomme aber den Fehler ‚document.formularname.email ist Null oder kein Objekt‘ (MS-IE5)

anschließend wird trotz fehlender email versendet!?

cu
Knut

ich habe das JS getestet, bekomme aber den Fehler
‚document.formularname.email ist Null oder kein Objekt‘
(MS-IE5)

anschließend wird trotz fehlender email versendet!?

Hallo Knut!

Hast Du überprüft, ob Dein Formular auch „formularname“ heißt und das Eingabefeld der eMail-Adresse „email“?
Befinden sich das Script und das Formular in demselben Dokument?

Falls dies nicht weiterhilft, setze die betreffende Seite doch einmal ins Web, damit ich sie mir anschauen kann.

CU
Markus

PS: Ich erhalte nur eine Benachrichtigung, daß eine Antwort geschrieben wurde, wenn Du direkt auf meinen Artikel antwortetst.