Formular an e-mail senden ?

02/29/2012 21:41 xISpooNIx#1
Nabend Com,

Ich habe mit HTML ein Formular erstellt ( ein Anmeldeformular ) und möchte dieß nun an meine e-mail senden sobald jemand den Submit Button drückt. Wenn ich es mit
HTML Code:
<form action="mailto:email@web.adresse" method="" target="">
machen würde, bräuchte ich einen e-mail Clienten auf meinem Webspace den mein Webspace aber noch nicht besitzt das es momentan noch ein kostenloser ist. Nun brauche ich eine übergangslösung bis ich mir einen mit e-mail Client angeschafft habe. Habt ihr da eine Idee ?

MfG
02/29/2012 21:43 galaxyo#2
Php ist das Zauberwort.

[Only registered and activated users can see links. Click Here To Register...]
02/29/2012 21:43 NotEnoughForYou#3
wie wäre es mit php und nem mailserver ? Die sind standaräßig auf nem webserver installiert... dann kannste in php mit mail() arbeiten
02/29/2012 21:46 galaxyo#4
Haha ich war schneller!!! Nub :D :D :D
02/29/2012 21:48 NotEnoughForYou#5
dam :-D btw. der emailclient ist cliensite. dh dein webserver hat wenig mit zu tun
03/01/2012 14:15 xISpooNIx#6
danke schonmal aber bekomme das grade irgendwie nicht hin..

kann mir vllt einer in das folgende Beispiel das Script einbauen? (verkürze das Beispiel natürlich auf 2 Eingabefelder)


HTML Code:
<html>
<head>
<title></title>
<meta name="author" content="NexT">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">



<form action="" method="" target="">

<pre>
Name : <input type="Text" name="na" value="" size="25" maxlength="15"><br>
Vorname  : <input type="Text" name="vn" value="" size="25" maxlength="15">    <br>
 </pre> <br>

<input type="reset" value="Löschen">         <br>
<input type="Submit" name="s1" value="Abschicken"> <br>


</form>


</body>
</html>
03/01/2012 14:43 PseudoPsycho#7
Die HTML-Variante (Clientseitig)
HTML Code:
<!Doctype html><html>
<head>
<title></title>
<meta name="author" content="NexT">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">



<form action="mailto:email@web.adresse" method="post" enctype="text/plain">

<pre>
Name : <input type="Text" name="na" value="" size="25" maxlength="15"><br>
Vorname  : <input type="Text" name="vn" value="" size="25" maxlength="15">    <br>
 </pre> <br>

<input type="reset" value="Löschen">         <br>
<input type="Submit" name="s1" value="Abschicken"> <br>


</form>


</body>
</html>
Oder die PHP-Variante (serverseitig, mit aktivierter mail()-Funktion)
PHP Code:
<?php
if(!empty($_GET['op']) && $_GET['op']==='send' && !empty($_POST['na']) && !empty($_POST['vn'])){
$empf='email@web.adresse';
$betreff='Mail mit PHP';
$nachricht='Vorname: '.$_POST['vn']."\r\n".'Nachname: '.$_POST['na'];
$header='X-Mailer: PHP/' phpversion();
mail($empf$betreff$nachricht$header) OR die('Nachricht konnte nicht gesendet werden');
echo 
'Nachricht erfolgreich versendet'; }
else { 
?>
<!Doctype html><html>
<head>
<title></title>
<meta name="author" content="NexT">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">



<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>?op=send" method="post">

<pre>
Name : <input type="Text" name="na" value="" size="25" maxlength="15"><br>
Vorname  : <input type="Text" name="vn" value="" size="25" maxlength="15">    <br>
 </pre> <br>

<input type="reset" value="Löschen">         <br>
<input type="Submit" name="s1" value="Abschicken"> <br>


</form>


</body>
</html>
<?php }
03/01/2012 14:46 .Marcel'#8
Quote:
Originally Posted by xISpooNIx View Post
danke schonmal aber bekomme das grade irgendwie nicht hin..

kann mir vllt einer in das folgende Beispiel das Script einbauen? (verkürze das Beispiel natürlich auf 2 Eingabefelder)


HTML Code:
<html>
<head>
<title></title>
<meta name="author" content="NexT">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">



<form action="" method="" target="">

<pre>
Name : <input type="Text" name="na" value="" size="25" maxlength="15"><br>
Vorname  : <input type="Text" name="vn" value="" size="25" maxlength="15">    <br>
 </pre> <br>

<input type="reset" value="Löschen">         <br>
<input type="Submit" name="s1" value="Abschicken"> <br>


</form>


</body>
</html>
Schau dir einfach die mail() Function im php manual an..selbst lernen + verstehen ist alles.
Wenn ich dir das script fertig coden würde, hättest du nichts dabei gelernt.
03/01/2012 14:59 xISpooNIx#9
Quote:
Originally Posted by .Marcel' View Post
Schau dir einfach die mail() Function im php manual an..selbst lernen + verstehen ist alles.
Wenn ich dir das script fertig coden würde, hättest du nichts dabei gelernt.
schon.. weil ich total am verzweifeln bin. Dann würde ich sehen, wie es richtig funktionieren würde. Mitlerweile bin ich soweit, dass ich schon vom senden des Formulares auf " in einer Textdatei auf dem Server " speichern gesprungen bin.

Quote:
Originally Posted by PseudoPsycho View Post
Oder die PHP-Variante (serverseitig, mit aktivierter mail()-Funktion)
Wie kann die die Funktion aktivieren?
03/01/2012 15:15 .Marcel'#10
Quote:
Originally Posted by xISpooNIx View Post
schon.. weil ich total am verzweifeln bin. Dann würde ich sehen, wie es richtig funktionieren würde. Mitlerweile bin ich soweit, dass ich schon vom senden des Formulares auf " in einer Textdatei auf dem Server " speichern gesprungen bin.



Wie kann die die Funktion aktivieren?
Sollte standartmäßig in der php.ini aktiviert sein, frag mal beim Hoster nach, bei Xampp ist es standartmäßig aktiviert.
03/01/2012 20:04 xISpooNIx#11
ich lasse das einfach in einer .txt datei speichern. jetzt eine neue frage:

wenn ich das formular ausfülle und auf absenden drücke, klappt alles
aber das formular wieder ausgefüllt wird, überschreibt es den alten text. wie kann ich es einstellen, dass einfach 2 leerzeilen erstellt werden und dann darunter das neue erscheint?

hier der quelltext:

Code:
<?php

if (isset($_POST["name"])) {
 $text = "name = " . $_POST["name"] . "\n" . 
  "gamertag = " . $_POST["gamertag"] . "\n" . 
  "email = " . $_POST["email"] . "\n" .
  "skype = " . $_POST["skype"] . "\n" .
  "facebook = " . $_POST["facebook"] . "\n" .
  "alter = " . $_POST["alter"] . "\n" . 
  "stadt = " . $_POST["stadt"] . "\n" . 
  "spiele = " . $_POST["spiele"] . "\n";


 $file = "angaben.txt";
 $fp = fOpen($file,"w+");
 fPuts($fp, $text);
 fClose ($fp);
 echo "<h4>Die Angaben wurden gespeichert!</h4>";
}


foreach (file("angaben.txt") as $zeile) {
 if (strpos($zeile, " = ")) {
  list($variable, $value) = explode(" = ", $zeile);
  $$variable = chop($value);
 }
}

echo '

<form action="' . $_SERVER["SCRIPT_NAME"] . '" method="post">
 <p> Name: <input type="text" name="name" value="' . $name . '"> </p>
 <p> Gamertag: <input type="text" name="alter" value="' . $gamertag . '"> </p>
 <p> e-Mail: <input type="text" name="email" value="' . $email . '"> </p>
 <p> Skype: <input type="text" name="skype" value="' . $skype . '"> </p>
  <p> Facebook: <input type="text" name="facebook" value="' . $facebook . '"> </p>
   <p> Alter: <input type="text" name="alter" value="' . $alter . '"> </p>
    <p> Stadt: <input type="text" name="stadt" value="' . $stadt . '"> </p>
	 <p> Spiele: <input type="text" name="spiele" value="' . $spiele . '"> </p> 
 <p> <input type="submit" value="Bewerbung absenden!"> </p> 
</form>' ;

?>
03/01/2012 20:39 galaxyo#12
1. Text Datei auslesen
2. Mit der neuen Nachricht verketten durch den Verkettungsoperator . (Punkt).
3. Abspeichern.

Willst du das ganze per PHP auslesen solltest du die Strings am Ende ebenfalls z.B. mit einem @ versehen um an dieser Stelle die Kette mit der Funktion explode() beim @-Zeichen zu sprengen. Das ganze wird dann in einem Array abgelegt und kann mit einer Schleife ausgegeben werden.

Folgendes wäre eine ganz schlichte, unsichere, ungetestete Lösung mit PHP.

Das Formular:

Name der Datei: index.php. Befindet sich im gleich Ordner wie die senden.php.
HTML Code:
<form action="index.php" method="post">

	<input type="text" name="Vorname" />
	<input type="text" name="Nachricht"  />
	<input type="submit" value="Absenden" name="submit" />

</form>

<?php

	include("senden.php");

?>
Der PHP-Teil:

Name der Datei: senden.php. Befindet sich im gleich Ordner wie die Index.php.

PHP Code:

if(isset($_POST["submit"])) { //Formular abgesendet?
    
        
if(empty($_POST["name"]) || empty($_POST["nachricht"])) { // Felder 0, leer oder nicht gesetzt?
        
            
echo "Sie müssen alle Felder ausfüllen.";
        
        }else{
            
            
$name $_POST["vorname"];
            
$nachricht $_POST["nachricht"];
            
$to "[Only registered and activated users can see links. Click Here To Register...]";
            
            
$nachricht "Von: " $name " Nachricht: " $nachricht;
            
            
mail($to"Nachricht über das Kontaktformular"$nachricht);
            
            echo 
"Mail wurde versendet.";            
        
        }
        
    } 
03/02/2012 19:28 xISpooNIx#13
erstmal danke, habe aber noch fragen. Habe dich mal in Skype geaddet.
03/03/2012 10:33 galaxyo#14
Ok. War gestern den ganzen Tag on Tour ;) Bin heute aber Zuhause.
03/04/2012 12:46 xISpooNIx#15
Ok. Bin heute & morgen den ganzen Tag erreichbar.