Vanilla 1.1.2 Forum von Lussumo. Weitere Informationen: Dokumentation, Community.

    • CommentAuthormicheli
    • CommentTime08.02.2010
     permalink
    Hallo
    Ich oute mich mal wieder als absolute beginner.

    Ich möchte ein bestehendes php-kontaktformular verwenden.
    Das formular ruft sich selbst auf.

    <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">


    Bei erstaufruf wird das leere formular ausgegeben.
    Wird das Formular gefüllt und
    checkt die daten und schreibt sie in die formularfelder zurück.

    das php/html snippet welches ich erstellt habe:


    <?php
    $empfaenger = 'deine@mailadresse.ch';
    $betreff = 'Test Mailer';
    $from = 'mein@beispieldomain.ch';
    setlocale(LC_ALL, 'de_CH', 'de_DE', 'de_CH.utf8', 'de_DE.utf8');

    $problem_felder = array();
    $vorname = '';
    $nachname = '';
    $kunde = 'nein';
    $email = '';
    $txt = '';

    if (isset($_POST['vorname']))
    {
    if (get_magic_quotes_gpc())
    {
    $_POST = array_map('stripslashes', $_POST);
    }

    $_POST = array_map('trim', $_POST);
    $_POST = array_map('strip_tags', $_POST);

    $pruefung = array(
    'kunde' => '/^(ja|nein)$/',
    'vorname' => '/^[[:print:]]{1,100}$/',
    'nachname' => '/^[[:print:]]{2,100}$/',
    'plz' => '/^[0-9]{4,8}$/',
    'email' => '/^[\w.+-]{2,}\@[\w.-]{2,}\.[a-z]{2,6}$/',
    'txt' => '/^[[:print:][:space:]]{0,}$/'
    );

    foreach ($_POST as $schluessel => $wert)
    {
    if (isset($pruefung[$schluessel]))
    {
    if (!preg_match($pruefung[$schluessel], $wert))
    {
    $problem_felder[] = $schluessel;
    }
    $$schluessel = $wert;
    }
    else
    {
    unset($_POST[$schluessel]);
    }
    }
    if (count($problem_felder) == 0)
    {
    $email = str_replace("\r", '', $email);

    $bodyTxt = $betreff . ' (' . date('d.m.Y H:i') . ")\n"
    . "\nVorname: " . $vorname
    . "\nName: " . $nachname
    . "\nKunde: " . $kunde
    . "\nE-Mail: " . $email
    . "\n\n****"
    . "\nMitteilung:\n" . $txt . "\n";

    $headers = "MIME-Version: 1.0\n";
    $headers .= "Content-Type: text/plain; charset=iso-8859-1\n";
    $headers .= "Content-Transfer-Encoding: quoted-printable\n";
    $headers .= "From: " . $from. "\n";
    $headers .= "X-Mailer: Apple Mail (2.753.1)\n";

    if (!@mail($empfaenger, $betreff, $bodyTxt, $headers))
    {
    $problem_felder['mail_versand'] = 'Ihre Eingaben konnten leider nicht verschickt werden.<br />
    Versuchen Sie es bitte später noch einmal oder rufen Sie uns an<br />
    unter 0XXXXXXXXXXXX<br />Danke!';
    }
    }
    }

    ?>



    <?php
    if (count($problem_felder) > 0 || !isset($_POST['vorname']))
    {
    if (count($problem_felder) > 0) {
    echo '<p class="error">';

    if (isset($problem_felder['mail_versand']))
    {
    echo $problem_felder['mail_versand'];
    }
    else
    {
    echo 'Bitte alle rot gekennzeichneten Felder korrekt ausfüllen!';
    }
    echo '</p>';
    }
    ?>

    <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
    <fieldset>
    <legend>Kontaktformular</legend>
    <p>Folgende Eingaben werden per E-Mail verschickt:</p>

    <div id="radiocontainer">
    <p>Kunde</p>
    <label for="kunde_ja" class="radios"><input type="radio" value="ja" name="kunde" id="kunde_ja"<?php if($kunde=='ja') echo ' checked="checked"'; ?> /> Ja </label>  
    <label for="kunde_no" class="radios"><input type="radio" value="nein" name="kunde" id="kunde_no"<?php if($kunde=='nein') echo ' checked="checked"'; ?> /> Nein </label>
    <div style="clear:both; height:1px; overflow:hidden"></div>
    </div>

    <label for="vorname"<?php if(in_array('vorname', $problem_felder)) {echo ' class="error"';} ?>>Vorname*</label>
    <input class="ipt" type="text" name="vorname" id="vorname" size="24" value="<?php echo htmlspecialchars($vorname) ?>" />

    <label for="nachname"<?php if(in_array('nachname', $problem_felder)) {echo ' class="error"';} ?>>Nachname*</label>
    <input class="ipt" type="text" name="nachname" id="nachname" size="24" value="<?php echo htmlspecialchars($nachname) ?>" />

    <label for="email"<?php if(in_array('email', $problem_felder)) {echo ' class="error"';} ?>>E-Mail*</label>
    <input class="ipt" type="text" name="email" id="email" size="24" value="<?php echo htmlspecialchars($email) ?>" />

    <label for="txt">Mitteilung</label>
    <textarea name="txt" id="txt" cols="40" rows="4"><?php echo htmlspecialchars($txt) ?></textarea>

    <input type="submit" name="schicken" value="Ab die Post!" class="submit" />
    </fieldset>
    </form>
    <?php
    }
    else
    {

    echo '<p>Ihre Eingaben wurde verschickt.<br />Danke!</p>
    <p><br /><a href="' . $_SERVER['SCRIPT_NAME'] . '">Zurück zum Mail-Formular</a></p>';
    }
    ?>



    beim erstaufruf wird schon mist ausgegeben im html:

    <p><span id="savingMessage" style="color: #444444; font-weight: bold;"> <form action="echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
    <fieldset>
    <legend>Kontaktformular</legend>
    <p>Folgende Eingaben werden per E-Mail verschickt:</p>
    <div id="radiocontainer">
    <p>Kunde</p>
    <label for="kunde_ja" class="radios"><input type="radio" value="ja" name="kunde" id="kunde_ja"if($kunde=='ja') echo ' checked="checked"'; ?> /> Ja </label>  
    <label for="kunde_no" class="radios"><input type="radio" value="nein" name="kunde" id="kunde_no"if($kunde=='nein') echo ' checked="checked"'; ?> /> Nein </label>
    <div style="clear:both; height:1px; overflow:hidden"></div>
    </div>
    <label for="vorname"if(in_array('vorname', $problem_felder)) {echo ' class="error"';} ?>>Vorname*</label>
    <input class="ipt" type="text" name="vorname" id="vorname" size="24" value="echo htmlspecialchars($vorname) ?>" />
    <label for="nachname"if(in_array('nachname', $problem_felder)) {echo ' class="error"';} ?>>Nachname*</label>
    <input class="ipt" type="text" name="nachname" id="nachname" size="24" value="echo htmlspecialchars($nachname) ?>" />
    <label for="email"if(in_array('email', $problem_felder)) {echo ' class="error"';} ?>>E-Mail*</label>
    <input class="ipt" type="text" name="email" id="email" size="24" value="echo htmlspecialchars($email) ?>" />
    <label for="txt">Mitteilung</label>
    <textarea name="txt" id="txt" cols="40" rows="4">echo htmlspecialchars($txt) ?></textarea>
    <input type="submit" name="schicken" value="Ab die Post!" class="submit" />
    </fieldset>
    </form>
    </span><span id="savingMessage" style="color: #444444; font-weight: bold;"> </span></p>


    gibt es keinen weg dies einfach zum laufen zu bekommen?
    mit welcher adresse ruf ich das Formular auf?
    wieso bekomme ich beim testen mails von modx - neues passwort angefordert? :-)


    danke
    viele grüsse

    michel (absoluter beginner)
    • CommentAuthormicheli
    • CommentTime08.02.2010
     permalink
    Nochmals Hallo

    hab grad eine Formular mittels eForm erstellt und versuche das jetzt meinen Bedürfnissen anzupassen - ging auch ganz flott von der Hand - wäre trotzdem nicht traurig, wenn mir jemand bei meinen "denkfehler" mitteilt.

    vielen Dank
    viele Grüsse

    Michel