eMail von Homepage aus senden aber wie!?

digiTALE

Lt. Junior Grade
Registriert
Juli 2004
Beiträge
270
Hallo,

ich bin gerade dabei eine Homepage zu programmieren/designen und bin jetzt beim den "Contact" Bereich gelandet.

Habe 4 Optionen die ausgefüllt werden müssen. Wie kann ich das realisieren das diese Felder auch wirklich ausgefüllt sind und wenn nicht dann sollen sie rot markiert werden.
(Überprüfen bevor es gesendet wird)

Und wie bekomme ich das hin das das zu mir gesendet wird.


eMail Formular:
PHP:
<form name="eMail" method="post"  enctype="text/plain">
<table width="448" align="center" cellpadding="0" cellspacing="0">
	<tr>
	<td width="174" height="26" class="mail1" valign="top" 
	style="border-top:1px dashed #aaaaaa">*Vorname :&nbsp;</td>
	<td width="274" height="26" align="left" class="mail2"
	style="border-top:1px dashed #aaaaaa"><input
	type="text" name="vorname" class="input"></td>
	</tr>
	<tr>
	<td width="174" height="26" class="mail1" align="top">*Nachname :&nbsp;</td>
	<td width="274" height="26" align="left" class="mail2"><input
	type="text" name="nachname" class="input"></td>
	</tr>
	<tr>
	<td width="174" height="26" class="mail1" valign="top">*E-Mail Adresse :&nbsp;</td>
	<td width="274" height="26" align="left" class="mail2"><input
	type="text" name="email" class="input"></td>
	</tr>
	<tr>
	<td width="174" height="26" class="mail1" valign="top">Homepage :&nbsp;</td>
	<td width="274" height="26" align="left" class="mail2"><input
	type="text" name="homepage" class="input" value="http://"></td>
	</tr>
    <tr>
	<td width="174" height="120" valign="top" rowspan="2"
	class="mail1">*Kommentar/Kriterien :&nbsp;</td>
	<td width="274" height="120" align="left" class="mail2"><textarea
	name="comment" class="textarea"></textarea><br><input
	type="submit" value="Senden" class="button"> <input
	type="reset" value="Zurücksetzen" class="button"></td>
    </tr>
	</table><input 
	type="hidden" value="chriz.mail@gmx.net" name="recipient"><input 
	type="hidden" value="Homepage mail" name="subject"><input 
	type="hidden" value="REMOTE_HOST" name="env_report"><input 
	type="hidden" value="data/fehler.html"
	name="missing_fields_redirect"><input
	type="hidden" value="data/danke.html"
	name="redirect"><input 
	type="hidden" value="vorname" name="required"><input 
	type="hidden" value="nachname" name="required"><input 
	type="hidden" value="email" name="required"><input 
	type="hidden" value="comment" name="required"></form>
 
Überprüfen der eingabe kannst mit java-script machen oder mit einer einer if in PHP

Senden der E-Mail
PHP:
<?php

$betreff = $_POST["text1"];

$an = "webmaster@blue-webplanet.net";

$von = $_POST["email"];

$date = date("d.m.Y");

$inhalt = "Anfrage von: ".$_POST['home']."\nMail: ".$_POST['email']."\nBetreff: ".$_POST['text1']."\nText: ".$_POST['text2']."\n";

@mail ($an,$betreff,$inhalt,"From: ".$von);
echo "erfolgreich versendet!";
echo"<meta http-equiv='refresh' content='2; URL=index.php?url=kontakt'>";

?>
musst entsprechend abändern ;)
hab ich von meiner HP kopiert *gg*
 
Zuletzt bearbeitet:
@ sharky53

Danke erstmal, aber irgendwie funtioniert das nicht. Denn wen ich die "Contact" Seite aufrufe steht unten gleich da das die eMail erfolgreich gesendet wäre obwohl ich noch nix eingetragen habe. Woran kann das liegen.


Weiß noch jemand wie ich die eMail Eingabe prüfen kann bevor sie gesendet wird !?

THX digiTALE
 
Also ich hab nr kurz Zeit deswegen ein Beispiel von einer seite die ich mal gemacht habe, anpassen musst du selber


im kopfbereich

<script language="JavaScript" src="scripts/checkform.js" type="text/javascript">
</script>

einfügen


das hier musst du bei deinem form definition so ändern
<form name="KontaktFormular" method="post" onSubmit="return chkFormular()" action="php/formmailer.php">



lege das verzeichnis "scripts" auf deinem webspace an, darin die datei "checkform.js" mit folgendem inhalt:

PHP:
  function chkFormular()  {  
if (document.KontaktFormular.name.value == "")  
{  
  alert("Bitte Namen eingeben!"); 
  document.KontaktFormular.name.focus();  
  return false;  
}  
if (document.KontaktFormular.email.value == "")  
{  
   alert("Bitte E-Mail Adresse eingeben!");  
   document.KontaktFormular.email.focus();  
   return false;  
}  
if (document.KontaktFormular.email.value.indexOf('@') == -1) 
{  
   alert("Keine gültige E-Mail Adresse!");  
   document.KontaktFormular.email.focus();  
   return false;  
}  
if (document.KontaktFormular.email.value.indexOf('.') == -1)  
{  
   alert("Keine gültige E-Mail Adresse!");  
   document.KontaktFormular.email.focus();  
   return false;  
}  
}

mit document.KontaktFormular."namedeinesInputFeldes".value== "irgendwas" kannst du dann auf verschiedene Eingaben prüfen.

du kannst natürlich auch das KontaktFormular ändern, bei dir heisst das ja glaub e-Mail oder so...
musst dich bissl mit auseinandersetzen das is nicht so schwer
 
Zuletzt bearbeitet:
PHP:
<?php
if(!$_POST["senden"]){
?>
<form name="eMail" method="post"  enctype="text/plain">
<table width="448" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td width="174" height="26" class="mail1" valign="top"
    style="border-top:1px dashed #aaaaaa">*Vorname :&nbsp;</td>
    <td width="274" height="26" align="left" class="mail2"
    style="border-top:1px dashed #aaaaaa"><input
    type="text" name="vorname" class="input"></td>
    </tr>
    <tr>
    <td width="174" height="26" class="mail1" align="top">*Nachname :&nbsp;</td>
    <td width="274" height="26" align="left" class="mail2"><input
    type="text" name="nachname" class="input"></td>
    </tr>
    <tr>
    <td width="174" height="26" class="mail1" valign="top">*E-Mail Adresse :&nbsp;</td>
    <td width="274" height="26" align="left" class="mail2"><input
    type="text" name="email" class="input"></td>
    </tr>
    <tr>
    <td width="174" height="26" class="mail1" valign="top">Homepage :&nbsp;</td>
    <td width="274" height="26" align="left" class="mail2"><input
    type="text" name="homepage" class="input" value="http://"></td>
    </tr>
    <tr>
    <td width="174" height="120" valign="top" rowspan="2"
    class="mail1">*Kommentar/Kriterien :&nbsp;</td>
    <td width="274" height="120" align="left" class="mail2"><textarea
    name="comment" class="textarea"></textarea><br><input
    type="submit" value="Senden" name="senden" class="button"> <input
    type="reset" value="Zurücksetzen" class="button"></td>
    </tr>
    </table><input
    type="hidden" value="chriz.mail@gmx.net" name="recipient"><input
    type="hidden" value="Homepage mail" name="subject"><input
    type="hidden" value="REMOTE_HOST" name="env_report"><input
    type="hidden" value="data/fehler.html"
    name="missing_fields_redirect"><input
    type="hidden" value="data/danke.html"
    name="redirect"><input
    type="hidden" value="vorname" name="required"><input
    type="hidden" value="nachname" name="required"><input
    type="hidden" value="email" name="required"><input
    type="hidden" value="comment" name="required"></form>
<?php
}
else{

$betreff = $_POST["text1"];

$an = "webmaster@blue-webplanet.net";

$von = $_POST["email"];

$date = date("d.m.Y");

$inhalt = "Anfrage von: ".$_POST['home']."\nMail: ".$_POST['email']."\nBetreff: ".$_POST['text1']."\nText: ".$_POST['text2']."\n";

@mail ($an,$betreff,$inhalt,"From: ".$von);
echo "erfolgreich versendet!";
echo"<meta http-equiv='refresh' content='2; URL=index.php?url=kontakt'>";

}
?>
so ... das war jatzt schon fast das fertige script ... du musst nur noch die variablen richtig benennen ;)
 
Zu sharky53's Möglichkeit wäre am besten noch eine serverseitige Prüfung der Eingaben hinzuzufügen, dass nicht fehlerhaft oder bewusst unvollständige Mails versendet werden. Mit !empty($sring) lässt sich überprüfen ob eine entsprechende Variable leer oder nicht ist. Für die Überprüfung der Mail eignet sich am besten eine Regex-Prüfung wie diese:

PHP:
$emailcheck = preg_match("/^([\w|\.|\-|_]+)@([\w||\-|_]+)\.([\w|\.|\-|_]+)$/i", $string);

MfG mh1001
 
danke euch allen für eure hilfe ;)

@mh1001

wo muss ich diesen abschnitt einfügen, weil ich mich mit php noch nicht sehr gut auskenne, bin gerade dabei das zu lernen. danke


thx digiTALE
 
Da ich neun etwas Zeit habe schreibe ich es am besten schnell noch einmal. ;)
PHP:
<?php
if($_POST["senden"])
{
  $name = htmlspecialchars($_POST["name"]);
  $email = htmlspecialchars($_POST["email"]);
  $betreff = htmlspecialchars($_POST["betreff"]);
  $kommentar = htmlspecialchars($_POST["kommentar"]);

  $namencheck = !empty($name);
  $emailcheck = preg_match("/^([\w|\.|\-|_]+)@([\w||\-|_]+)\.([\w|\.|\-|_]+)$/i", $email);
  $kommentarcheck = !empty($kommentar);

  if($namencheck AND $emailcheck AND $kommentarcheck)
  {
	$senden = @mail("xyz@xyz.de", $betreff." von ".$name, $kommentar, "From: ".$email);  // e-Mail muss natürlich entsprechend angepasst werden ;)

	echo "Deine eMail wurde erfolgreich versendet.";

	echo "<a href=\"blablabla.php\">[Zur Startseite]</a>"; // statt blablabla.php den Link zur Startseite
  }
  else
  {
	echo "Deine eMail konnte aus folgenden Gründen nicht versendet werden:";
	echo "<ul>";

	if(!$namencheck)
	{
	  echo "<li>Es wurde kein Name eingetragen.";
	}

	if(!$emailcheck)
	{
	  echo "<li>Es wurde keine gültige e-Mail-Adresse eingetragen.";
	}

	if(!$kommentarcheck)
	{
	  echo "<li>Es wurde kein Kommentar eingetragen.";
	}

	echo "</ul>";

	echo "<a href=\"javascript:history.back();\">[Zurück]</a>";
	}
  }
}
else
{
?>
<form name="eingabeformular" action="
  Name: <input name="name" type="text" maxlength="35" /><br />
  e-Mail: <input name="email" type="text"maxlength="60" /><br />
  Betreff: <input name="betreff" type="text"maxlength="60" /><br />
  Kommentar: <textarea name="kommentar" rows="6" cols="35"><br />
 <input type="submit" value="Senden" name="senden" class="button">
 <input type="reset" value="Zurücksetzen" class="button">
</form>
<?
}
?>

Das Formular kannst du natürlich wieder in die entsprechende Tabelle packen.
Ich habe nur zu Gunsten der Übersicht und aus zeitlichen Gründen dieses einmal so schnell geschrieben. ;)

MfG mh1001
 
Zuletzt bearbeitet:
Wobei javascript in diesem Fall meiner Meinung nach geeigneter ist weil es auf dem Client ausgeführt wird und deswegen schneller ist.
 
dr.White schrieb:
Wobei javascript in diesem Fall meiner Meinung nach geeigneter ist weil es auf dem Client ausgeführt wird und deswegen schneller ist.
Naja, auf meinem Server läuft der Überprüfüngs-Teil ohne Rücksichtnahme auf andere Serveraktivitäten in ca. 0,002 Sekunden ab. ;) Daran sollte es also nicht mangeln. Desweiteren wird so Möglichen bewusseten Fehleingaben vorgebeugt. ;)
Neben dem gibt es immer noch Personen welche sich im Netz ohne JavaScript herumtreiben. ;) Gegen einen zusätzlichen Einbau der JavaScript-Prüfung würde aber natürlich auch nichts sprechen.

MfG mh1001
 
Zuletzt bearbeitet:
ja du hast natürlich Recht dass diese Überprüfung den Server überhaupt nicht beeindruckt.

Was ich meinte war, dass jmd der ne arschlangsame (modem) verbindung hat nicht warten muss, bis das formular beim server angekommen ist, von diesem gecheckt wurde und dann die Antwort wieder zurückgesendet wurde.
Bei Javascript wird das eben vor dem Absenden an den Server überprüft und etwaige Fehlermeldungen ausgegeben

und der Threadersteller wollte es vor dem absenden überprüft haben so wie er ganz oben schreibt...

und das kann nur javascript

davon abgesehen ist deine Lösung natürlich auch fein
 
Zuletzt bearbeitet:
Ja, damit hast du natürlich vollkommen Recht. Eine Kombination aus beidem, indem man einfach noch deinen Script mit einbindet, wäre sicher die beste Lösung für alle Userarten. ;)

MfG mh1001
 
Zurück
Oben