Formular per Email

Mario097

Mitglied
Hallo
versuche schon lange ein php script zu finden das ich mein Formular per E-Mail versenden könnte
bin aber nicht fünig geworden und brauche jz ein script:

Name
Email
Text

per email

das was per email kommen soll, muss natürlich der User eingeben.

kenn mich 0 mit Php aus d.h ich kann mit dem was in dem code steht nicht viel anfangen

wäre nett wenn jmd einen code schreiben könnte der gut erklärt ist und nicht zu kompliziert ist.

LG Mario :-)
 
Also ich habe grad nix zu tun :D also mache ich dir das mal.. aber ich bin mir nicht sicher obs alles klappt... habe kein bokc das jetzt zu testen also..

zuerst machen wir mal den HTML teil...
HTML:
// Dein Code
<form action="send_email.php" method="post">
  <input type="text" name="vorname" value="Dein Name">
  <br/>
  <input type="text" name="nachname" value="Dein Nachname">
  <br/>
  <input type="text" name="betreff" value="Betreff">
  <br/>
  <textarea name="nachricht">
  Deine Nachricht
  </textarea>
<br/>
  <input type="email" name="email" value="Email">
  <br/>
  <input type="submit" value="Abschicken">
</form>
// Dein Code
So und jetzt noch send_email.php
PHP:
<?php
 $vorname = $_POST['vorname'];
 $nachname = $_POST['nachname'];
 $email = $_POST['email'];
 $betreff = $_POST['betreff'];
 $nachricht = $_POST['nachricht'];

  if(empty($vorname) or empty($nachname) or empty($email) or empty($nachricht) or empty($betreff)) {

   echo "Bitte alle Felder ausfüllen!";
  } else {
     mail($email, $betreff, $nachricht, "From: $vorname $nachname");
?>

So hier gibt aber noch mal nen tutorial dazu :D
http://www.schattenbaum.net/php/mail.php
 
  • Gefällt mir
Reaktionen: Joe
Bobo2040 das ist sehr lobenswert wenn auch verständlicherweise selten.

Mario097 Da hast du echt Glück. In den wenigsten Fällen wird im gesamten Internet irgendwer mal einfach so Scripte dir schreiben. Würde dir daher echt empfehlen nen paar Grundlagen zu lernen und mit der Zeit baut man es eben aus.
PS: wenn dir BoBo2040 geholfen hat gib ihm doch ein Danke oder besser drücke auf den Stern und bewerte ihn ;) Auch höflich: wenn das Thema durch ist einfach auf den Haken klicken. Machts für alle übersichtlicher.

mfg Joe.
 
Auch wenn dasn Ganze freundlich gemeint ist, solltest du das Skript IN KEINEM FALL verwenden!

1.) Wird die Mail an den User selbst geschickt, nicht an dich. (1. Paramter) Damit ist das Formular als Spamschleuder zu benutzen.
2.) Header Injection. (4.Paramter) Es wird nichts escaped. Ein Hacker könnte noch beliebig viele (!) weitere Header anfügen
3.) Mails versendet man nichtmehr mit mail(), aber für ein einfaches Formular find ich das noch in Ordnung. Für die Zukunft würde ich aber etwa den swiftmailer vorschlagen.
 
So habe jetzt mal, da sich nen paar wegen der Sicherheit etc. beschwert haben nen
neuen Code geschrieben :D
email.html
HTML:
<html>
	<head>
		<title>
			Email Versenden
		</title>
		<meta charset="UTF-8">
	</head>
	<body>
		<form action="send_email.php" method="post">
			<table>
				<tr>
					<td>
						Absender: 
					</td>
					<td>
						 <input type="email" name="from" value="Deine Email :">
					</td>
				</tr>
				<tr>
					<td>
						Empfänger: 
					</td>
					<td>
						 <input type="email" name="to" value="Deine Email :">
					</td>
				</tr>
				<tr>
					<td>
						Dein Name: 
					</td>
					<td>
						 <input type="email" name="name" value="Deine Email :">
					</td>
				</tr>
			</table>
			Deine Nachricht:<br/>
			<textarea name="nachricht" cols="28" rows="8">
Deine Nachricht
			</textarea>
		</form>
	</body>
</html>
So und jetzt noch send_email.php
PHP:
<?php
	$from = $_POST['from'];
	$to = $_POST['to'];
	$name = $_POST['name'];
	$nachricht = $_POST['nachricht'];
	$betreff = 'PHP.de '; // Den Betreff solltest du festlegen, wenn nicht
	// musst du einfach bei email.html das einfügen
	// <tr><td>Betreff:</td><td><input type="text" name="betreff" value="Betreff">
	// Danach musst du in send_email.php dei $betreff einfach das hinmachen
	// $betreff = $_POST['betreff'];
	
	// SQL Injection verhindern
	// Ich weiß jetzt nicht ob das an Sicherheit reicht ist aber Standart..
	$from = mysql_real_escape_string($from);
	$to = mysql_real_escape_string($to);
	$name = mysql_real_escape_string($name);
	$nachricht = mysql_real_escape_string($nachricht);
	// Daten abschicken
	mail($to, $betreff, $nachricht, "Von:".$name."Email:".$from);
	// Zurück zu email.html
	header("location:email.html"); 
	exit(); // Damit es keine Probleme gibt.. :D
?>

So das wars auch eig. schon habs aber nicht getestet :D
 
Ist leider keinen Zentimeter besser geworden.

PHP:
$to = $_POST['to'];
Warum hier die Variable? Da müsste nen string mit der Mailadresse des TE rein.

PHP:
$from = mysql_real_escape_string($from);
    $to = mysql_real_escape_string($to);
    $name = mysql_real_escape_string($name);
    $nachricht = mysql_real_escape_string($nachricht);
Header-injection != SQL-injection
Außerdem wird dir das Warnings werfen, sofern du keinen datenbankressource geöffnet hast.
Es geht vorallem darum, im $header Paramter keine Linebreaks (\r\n) zuzulassen.

PHP:
mail($to, $betreff, $nachricht, "Von:".$name."Email:".$from);
Hast du dir die header ausgedacht? Die unterliegen bestimmten Spezifikationen. Der From-Header sieht zB so aus:

PHP:
'From: Vorname Name <webmaster@example.com>'
 
also gut brauch eigendlich nur Name (vor und Nach in einem) Email und textfeld und die empfänger kann in eine variable gespeichert werden hab ich in anderen code schnipsel gesehen und danke für deine mühe :Daber was soll ich jz verwenden das das funktioniert ? :-)

LG Mario :D
 
Zurück