# Formularproblem



## mhribernik (2. März 2005)

Hi.

Ich komme gleich zur Sache:

In HTML kann man ja, nach Absenden eines Formulars, auf eine belibige Seite weiterleiten.
Aber kann man auch eine e-mail, mit einem Link, an die im Formular angegebene e-mail Adresse senden?

Danke im voraus.


----------



## Gumbo (2. März 2005)

Wenn man einen mailto-URL beim action-Attribut angibt, dann wird dies an einen eventuell installiertes Email-Programm geschickt. Möchte man dies umgehen, wird eine serverseitige Lösung nötig. Mit PHP ist dies beispielsweise mögich.


----------



## mhribernik (2. März 2005)

Danke für die Antwort.

@PHP: Ich bin für alles offen.


----------



## redlama (3. März 2005)

Um mit PHP Mails verschicken zu können, brauchst Du die Funktion mail().

redlama


----------



## mhribernik (3. März 2005)

Danke für die Antwort.

Könntest du mir erklären, wie ich mithilfe der Mail() Funktion eine e-mail an die im Formular eingetippte e-adresse schicken kann?


----------



## redlama (3. März 2005)

Klar!
Sagen wir mal, das Feld, in das die E-Mail-Adresse eingegeben wurde, heißt "EMail" und das Form hat als Methode "post":
	
	
	



```
<form method="post" action="xyz.php">
```
Dann könntest Du z.B. folgendes machen:
	
	
	



```
mail($_POST["EMail"], Betreff, Inhalt);
```
Betreff und Inhalt kannst Du natürlich beliebig ersetzen, ...

redlama


----------



## Wiegi (3. März 2005)

Oder du suchst dir bei Hotscripts (http://www.hotscripts.com/PHP/Scripts_and_Programs/index.html) einen fertigen Formmailer aus.


----------



## mhribernik (3. März 2005)

Ich kenne mich mit PHP nicht aus. Muss man den Code


```
mail($_POST["EMail"], Betreff, Inhalt);
```

einfach ins <form> Objekt tippen? Oder ist das so wie Javascript?


----------



## redlama (4. März 2005)

Nein, ganz anders.
Du hast eine HTML Seite mit einem Form. In diesem Form wird in action definiert, an welcher Stelle Du die Daten auswerten willst. In dem Beispiel von mir, wäre das die "xyz.php".
Du müsstest in dem Fall folgenden Code in eine Datei namens "xyz.php" schrieben:
	
	
	



```
<?php
mail($_POST["EMail"], Betreff, Inhalt);
?>
```

redlama


----------



## mhribernik (4. März 2005)

Also müsste das so lauten?

<form action="xyz.php" method="POST"> 

*Vorname: <br />
  <input type="text" size="8" name="1" /></p>

Nachname: <br /> <input type="text" size="8" name="2" /></p>

E-mail Adresse: <br /> <input type="text" size="18" name="3" /></p>

Geschlecht: </p>
<input type="radio" name="Geschlecht"
	   value="m" checked />m&auml;nnlich <br />

<input type="radio" name="Geschlecht"
	   value="w" />weiblich </p>

Alter: <br /> <input type="text" size="3" name="4" /> </p>

Kommentar zur Homepage: </p>
<br /> <textarea name="Kommentar"
						 		  rows="8"
						 		  cols="35"
						 		  wrap="virtual"
						 		  > Kommentar zur Homepage
</textarea></p>

<?php 
mail($_POST["EMail"], Betreff, Inhalt); 
?>  

<input type="submit" value="Formular versenden" />


----------



## redlama (4. März 2005)

Der PHP Code:
	
	
	



```
<?php 
mail($_POST["EMail"], Betreff, Inhalt); 
?>
```
gehört nicht in Deine HTML Seite. Der Code gehört in die xyz.php!
Die Daten aus dem Formular werden an die xyz.php geleitet (übrigens, die kannst Du ruhig umbenennen ^^). Und in dieser xyz.php wird dann die Funktion mail() dafür sorgen, dass die Mail versendet wird.

redlama


----------



## mhribernik (4. März 2005)

Wie muss denn ein PHP Text aussehen?

In etwa so?

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php 
mail($_POST["EMail"], Ein beliebiger Betreff, Der Link); 
?> 
</body>
</html>


----------



## redlama (4. März 2005)

Könntest Du machen, aber der reine PHP Code reicht auch aus!
Es wird ja schließlich nichts ausgegeben sondern nur versendet, ...

redlama


----------



## mhribernik (4. März 2005)

Eine Frage hab ich noch:

Wie kann ich in PHP einen Link erstellen

<?php 
mail($_POST["EMail"], Betreff, Danke für Ieine Registrierung. Mit einem Klick auf folgenden Link werden Sie weitergeleitet  Link); 
?>


----------



## redlama (4. März 2005)

Ich würde es so machen:
	
	
	



```
<?php 
mail($_POST["EMail"], "Betreff", "Danke für Deine Registrierung. Mit einem Klick auf folgenden Link werden Sie weitergeleitet:\n
http://www.redlama.org"); 
?>
```
Das sollte die URL normalerweise als Link in der Mail zeigen!

redlama


----------



## SilentWarrior (4. März 2005)

Nichts gegen deine Hilfe, redlama, aber ich glaube, es schadet mehr, als es hilft, wenn du ihm einfach Code-Snippets hinwirfst, die er ohne jegliche Vorkenntnisse verstehen und einsetzen soll.

mhribernik: Wenn du ein PHP-Script selbst schreiben willst (und nicht ein bei HotScripts.com suchen willst), dann empfehle ich dir, dich gründlicher mit der Materie auseinanderzusetzen. Insbesondere, was PHP überhaupt ist, wie es arbeitet und ob es auf deinem Server überhaupt verfügbar ist.

-> http://schattenbaum.net/php/anfang.php
-> http://schattenbaum.net/php/mail.php


----------

