• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Benötige Skript zur Überprüfung eines Formulars

Dany Sahne

Neues Mitglied
Hallo,

ich habe vor, mehrere Formulare umzusetzen. Dafür brauche ich eine Überprüfung.

Ich habe folgende HTML Datei:
HTML:
<form action="http://www.woyand.bplaced.net/formmailer_heizung.php" method="post">
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Zu welchem Bereich möchten Sie Dienstleistungen in Anspruch nehmen, bzw. sich ein Angebot einholen:</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><select style="width: 100%;" name="Auswahl_des_Dienstleistungssektors" size="1" onchange="location.href=this.options[this.selectedIndex].value">&gt;
<option value="Heizung">Heizung</option>
<option value="http://woyand.bplaced.net/index.php/angebotsanfrage-elektro">Elektro</option>
<option value="http://woyand.bplaced.net/index.php/angebotsanfrage-sanitaer">Sanitär</option>
<option value="http://woyand.bplaced.net/index.php/angebotsanfrage-solar">Solar</option>
</select></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> </span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong>Angaben zur derzeitigen Situation</strong></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Welcher Brennstoff ist zur Zeit bei Ihnen vorhanden?</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><input type="checkbox" name="Brennstoff_aktuell" value="Gas" /> Gas</span><br /><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> <input type="checkbox" name="Brennstoff_aktuell(1)" value="Öl" /> Öl</span><br /><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> <input type="checkbox" name="Brennstoff_aktuell(2)" value="Pellet" /> Pellet</span><br /><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> <input type="checkbox" name="Brennstoff_aktuell(3)" value="Holz" /> Holz</span><br /><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> <input type="checkbox" name="Brennstoff_aktuell(4)" value="Strom" /> Strom</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> Welchen Brennstoff wünschen Sie sich?</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><input type="checkbox" name="Brennstoff_gewünscht" value="Gas" /> Gas</span><br /><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> <input type="checkbox" name="Brennstoff_gewünscht(1)" value="Öl" /> Öl</span><br /><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> <input type="checkbox" name="Brennstoff_gewünscht(2)" value="Pellet" /> Pellet</span><br /><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> <input type="checkbox" name="Brennstoff_gewünscht(3)" value="Holz" /> Holz</span><br /><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> <input type="checkbox" name="Brennstoff_gewünscht(4)" value="Strom" /> Strom</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Wie groß ist Ihr Abstellraum für die Heizung (in m²)?</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><input style="width: 100%;" type="int" name="Größe des Abstellraums in m²" size="3" maxlength="3" /><br /></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">In welchem Geschoss befindet sich der Abstellraum für die Heizung?</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><select style="width: 100%;" name="Auswahl_des_Geschosses" size="1">
<option value=""></option>
<option value="Keller">Keller</option>
<option value="Erdgeschoss">Erdgeschoss</option>
<option value="Obergeschoss">Obergeschoss</option>
</select></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Wie groß ist Ihre beheizte Wohnfläche (in m²)?</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><input style="width: 100%;" type="int" name="Wohnflaeche" size="100%" maxlength="4" /><br /></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Aus welchem Jahrzehnt stammt Ihr Dämmstandart?</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><select style="width: 100%;" name="Jahrzehnt_des_Dämmstandarts" size="1">
<option value=""></option>
<option value="1950">1950er</option>
<option value="1960">1960er</option>
<option value="1970">1970er</option>
<option value="1980">1980er</option>
<option value="1990">1990er</option>
<option value="2000">2000er</option>
<option value="2010">2010er</option>
</select></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Wie hoch ist Ihr aktueller Energieverbrauch pro Jahr (in kWh)?</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><input style="width: 100%;" type="int" name="aktueller Energieverbrauch in kWh" size="100%" maxlength="10" /><br /></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Welches Baujahr hat die aktuell vorhandene Heizung?</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><input style="width: 100%;" type="int" name="Baujahr vorhandene Heizung" size="100%" maxlength="4" /></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Wie hoch sind Ihre Systemtemperaturen zur Zeit?</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><input type="checkbox" name="Systemtemperatur aktuell" value="70_55 (Heizkörper)" /> 70|55 (Heizkörper)</span><br /><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> <input type="checkbox" name="Systemtemperatur aktuell (1)" value="40_25 (Fussboderheizung)" /> 40|25 (Fußbodenheizung)</span><br /><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> <input type="checkbox" name="Systemtemperatur aktuell (2)" value="50_35 (Konvektoren)" /> 50|35 (Konvektoren)</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Wie lang ist der veranschlagte Zeitraum der Sanierung?</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><select style="width: 100%;" name="Zeitraum_der_Sanierung" size="1">
<option value=""></option>
<option value="1 Monat">ein Monat</option>
<option value="2-3 Monate">2-3 Monate</option>
<option value="4-6 Monate">4-6 Monate</option>
<option value="7-12 Monate">7-12 Monate</option>
</select></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> </span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong>Persönliche Daten</strong> <br /></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Name</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><input style="width: 100%;" type="text" name="Nachname" size="100%" maxlength="40" /></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Vorname</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><input style="width: 100%;" type="text" name="Vorname" size="100%" maxlength="40" /></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Straße</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><input style="width: 100%;" type="text" name="Strasse" size="100%" maxlength="80" /></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Hausnummer</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><input style="width: 100%;" type="text" name="Hausnummer" size="100%" maxlength="6" /></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Postleitzahl</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><input style="width: 100%;" type="int" name="Postleitzahl" size="100%" maxlength="5" /></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Ort</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><input style="width: 100%;" type="text" name="Ort" size="100%" maxlength="50" /></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Telefonnummer</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><input style="width: 100%;" type="int" name="Telefonnummer" size="100%" maxlength="20" /></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Handynummer</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><input style="width: 100%;" type="text" name="Handynummer" size="100%" maxlength="20" /></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">E-Mail-Adresse<strong><br /></strong></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><input style="width: 100%;" type="text" name="E-Mail-Adresse" size="100%" maxlength="200" /></span></p>
<p style="text-align: center;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><input type="submit" value=" Absenden " /> <input type="reset" value=" Abbrechen" /></span></p>
</form>
 
Und wie sieht dein bisheriger Entwicklungsstand für die Formularprüfung aus? Oder möchtest Du jemanden mit der Programmierung davon beauftragen? Wenn letzteres, wende dich an die Jobbörse (kennst Du ja schon).
 
Und dann sei auch gleich gesagt, dass dieser Quellcode eine Katastrophe ist, 55 mal in dem Ausschnitt
Code:
[COLOR=#000080]<span style=[COLOR=#0000FF]"font-family: arial,helvetica,sans-serif; font-size: small;"[/COLOR]>[/COLOR]
geht ja mal garnicht.
 
Leider haben nicht beide Teile hineingepasst und ich musste erst auf die Freischaltung des Themas warten.

Das Formular greift auf einen php-Formmailer zu:
PHP:
<?php

/**
 * Konfiguration
 *
 * Bitte passen Sie die folgenden Werte an, bevor Sie das Script benutzen!
 *
 * Das Skript bitte in UTF-8 abspeichern (ohne BOM).
 */
 
$zieladresse = 'E-Mail';

$absenderadresse = 'E-Mail';

$absendername = 'Anfrage von der Homepage generiert';

$betreff = 'Anfrage Heizung';

$urlDankeSeite = 'URL';

$trenner = ":\t"; // Doppelpunkt + Tabulator

/**
 * Ende Konfiguration
 */

if ($_SERVER['REQUEST_METHOD'] === "POST") {

    $header = array();
    $header[] = "From: ".mb_encode_mimeheader($absendername, "utf-8", "Q")." <".$absenderadresse.">";
    $header[] = "MIME-Version: 1.0";
    $header[] = "Content-type: text/plain; charset=utf-8";
    $header[] = "Content-transfer-encoding: 8bit";
    
    $mailtext = "";

    foreach ($_POST as $name => $wert) {
        if (is_array($wert)) {
            foreach ($wert as $einzelwert) {
                $mailtext .= $name.$trenner.$einzelwert."\n";
            }
        } else {
            $mailtext .= $name.$trenner.$wert."\n";
        }
    }

    mail(
        $zieladresse,
        mb_encode_mimeheader($betreff, "utf-8", "Q"),
        $mailtext,
        implode("\n", $header)
    ) or die("Die Mail konnte nicht versendet werden.");
    header("Location: $urlDankeSeite");
    exit;
}

header("Content-type: text/html; charset=utf-8");

?>
<!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" xml:lang="de">
    <head>
        <title>Einfacher PHP-Formmailer</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body>
        <h1>Beispielformular</h1>
        <form action="" method="post">
            <table border="0" cellspacing="3">
Hier kommt nun das oben verwendete Formular...

Dieser soll nun zum einen als Absender den Absendernamen und die Mail-Adresse aus dem Formular übernehmen, zu anderen soll er jedes Feld auf Inhalt überprüfen und im Zweifel das Feld rot umrahmen und eine Fehlermeldung ausgeben. Bei Fehlern soll das Formular mit allen Angaben wieder angezeigt werden.

Mein Problem ist, dass ich nicht genau weiß, wie ich das if und else benutzen muss. Mir würde ein Beispiel im Formmailer reichen, den Rest könnte ich mir erschließen.

Auch würde ich gerne die vom "Ausfüller" verwendete Mail Adresse als Antwortadresse verwenden. Wie funktioniert das. Über den Feldnamen mit $ Zeichen davor hat es leider nicht funktioniert?

Freue mich über eure Hilfe.

LG

Dany Sahne

PS. Mit dem Quellcode habe ich mir schon gedacht, es ist mir bisher aber noch nicht gelungen, die Formatierung, die ja überall gleich ist, über CSS einzubinden.
 
Zurück
Oben