PHP-Formular
Fredy
- php
0 Fredy1 bleicher
0 Felix Riesterer0 Fredy
Hallo,
ich versuche zum ersten Mal ein Kontaktformular von einfacher Mailto-Funktion in PHP umzuschreiben. Als Vorlage nutze ich ein fremdes Formular mit PHP, wo ich nur die Namen und die Eigenschaften meiner HTML-Elemente hinzufüge.
Es klappt bei den Online-Tests gar nicht und der PHP-Abschnitt wird gar nicht im Seitenquellentext
angezeigt.
Was ist falsch? Sicher könnte man das Skript reduzieren und korrigieren.
Vielen Dank!
Fredy
<?php
$mailto = "info@immo-leistungen.de";
$send_msg = "";
$name_err = "";
$email_err = "";
$msg_err = "";
$betreff_err = "";
if (!empty($_POST['send'])) {
$error = 0;
if (empty($_POST['from_name'])) {
$name_err = "Geben Sie Ihren Namen ein!";
$error = 1;
} else {
$from_name = filter($_POST['from_name']);
}
if (empty($_POST['from_email']) || !preg_match("/[1][\w.-]*@[A-z0-9][\w-.]+.[A-z0-9]{2,6}$/", $_POST['from_email'])) {
$email_err = "Geben Sie Ihre eMail-Adresse ein!";
$error = 1;
} else {
$from_email = $_POST['from_email'];
}
if (empty($_POST['from_betreff'])) {
$betreff_err = "Geben Sie den Betreff ein!";
$error = 1;
} else {
$from_betreff = filter($_POST['from_betreff']);
}
if (empty($_POST['from_msg'])) {
$msg_err = "Geben Sie die Nachricht ein!";
$error = 1;
} else {
$from_msg = preg_replace("/(content-type:|bcc:|cc:|to:|from:)/im", "", $_POST['from_msg']);
}
if (!$error) {
if (@mail($mailto, "impressum_kontakt1", "Betreff: $from_betreff\n\nNachricht:\n$from_msg", "From: $from_name <$from_email>")) {
$send_msg = "Ihre Nachricht wurde erfolgreich gesendet.<br><br>";
unset($_POST['from_name']);
unset($_POST['from_email']);
unset($_POST['from_betreff']);
unset($_POST['from_msg']);
} else {
$send_msg = "Fehler!";
}
}
}
function filter($input) {
$result = preg_replace("/[^a-z0-9 !?:;,./_-=+@#$&\*()]/im", "", $input);
return preg_replace("/(content-type:|bcc:|cc:|to:|from:)/im", "", $result);
}
?>
<?=$send_msg?>
<form action="<?=$_SERVER['smtp.strato.de']?>" method="post">
<fieldset id="il">
<p><label for="name">Name:</label>
<input name="from_name" id="name" type="text" value="<? if (!empty($_POST['from_name'])) echo $_POST['from_name']; ?>"><?=$name_err?></p>
<p><label for="email">E-Mail:</label>
<input name="from_email" id="email" type="text" value="<? if (!empty($_POST['from_email'])) echo $_POST['from_email']; ?>"><?=$email_err?></p>
<p><label for="betreff">Betreff:</label>
<input name="from_betreff" id="betreff" type="text" value="<? if (!empty($_POST['from_betreff'])) echo $_POST['from_betreff']; ?>"><?=$betreff_err?></p>
<textarea name="from_msg" id="from_msg"cols=38 rows=5><? if (!empty($_POST['from_msg'])) echo $_POST['from_msg']; ?></textarea><?=$msg_err?>
<input nane="absenden" type="submit"class="submit" value="Absenden"/>
<input name="Reset"type="reset"class="reset" value="Löschen"/>
</fieldset>
</form>
A-z0-9 ↩︎
PS:
Falls der Code nicht zu verstehen ist, könnt ihr mir einen Verweis geben,
wo ich ein PHP-Skript für Kontakt übernehmen kann?
Ich habe nämlich vier einfache Formularfelder:
Name, E-Mail, Betreff und Nachricht.
Gruß,
Fredy
Grüße,
ich würde mit der überprüfung nafange, ob shorttags oder wie das heißt, auf dem server aktiviert ist, ist meistens nicht. also siehe zu dass du alle <? durch <?php ersetzts
MFG
bleicher
Lieber Fredy,
schau mal hier: SELFHTML-Artikel "einfacher PHP-Formmailer"
Liebe Grüße,
Felix Riesterer.
Lieber Felix, lieber Bleicher,
danke für Eure Antworten!
Ich bemühe mich noch heute dies anzuwenden und einige Tests durchzuführen.
Es soll klappen.
Beste Grüße,
Fredy