Hallo,
<form method="get" action="mail.php">
Vorname:<br>
<input type="text" name="vorname"><br>
[...]
<input type="submit" name="send" value="senden">
</form>
da kann man noch nicht viel falsch machen ...
> Da ich das ganze mehr oder weniger aus dem netz abgeschaut habe, hatte ich zunächst als form method="post" statt "get". Mein physiklehrer riet mir jedoch zu "get".
Das war kein guter Rat. Die Methode GET verwendet man üblicherweise, um Informationen abzurufen, ohne dass sich am Datenbestens dadurch etwas verändert und ohne dass irgendeine Aktion ausgelöst wird. Suchabfragen sind ein typisches Beispiel. Bei GET werden die Formulardaten als URL-Parameter übertragen. Die Folge ist, dass jedesmal, wenn ich nach dem Formularversand auf "Reload" klicke, die Formularaktion (hier: Der Versand einer Mailnachricht) wiederholt wird.
Sollen tatsächlich nachhaltige Aktionen durchgeführt werden, empfiehlt sich POST. Dabei werden die Formulardaten im Request-Body (für den Normaluser unsichtbar) übertragen. Sollte jemand nach dem Formularversand nochmal auf "Reload" latschen, warnen die meisten Browser explizit, dass damit die Formulardaten erneut gesendet werden.
> ~~~php
<?php
> $vorname = $_GET["vorname"];
> $nachname = $_GET["nachname"];
> $email = $_GET["email"];
> $alter = $_GET["alter"];
> $wohnort = $_GET["wohnort"];
> $fbsince = $_GET["fbsince"];
> $sponsoren = $_GET["sponsoren"];
Wieder die Frage: Wozu die Umkopieraktion?
$mailto = "wikingercup[at]gmx.de";
$subject = "$betreff";
Wozu hier eine einsame Stringvariable nochmals in einen String einbetten?
> ~~~php
$message = "Anmeldung von $vorname $nachname $email;
>
> mail();
> ?>
Schon das Syntax-Highlighting sollte dich darauf aufmerksam machen, dass hier etwas nicht stimmt. Nein, ich meine nicht, dass die die mail-Funktion völlig ohne Parameter aufrufst.
Ich habe zunächst [at] anstatt von @ gesetzt, aus dem grund der mir ja schon von euch erklärt wurde, damit ich die Fehlermeldungen sehe.
Dann hast du uns komplett missverstanden. Es ging nicht um das '@' als Trennzeichen in der Mailadresse - da muss es hin! Es ging darum, einer PHP-Anweisung ein '@' voranzustellen, um damit die Ausgabe von Fehlermeldungen zu unterdrücken. Das ist meistens eine schlechte Idee.
Parse error: syntax error, unexpected $end in /data/multiserv/users/338209/projects/542569/www/mail.php on line 15
jedoch habe ich bei line 15 gar nichts stehen. Der mail.php code ist nur 14 Zeilen lang.
Eben, und in der Zeile 15 stellt der Parser fest, dass das Script schon zu Ende ist, obwohl das syntaktisch gar nicht sein kann!
Wie trenne ich in der mail.php bei der definition von $message die einzelnen variablen voneinander? Ist das grundlegend überhaupt richtig so?
Ich verstehe den Sinn der Frage nicht. Worauf willst du hinaus?
Wie genau bzw was muss ich unter mail(____) definieren und ist das ebenfalls grundlegend richtig aufgeschrieben so?
Du sollst da gar nichts definieren. Aber die Funktion mail() erwartet mindestens drei Parameter, die du hier weggelassen hast.
So long,
Martin
Der Gast geht solange zum Tresen, bis er bricht.