PHP - Mailformular: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
 
Zeile 5: Zeile 5:
  
 
== Beispiele ==
 
== Beispiele ==
=== Beispiel1 (Lifekinetik) ===
+
=== Beispiel 1 - einfaches Mailform mit AJAX Versand (Lifekinetik) ===
 
'''PHP'''
 
'''PHP'''
 
<syntaxhighlight lang="php">
 
<syntaxhighlight lang="php">

Aktuelle Version vom 11. Oktober 2018, 06:20 Uhr

Siehe auch (TODO)

Libs[Bearbeiten]

Todo -> PHP-Mailer etc...

Beispiele[Bearbeiten]

Beispiel 1 - einfaches Mailform mit AJAX Versand (Lifekinetik)[Bearbeiten]

PHP

<?php
	if($_POST) {

		$to = "info@angelajochum.de"; // Your email here
		$subject = 'Nachricht von angelajochum.de'; // Standard Subject

	}

	//Send mail function
	function send_mail($to,$subject,$message,$headers){
		if(@mail($to,$subject,$message,$headers)){
			echo json_encode(array('info' => 'success', 'msg' => "Ihre Nachricht wurde versandt. Vielen Dank."));
		} else {
			echo json_encode(array('info' => 'error', 'msg' => "Fehler, ihre Nachricht konnte nicht versendet werden."));
		}
	}

	//Check if $_POST vars are set
	if(!isset($_POST['name']) || !isset($_POST['mail']) || !isset($_POST['comment'])){
		echo json_encode(array('info' => 'error', 'msg' => 'Bitte füllen Sie alle Felder aus.'));
	}

	//Sanitize input data, remove all illegal characters
	$name    = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
	$mail    = filter_var($_POST['mail'], FILTER_SANITIZE_EMAIL);
	$subject = filter_var($_POST['subject'], FILTER_SANITIZE_STRING);
	$website = filter_var($_POST['website'], FILTER_SANITIZE_STRING);
	$comment = filter_var($_POST['comment'], FILTER_SANITIZE_STRING);

	//Validation
	if($name == '') {
		echo json_encode(array('info' => 'error', 'msg' => "Bitte geben Sie Ihren Namen ein.."));
		exit();
	}
	if(!filter_var($mail, FILTER_VALIDATE_EMAIL)){
		echo json_encode(array('info' => 'error', 'msg' => "Bitte geben sie eine gültige E-Mail Adresse ein."));
		exit();
	}
	if($comment == ''){
		echo json_encode(array('info' => 'error', 'msg' => "Bitte geben sie Ihre Nachricht ein."));
		exit();
	}

	//Send Mail
	$headers = 'From: ' . $mail .''. "\r\n".
	'Reply-To: '.$mail.'' . "\r\n" .
	'X-Mailer: PHP/' . phpversion();

	send_mail($to, $subject, $comment . "\r\n\n"  .'Name: '.$name. "\r\n" .'E-Mail: '.$mail, $headers);
?>

HTML

<form id="contact-form" action="#">
              <div class="row contact-row">
                <div class="col-md-6 contact-name">
                  <input name="name" id="name" placeholder="Name*" type="text">
                </div>
                <div class="col-md-6 contact-email">
                  <input name="mail" id="mail" placeholder="E-Mail*" type="email">
                </div>
              </div>
              <input name="subject" id="subject" placeholder="Betreff" type="text">
              <textarea name="comment" id="comment" placeholder="Ihre Nachricht"></textarea>
              <div class="col-md-12">
                <p>DATENSCHUTZHINWEIS<br>
                  Mit meiner Kontaktaufnahme willige ich ein, dass meine Daten gespeichert und zur Bearbeitung meiner Anfrage/Kontaktaufnahme
                  sowie für die Zusendung von Informationsmaterial genutzt werden. Eine Weiterleitung an Dritte ist ausgeschlossen.
                  Diese Einwilligung kann jederzeit widerrufen werden.<br>&nbsp;
                </p>
              </div>
              <input class="btn btn-lg btn-color btn-submit" value="Absenden" id="submit-message" type="submit">
              <div id="msg" class="message success" style="display: none;">Ihre Nachricht wurde versandt. Vielen Dank.</div>
            </form>

JavaScript (jQuery)

/* ---------------------------------------------------------------------- */
    /*  Contact Form
    /* ---------------------------------------------------------------------- */

    var submitContact = $('#submit-message'),
        message = $('#msg');

    submitContact.on('click', function(e){
        e.preventDefault();

        var $this = $(this);
        
        $.ajax({
            type: "POST",
            url: 'contact.php',
            dataType: 'json',
            cache: false,
            data: $('#contact-form').serialize(),
            success: function(data) {

                if(data.info !== 'error'){
                    $this.parents('form').find('input[type=text],input[type=email],textarea,select').filter(':visible').val('');
                    message.hide().removeClass('success').removeClass('error').addClass('success').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow');
                } else {
                    message.hide().removeClass('success').removeClass('error').addClass('error').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow');
                }
            }
        });
    });