Noch nicht viel geschrieben
Hallo,
ich habe jetzt schon Nächte mit diesem Kontaktformular verbracht, mir Tutorials durchgelesen, in Foren gesucht und verschiedene Ansätze ausprobiert, aber ich komme einfach nicht weiter.
Ich bin absoluter Anfänger in Sachen PHP.
Dank Wordpress habe ich mir etwas Verständnis dafür angeeignet, aber etwas komplett selbst schreiben kann ich wohl noch nicht.
Ich arbeite dran, aber ich dachte, dass ich das Kontaktformular vlt auch so schon hinbekomme.
Ich habs mit einem Tutorial von hier probiert. (dieses hier)
Aber nach dem ich den Code erst mal 1 zu 1 zum testen übernommen habe, bekomme ich nur eine weiße Seite. =/
error_reporting steht auch gleich zu Anfang, aber nicht mal einen Fehler gibt er aus. Woran kanns liegen?
Da mich das so gewurmt hat, hab ichs noch mit einem anderen Kontaktformular ausprobiert und das funktioniert zwar, aber ich glaube, es ist nicht wirklich Spamsicher... -.-
Und - was mich auch noch etwas stört - es überprüft nicht, ob Felder ausgefüllt sind.
Ich stell mir das so vor, dass Name, Mail und Anfragetext Pflichtfelder sind und somit nicht leer abgeschickt werden können. Adresse und Telefonnummer hingegen sollen optional sein.
Ich zeig euch einfach mal, was ich bisher habe. Vielleicht könnt ihr mir ja ein paar neue Ansätze geben, damit ich vlt auch besser weiß, wo ich nach suchen muss, bzw. mit welcher Funktion ich das gewünschte erreiche...
kontakt.php
kontakt-act1.php
Und dann gibts eben noch die Danke-Seite, auf der dann einfach nur "vielen Dank" steht.
Für mich als Laie sieht es eigentlich so aus, als ob da eine Überprüfung vorgesehen ist. Leider funktioniert diese aber irgendwie nicht. =/
Und wenn wir schon mal dabei sind: Wo lege ich fest (und formatiere) die Mail, die dann als Ergebnis der Formulars an mich geschickt wird?
Ich hoffe, es kann mir jemand helfen. Ich weiß so langsam nicht mehr weiter.
ich habe jetzt schon Nächte mit diesem Kontaktformular verbracht, mir Tutorials durchgelesen, in Foren gesucht und verschiedene Ansätze ausprobiert, aber ich komme einfach nicht weiter.
Ich bin absoluter Anfänger in Sachen PHP.
Dank Wordpress habe ich mir etwas Verständnis dafür angeeignet, aber etwas komplett selbst schreiben kann ich wohl noch nicht.
Ich arbeite dran, aber ich dachte, dass ich das Kontaktformular vlt auch so schon hinbekomme.
Ich habs mit einem Tutorial von hier probiert. (dieses hier)
Aber nach dem ich den Code erst mal 1 zu 1 zum testen übernommen habe, bekomme ich nur eine weiße Seite. =/
error_reporting steht auch gleich zu Anfang, aber nicht mal einen Fehler gibt er aus. Woran kanns liegen?
Da mich das so gewurmt hat, hab ichs noch mit einem anderen Kontaktformular ausprobiert und das funktioniert zwar, aber ich glaube, es ist nicht wirklich Spamsicher... -.-
Und - was mich auch noch etwas stört - es überprüft nicht, ob Felder ausgefüllt sind.
Ich stell mir das so vor, dass Name, Mail und Anfragetext Pflichtfelder sind und somit nicht leer abgeschickt werden können. Adresse und Telefonnummer hingegen sollen optional sein.
Ich zeig euch einfach mal, was ich bisher habe. Vielleicht könnt ihr mir ja ein paar neue Ansätze geben, damit ich vlt auch besser weiß, wo ich nach suchen muss, bzw. mit welcher Funktion ich das gewünschte erreiche...
kontakt.php
Code:
<h1>Kontakt</h1>
<p>
<form action="kontakt-act1.php" method="post">
<dl>
<dt>Ihr Name:</dt>
<dd><input type="text" name="Name" /></dd>
<dt>Adresse:</dt>
<dd><input type="text" name="Adresse" /></dd>
<dt>Telefonnummer (für weitere Kontaktaufnahme):</dt>
<dd><input type="text" name="Telefon" /></dd>
<dt>Ihre E-Mail:</dt>
<dd><input type="text" name="EMail" /></dd>
<dt>Anfrage:</dt>
<dd><textarea name="anfrage" rows="5" cols="30"></textarea></dd>
</dl>
<p class="buttons">
<input type="submit" value="Senden" name="fertig" />
<input type="reset" value="Zurücksetzen" />
</p>
</form>
</p>
kontakt-act1.php
Code:
<?php
$strEmpfaenger = 'EMPFÄNGERMAIL';
$strFrom = '"Kontaktformular" <KONTAKTMAIL>';
$strSubject = 'Kontaktanfrage';
$strReturnhtml = '/kontakt-danke.php';
$strDelimiter = ":\t";
function checkEmail( $email )
{
$nonascii = "\x80-\xff";
$nqtext = "[^\\\\$nonascii\015\012\"]";
$qchar = "\\\\[^$nonascii]";
$normuser = '[a-zA-Z0-9][a-zA-Z0-9_.-]*';
$quotedstring = "\"(?:$nqtext|$qchar)+\"";
$user_part = "(?:$normuser|$quotedstring)";
$dom_mainpart = '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.';
$dom_subpart = '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*';
$dom_tldpart = '[a-zA-Z]{2,5}';
$domain_part = "$dom_subpart$dom_mainpart$dom_tldpart";
$pattern = "$user_part\@$domain_part";
if (!preg_match( "/$pattern$/", $email ))
{
return FALSE;
}
else
{
return TRUE;
}
}
if(isset($fertig)){
if ($Name == "") {
echo"<script type=\"text/javascript\"> alert(\"Sie haben ihren Namen nicht angegeben!\");</script>";
} elseif ($Telefon == "") {
echo"<script type=\"text/javascript\"> alert(\"Sie haben ihre Telefonnummer nicht angegeben!\");</script>";
} elseif ($EMail == "") {
echo"<script type=\"text/javascript\"> alert(\"Sie haben Ihre E-Mail nicht angegeben!\");</script>";
} elseif ($anfrage == "") {
echo"<script type=\"text/javascript\"> alert(\"Sie haben keine Nachricht angegeben!\");</script>";
} elseif (!checkEmail( $_REQUEST['email'] )) {
echo"<script type=\"text/javascript\"> alert(\"Die Email Adresse ist nicht gueltig!\");</script>";
} else {
$datum = date("d.m.Y");
$uhrzeit = date("H:i");
$datum=$datum ."-". $uhrzeit ."Uhr";
$ich = "MEINEMAIL";
$betreffemail = "Kontaktformular";
$text = "Sie haben eine Nachricht von:".$Name."
Seine Email Adresse lautet:".$EMail."
Die Telefonnummer lautet:".$Telefon."
Das Sendedatum:".$datum."
Die Nachrich lautet:".$anfrage."
";
mail($ich, $betreffemail, $text,
"From: Absender <Absenderemail>");
echo"Mail verschickt <br>";
echo"<script type=\"text/javascript\"> alert(\"Die Nachricht wurde erfolgreich verschickt!\");</script>";
}
}
if($_POST)
{
$strMailtext = "";
while(list($strName,$value) = each($_POST))
{
if(is_array($value))
{
foreach($value as $value_array)
{
$strMailtext .= $strName.$strDelimiter.$value_array."\n";
}
}
else
{
$strMailtext .= $strName.$strDelimiter.$value."\n";
}
}
if(get_magic_quotes_gpc())
{
$strMailtext = stripslashes($strMailtext);
}
mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
or die("Die Mail konnte nicht versendet werden.");
header("Location: $strReturnhtml");
exit;
}
?>
Und dann gibts eben noch die Danke-Seite, auf der dann einfach nur "vielen Dank" steht.
Für mich als Laie sieht es eigentlich so aus, als ob da eine Überprüfung vorgesehen ist. Leider funktioniert diese aber irgendwie nicht. =/
Und wenn wir schon mal dabei sind: Wo lege ich fest (und formatiere) die Mail, die dann als Ergebnis der Formulars an mich geschickt wird?
Ich hoffe, es kann mir jemand helfen. Ich weiß so langsam nicht mehr weiter.