Peter Klein
Erfahrenes Mitglied
Hallo,
ich habe unten den Code von einem kleinen Kontaktformular.
Gibt es irgendwas was man noch verbessern könnte von der Programmierung her? Ich denke es kommen dann Vorschläge bez. OOP, aber da muss ich mich erst mal reinarbeiten.
Und eine Sache frage ich mich. Ich lasse ja per PHP die Felder ausgefüllt falls was falsch ist, aber bei der Textarea klappt das nicht. Woran hängt das?
Lg
Peter
ich habe unten den Code von einem kleinen Kontaktformular.
Gibt es irgendwas was man noch verbessern könnte von der Programmierung her? Ich denke es kommen dann Vorschläge bez. OOP, aber da muss ich mich erst mal reinarbeiten.
Und eine Sache frage ich mich. Ich lasse ja per PHP die Felder ausgefüllt falls was falsch ist, aber bei der Textarea klappt das nicht. Woran hängt das?
Lg
Peter
PHP:
<?php
error_reporting(E_ALL);
function valid_email($str)
{
return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
}
$empfaenger = 'postmaster@localhost';
$fehler = '';
$ok = '';
if ( isset($_POST['absenden']) ) {
$ausgabe_name = '';
$ausgabe_telefon = '';
$ausgabe_email = '';
$ausgabe_text = '';
$ausgabe_betreff = '';
$ausgabe_rueckruf = '';
$ausgabe_ipadresse = "IP-Adresse: " . $_SERVER['REMOTE_ADDR'] . "\n";
if ( isset($_POST['name']) && $_POST['name'] != '' ) {
$ausgabe_name .= 'Name: ' . htmlspecialchars($_POST['name']) . "\n";
}else {
$fehler .= "<span style=\"color: red;\">Bitte den Namen angeben!</span><br />";
}
if ( isset($_POST['telefon']) && $_POST['telefon'] != '' ) {
$ausgabe_telefon .= 'Telefonnummer: ' . htmlspecialchars($_POST['telefon']) . "\n";
}
if ( isset($_POST['emailadresse']) && $_POST['emailadresse'] != '' && valid_email($_POST['emailadresse'])== TRUE ) {
$ausgabe_email .= 'E-Mailadresse: ' . htmlspecialchars($_POST['emailadresse']) . "\n";
}else {
$fehler .= "<span style=\"color: red;\">E-Mailadresse korrekt?</span><br />";
}
if ( isset($_POST['betreff']) && $_POST['betreff'] != '' ) {
$ausgabe_betreff .= 'Betreff: ' . htmlspecialchars($_POST['betreff']) . "\n";
}
if ( isset($_POST['texteingabe']) && $_POST['texteingabe'] != '' ) {
$ausgabe_text .= 'Anschreiben: ' . htmlspecialchars($_POST['texteingabe']) . "\n";
}else {
$fehler .= "<span style=\"color: red;\">Bitte eine Nachricht angeben!</span>";
}
if ( isset($_POST['rueckruf'])) {
$ausgabe_rueckruf .= 'Kunde bittet um Rückruf.' . "\n";
}
$emailinhalt = $ausgabe_name . $ausgabe_text . $ausgabe_telefon . $ausgabe_email . $ausgabe_rueckruf . $ausgabe_ipadresse;
if ($fehler == '') {
@mail($empfaenger, $_POST['betreff'] . " von " . $_POST['name'], $emailinhalt);
$ok = "<div style=\"text-align:center; border: 1px solid #000;background: #ccc;\">Die E-Mail wurde versendet,<br /> vielen Dank für Ihre Anfrage.</div>";
} else {
$fehlerausgabe = $fehler;
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Language" content="de" />
<title>Kontaktformular</title>
</head>
<body>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" id="kontaktformular">
<?php echo $ok; ?>
<?php echo $fehler; ?>
<dl>
<dt><label for="name">Name:<span class="kleinrot">*</span> </label></dt>
<dd><input type="text" name="name" id="name" value="
<?php if(isset($_POST['name']) && $_POST['name']){
echo htmlspecialchars($_POST['name']);
} ?>" />
</dd>
<dt><label for="telefon">Telefon: </label></dt>
<dd><input type="text" name="telefon" id="telefon" value="
<?php if(isset($_POST['telefon']) && $_POST['telefon']){
echo htmlspecialchars($_POST['telefon']);
} ?>" /></dd>
<dt><label for="emailadresse">E-Mail:<span class="kleinrot">*</span> </label></dt>
<dd><input type="text" name="emailadresse" id="emailadresse" value="
<?php if(isset($_POST['emailadresse']) && $_POST['emailadresse']){
echo htmlspecialchars($_POST['emailadresse']);
} ?>" /></dd>
<dt><label for="betreff">Betreff: </label></dt>
<dd><select name="betreff" id="betreff">
<option value="Sonstiges"
<?php if(isset($_POST['betreff']) &&$_POST['betreff'] == 'Sonstiges') {
echo 'selected="selected"';
} ?>>Sonstiges</option>
<option value="Webseitenerstellung"
<?php if(isset($_POST['betreff']) &&$_POST['betreff'] == 'Webseitenerstellung') {
echo 'selected="selected"';
} ?>>Anfrage Webseitenerstellung</option>
<option value="Zusammenarbeit"
<?php if(isset($_POST['betreff']) &&$_POST['betreff'] == 'Zusammenarbeit') {
echo 'selected="selected"';
} ?>>Zusammenarbeit</option>
</select></dd>
<dt>Ihre Nachricht:<span class="kleinrot">*</span> </dt>
<dd><textarea name="texteingabe" id="texteingabe" cols="25" rows="5"></textarea></dd>
<dd><input type="checkbox" name="rueckruf" id="rueckruf" value="rueckruf"
<?php if(isset($_POST['rueckruf']) && $_POST['rueckruf'] == 'rueckruf'){
echo 'checked="checked" ';
} ?> />Bitte um Rückruf</dd>
<dd><span class="kleinrot">* erforderlich</span></dd>
<dd><input type="submit" name="absenden" id="absenden" value="Abschicken" />
<input type="reset" name="resetall" id="resetall" value="Zurücksetzen" /></dd>
</dl>
</form>
</body>
</html>