Formular in HTML
-
Hi,
ich möchte gerne ein Anmelde Formular in HTML programmieren, es sollte die Felder Vorname, Name, Adresse, Ort, Telefon, Telefax, E-Mail, Geburstag erhalten. Und natürlcih ein Button zum senden der Informationen. Die Informationen sollen dann an meine E-Mail Adresse geschickt werden. Ist das möglcih und wenn ja wie? Danke!mfg
Sebastian
-
zuerst musst du ein formular einleiten:
<form action="zieldatei.php" [method=post]>[formularinhalt]</form>
wenn du kein method nimmst, ist die übergabe methode an action (zieldatei) GET.
du kannst natürlich auch method=get nehmen.
wenn du es nimmst und den parameter post eingibst, ist die methode POST. post ist im hintergrund, get siehst du in der addresszeile als datei.php?bla=bla&bla2=blabla
die Eingabefelder kriegst du mit<input name="einname" type="text" value="">
ins formular, auslesen kannst du das dann mit PHP:
//bei method=get oder keiner methoden-angabe //wenn register_globals aus $test=$HTTP_GET_VARS['einname']; //wenn globals an $test=$_GET['einname']; //wenn method=post und register_globals=off $test=$HTTP_POST_VARS['einname']; //wenn globals an $test=$_POST['einname']
nehmen wir mal an, du hast bei dem textfeld mit namen einname "Hallo Welt" eingegeben und die übergabemethode ist GET. dann sieht das skript so aus:
// send.html <html> <head> <title>ein Test</title> </head> <body> <form action=get.php method="get"> <input type="text" name="einname"> <input type="submit" value="Absenden"> </form> </body> </html> //get.php <html> <head> <title>Ausgabe von send.html</title> </head> <body> <?php //addresszeile: get.php?einname=Hallo%20Welt $get=$HTTP_GET_VARS['einname']; echo $get; //ausgabe: "Hallo Welt" ?> </body> </html>
[edit] aso der rest:
also ne mail kannst du mit
mail(empfänger,betreff,text,absender);
absenden. dazu muss aber das postscript oder wie das heisst auf dem server installiert sein.
beispiel:mail("eva@mustermann.de","Hallo","Blabla","From: hallo@gruesse.com");
hoffe, ich konnte helfen
-
postscript isn bisschen was anderes das was du meinst dürfte Sendmail sein
-
Blackhawk schrieb:
//bei method=get oder keiner methoden-angabe //wenn register_globals aus $test=$HTTP_GET_VARS['einname']; //wenn globals an $test=$_GET['einname']; //wenn method=post und register_globals=off $test=$HTTP_POST_VARS['einname']; //wenn globals an $test=$_POST['einname']
$HTTP_GET_VARS oder $_GET hat nichts mit der Einstellung von register_globals zu tun, sondern ab PHP 4.1.0. gibt es eben erst $_GET & Co. - für beides muss aber register_globals nicht auf on stehen (dürfte theoretisch aber natürlich)
-
so lang die variable nicht doppelt vergeben wird ist es doch auch durch den namen der in der Adresszeile vergben wurde auf den Wert zuzugreifen, oder?
// Wert aus Adresszeile url.de/nav.php?topic=bla if(isset($topic)) echo $topic;
in dem Fall wäre es doch egal ob $_GET oder $HTTP_GET_VARS verwendet wird.
-
Das ist jetzt die Möglichkeit, die nur funktioniert, wenn register_globals auf on steht - daher die schlechteste Variante (da am fehlerträchtigsten)
-
Naja ich denke doch mal das das ganze sowieso auf dem Webserver eines Providers passieren wird von daher glaub ich kaum das die "register_globals" auf off stehen haben.
-
sToRkka schrieb:
Naja ich denke doch mal das das ganze sowieso auf dem Webserver eines Providers passieren wird von daher glaub ich kaum das die "register_globals" auf off stehen haben.
Eben - und genau deswegen sollte sevobal ja das $_GET-Array verwenden
-
sToRkka schrieb:
Naja ich denke doch mal das das ganze sowieso auf dem Webserver eines Providers passieren wird von daher glaub ich kaum das die "register_globals" auf off stehen haben.
Wenn du selber die php.ini nicht verändern darfst, dann sollte man paranoid programmieren, also immer $_GET und $_POST benutzen, immer Variaben mit isset testen, bevor man sie benutzt, das gleiche gilt für $_SESSION und $_COOKIES Arrays, weil das überall egal mit welcher Einstellungen läuft. Außerdem weißt du nie, wann der sys admin die Einstellungen ändert und register_globals auf on zu setzen, macht kaum ein Server mehr.