Wie am besten Kontaktformular aus fertigem Template in betrieb nehmen?

  • Hi Leute,

    habe eine Webseite aus einem fertigem Template erstellt, es ist ein Bootstrap, etwas aufwendig durch mehrere @media Einträge, von daher habe ich am Design nichts verändert, nur Teile rausgenommen.

    Dieses Template hat ein Kontaktformular, welches sich gut dem Design anpasst und ich von daher komplett so übernehmen möchte. Allerdings funzt das nicht, weil keine Technik dahinter steckt.
    Mit welchen Tips wäre das wohl am besten zu realisieren, so daß alle vom Besucher eingegebenen Infos an mich per Mail übertragen werden?

    Habe für andere Webseiten ein PHP Kontaktformular benutzt, daß läuft auf meinem Template auch, jedoch sind damit zuviel Layoutkorrekturen notwendig.

    Hier der jetztige Code vom Formular:

    <form>
    <input type="text" placeholder="Name" required>
    <input type="email" placeholder="E-Mail Adresse" required>
    <input type="tel" placeholder="Telefonnummer" required>
    <select name="betreff" required>
    <option value="">Dein Anliegen:</option>
    <option value="Vorverkauf">Vorverkauf</option>
    <option value="Tischreservierung">Tischreservierung</option>
    <option value="Modelanfrage">Titel Model werden</option>
    <option value="Allgemeine Anfrage">Allgemeine Anfrage</option>
    </select>
    <textarea placeholder="Nachricht" required></textarea>
    <input type="submit" value="SENDEN">
    </form>


    Regnerische Grüße aus Hamburg!
    KC

    • Offizieller Beitrag

    Hallo,

    Wie ist Dein PHP Kenntnisstand?
    Einfach die Werte aus den $_POST-Keys auslesen und filtern und dann am besten per Mailer-Klasse versenden.
    Spontan fallen mir SwiftMailer und - vermutlich einfacher einzubinden - PHPMailer.

    Achtung: Solltest Du PHP seitig nicht etwas fortgeschritten sein und ein Fragezeichen in Bezug auf RFC hast, solltest Du aus eigenem Interesse alle Hinweise auf die PHP interne mail()-Funktion ignorieren!

    Gruß Arne

  • Über den Swiftmailer habe ich schon gelesen, soll ganz gut sein. Aber ich komme mit der Anleitung nicht klar, weiss nicht wo was wie einzubinden ist. Weil die Tutorials die im Netz zu finden sind, erklären ganz andere Dateien als die im aktuellem Download vorhanden sind. Bin mir nichtmal sicher, ob swiftmailer.org die richtige Download Adresse ist.

    • Offizieller Beitrag

    Unterschied zwischen Microsoft Office und Libre Office?

    Ich bin nicht hier, um Vor- und Nachteile auszuführen. Wenn Du PHPMailer nicht nehmen willst, mußt Du nicht, ich habe nur versucht Dir zu helfen.
    Aber um die Frage zu beantworten: PHPMailer ist einfacher für Einsteiger zu integrieren!

    Gruß Arne

  • OK danke!

    - - - Aktualisiert - - -

    Auch in dem Tutorial finde ich, es ist nicht ausreichend erklärt. Wo wird welcher Code eingesetzt? Nix der gleichen steht da, wo ist ein konkretes Beispiel mit einem Kontaktformular?


    Da steht:

    Wie verwende ich das jetzt?
    Die Verwendung ist im Prinzip ganz einfach. Zunächst müssen wir den Autoloader einbinden und direkt eine Instanz des PHPMailer erstellen:
    PHP-Code:

    include_once 'phpmailer/PHPMailerAutoload.php';
    $oMailer = new PHPMailer;


    Ja toll! Wo kommt der Code hin?

    • Offizieller Beitrag

    Hallo,

    Wenn Du komplette Scripte willst, solltest Du das in Auftrag geben.
    Geht's nur um den Versand der Mail an Dich? Dann schreib mich per PN an, das kriegen wir kostengünstig zurecht.

    Gruß Arne


    EDIT:

    Zitat

    Ja toll! Wo kommt der Code hin?

    Ja, das meinte ich. Dir fehlen Grundlagen PHP. Ist ja nicht schlimm, aber dann würde ich das an Deiner Stelle nicht selbst machen...#

  • Naja weil ich ein Website Template habe was ich im Layout nicht kaputt machen möchte. Alle PHP Formulare die ich kenne, leiten nach dem Senden auf eine danke php weiter, das ist mit meinem Template tödlich!

  • Dann zeig doch mal dein Kontaktformular mit allem drum und dran, am besten per Link. Wohin soll denn nach absenden verlinkt werden? Das ist alles offen.

    Gegen Mods kommt man nicht an, die haben immer Recht. Sind scheinbar nicht kritikfähig.

  • Ich arbeite gerade an einem mir bekannten PHP Forumlar, das arbeitet sehr gut und bietet leichte Konfigmöglichkeiten. Das Ding ist nur, das muß halt vom Design her zum Template angepasst werden, naja ok.

    Aber es funktionert schonmal!

  • Kollegas,

    jetzt benötige ich eure Ideen.

    Das Kontaktforumlar steht soweit, ich habe 3 Punkte da komme ich nicht voran. Schaut Euch bitte die Screenshots an.

    1. Die Fehlermeldungen werden neben den Feldern ausgegeben, dadurch kackt das Layout ab. Im original PHP-Kontaktformular ist eine Tabelle eingebunden, somit gibt er die Fehlermeldungen in der gleichen Zelle aus. Ich habe die Tabelle entfernt, da jedes Feld mehreren CSS Eigenschaften zugeordnet ist und je nach Gerät bzw. Screengröße die Felder nebeneinander oder untereinander aufgestellt werden.

    Mit welchen CSS Befehlen bekomme ich die Fehlermeldung unterhalb oder oberhalb des jeweiligen Feldes?

    2. Name, Email Adresse und Telefonnummer haben alle die gleiche Größe. Nur 'Anliegen Auswählen' (Drop-Down) nicht. Wieso? Ich habe dem Feld genau die gleiche CSS Eigenschaft zugeteilt, wie z. B. Text. Hier der Code:

    <body class="contact-info">
    <form action="<?php $_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data">
    <?php if ($fehler['name'] != "") { echo $fehler['name']; } ?><input name="name" type="text" value="<?php echo $_POST[name]; ?>" maxlength="<?php echo $zeichenlaenge_name; ?>" placeholder="Name" autocomplete="on" />
    <?php if ($fehler['email'] != "") { echo $fehler['email']; } ?><input name="email" type="text" id="email" value="<?php echo $_POST[email]; ?>" maxlength="<?php echo $zeichenlaenge_email; ?>" placeholder="Email Adresse" autocomplete="on" />
    <?php if ($fehler['telefon'] != "") { echo $fehler['telefon']; } ?><input name="telefon" type="text" value="<?php echo $_POST[telefon]; ?>" maxlength="<?php echo $zeichenlaenge_telefon; ?>" placeholder="Telefonnummer" autocomplete="on" />
    <?php if ($fehler['betreff'] != "") { echo $fehler['betreff']; } ?>
    <select name="betreff">
    <option value="">Anliegen ausw&auml;hlen</option>
    <option value="Vorverkauf">Vorverkauf</option>
    <option value="Tischreservierung">Tischreservierung</option>
    <option value="Titelmodel">Titelmodel werden</option>
    <option value="Anfrage">Allgemeine Anfrage</option>
    </select><br /><br />
    <?php if ($fehler['nachricht'] != "") { echo $fehler['nachricht']; } ?><textarea name="nachricht" cols="35" rows="10" placeholder="Nachricht" /><?php echo $_POST[nachricht]; ?></textarea><br />
    <input type="submit" name="kf-km" value="Senden" onclick="tescht();" class="btn" />
    </form>
    </body>


    .contact-info input[type='text']{
    font-size:14px;
    width: 22%;
    color: #373737;
    outline: none;
    }
    .contact-info input[type='email']{
    font-size:14px;
    width: 22%;
    color: #373737;
    outline: none;
    }
    .contact-info input[type='tel']{
    font-size:14px;
    width: 22%;
    color: #373737;
    outline: none;
    }
    .contact-info select[name='betreff']{
    font-size:14px;
    width: 22%;
    color: #373737;
    outline: none;
    }

    • Offizieller Beitrag

    Hallo,


    • Bitte lass das $_SERVER['PHP_SELF'] weg!
      Entweder das action-Attribut leer lassen oder in Zeiten des HTML5 einfach ganz weglassen.
      Fehlermeldungen oberhalb wäre mit purem CSS ganz einfach mit display:block; zu lösen.
      Allerdings kommst Du wohl nicht umhin, zumindest ein Tabellen-Layout wieder einzubauen, da Du die Felder horizontal angeordnet hast
      und die Meldungen jeweils ober-/unterhalb der Boxen stehen soll. Eine richtige Tabelle benötigst Du dazu aber nicht.
      Lege einen <span>...</span> um jede Box inkl. Meldung, dem Du display:table-cell; gibst. Dann einfach hier auch die Breite verpassen
      und dem <input ...> und der Meldung ein display:block; geben. Das sollte es gewesen sein.
    • Kann ich nicht sehen. Deine CSS-Regeln scheinen da zu sein.
      Meine Vermutung tendiert zwischen Tippfehler und kaputtem HTML.
    • ???
      Wo ist die dritte Frage?

    Gruß Arne

  • Ich hab die PHP Fehlermeldungen ganz rausgenommen und lasse dafür HTML5 Fehlermeldungen ausspucken. So ändert sich gar nix am Layout. Den Punkt 2 habe ich durch tricksen gelöst, habe dem Betreff Feld Padding gegeben. Punkt 3 gibt es nicht.

    Den Punkt was Du meintest mit $_SERVER['PHP_SELF'] schaue ich mir noch an, weiss nicht genau was gemeint ist.

    Nacht erstmal!

    • Offizieller Beitrag

    Hallo,

    Zitat

    Den Punkt was Du meintest mit $_SERVER['PHP_SELF'] schaue ich mir noch an, weiss nicht genau was gemeint ist.

    HTML
    <form action="<?php $_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data">


    ändern in

    HTML
    <form action="" method="post" enctype="multipart/form-data">


    oder besser ( HTML5! :(

    HTML
    <form method="post" enctype="multipart/form-data">

    Was sind HTML5-Fehlermeldungen???

    Deine padding-Lösung funktioniert nur solange, wie Du keinen neuen <option> hinzufügst, die durch Ihre Bezeichnung in der Breite ausbricht.

    • Offizieller Beitrag
    Zitat von khan.cross

    Was ist denn das überhaupt?

    Das Form-Tag, damit Deine Formularfelder überhaupt als Form-Elemente identifiziert und übertragen werden. :confused:
    Hör mal... Es macht keinen Sinn, Code wie wild zu kopieren, in der Hoffnung daß es augenscheinlich funktioniert, auch wenn man keinen blassen Schimmer hat, warum!
    :pfeif:

  • Hi Arne, der Code war schon fertig, ist ein fertiges Kontaktformular aus dem Netz. Was soll denn dieser Befehl bezwecken bzw. wenn man ihn rausnimmt anders sein?