Sponsor-Board.de

Normale Version: Kontaktform
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hey,

habe vor kurzem angefangen mich einwenig in html reinzufuchsen und bin jetzt gerade dabei eine Kontaktform zu erstellen. Allerdings wird dort keine Email versendet.

PHP-Code:
                        <!-- Contact -->
                            <
article id="kontakt">
                                <
h2 class="major">Kontakt</h2>
                                <
form method="post" action="#">
                                    <
div class="field half first">
                                        <
label for="name">Name</label>
                                        <
input type="text" name="name" id="name" />
                                    </
div>
                                    <
div class="field half">
                                        <
label for="email">Email</label>
                                        <
input type="text" name="email" id="email" />
                                    </
div>
                                    <
div class="field">
                                        <
label for="message">Nachricht</label>
                                        <
textarea name="message" id="message" rows="4"></textarea>
                                    </
div>
                                    <
ul class="actions">
                                        <
li><input type="submit" value="Send Message" class="special" /></li>
                                        <
li><input type="reset" value="Reset" /></li>
                                    </
ul>
                                </
form


PHP-Code:
                                    <h4>Actions</h4>
                                    <
ul class="actions">
                                        <
li><a href="pfad zur datei von .php, abgeändert wegen Domain" class="button special">Default</a></li>
                                        <
li><a href="#" class="button">Default</a></li>
                                    </
ul


und jetzt die send_form_email.php

PHP-Code:
<?php
if(isset($_POST['email'])) {
 
    
// EDIT THE 2 LINES BELOW AS REQUIRED
    
$email_to "[email protected]";
    
$email_subject "Website Formular";
 
    function 
died($error) {
        
// your error code can go here
        
echo "We are very sorry, but there were error(s) found with the form you submitted. ";
        echo 
"These errors appear below.<br /><br />";
        echo 
$error."<br /><br />";
        echo 
"Please go back and fix these errors.<br /><br />";
        die();
    }
 
 
    
// validation expected data exists
    
if(!isset($_POST['first_name']) ||
        !isset(
$_POST['last_name']) ||
        !isset(
$_POST['email']) ||
        !isset(
$_POST['telephone']) ||
        !isset(
$_POST['comments'])) {
        
died('We are sorry, but there appears to be a problem with the form you submitted.');       
    }
 
     
 
    
$first_name $_POST['first_name']; // required
    
$last_name $_POST['last_name']; // required
    
$email_from $_POST['email']; // required
    
$telephone $_POST['telephone']; // not required
    
$comments $_POST['comments']; // required
 
    
$error_message "";
    
$email_exp '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
 
  if(!
preg_match($email_exp,$email_from)) {
    
$error_message .= 'The Email Address you entered does not appear to be valid.<br />';
  }
 
    
$string_exp "/^[A-Za-z .'-]+$/";
 
  if(!
preg_match($string_exp,$first_name)) {
    
$error_message .= 'The First Name you entered does not appear to be valid.<br />';
  }
 
  if(!
preg_match($string_exp,$last_name)) {
    
$error_message .= 'The Last Name you entered does not appear to be valid.<br />';
  }
 
  if(
strlen($comments) < 2) {
    
$error_message .= 'The Comments you entered do not appear to be valid.<br />';
  }
 
  if(
strlen($error_message) > 0) {
    
died($error_message);
  }
 
    
$email_message "Form details below.\n\n";
 
     
    function 
clean_string($string) {
      
$bad = array("content-type","bcc:","to:","cc:","href");
      return 
str_replace($bad,"",$string);
    }
 
     
 
    
$email_message .= "First Name: ".clean_string($first_name)."\n";
    
$email_message .= "Last Name: ".clean_string($last_name)."\n";
    
$email_message .= "Email: ".clean_string($email_from)."\n";
    
$email_message .= "Telephone: ".clean_string($telephone)."\n";
    
$email_message .= "Comments: ".clean_string($comments)."\n";
 
// create email headers
$headers 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' phpversion();
@
mail($email_to$email_subject$email_message$headers);  
?>
 
 
Thank you for contacting us. We will be in touch with you very soon.
 
<?php
 
}
?>


Ich hoffe einer von euch kann mir helfen Smile

Mit Freundlcihen Grüßen


Benjamin Thiele

Mich wundert es grade, wo dieser Code her kommt, weil er mir sehr bekannt vor kommt (Quelle??), aber bei mir funktioniert es einwandfrei. Vielleicht bei PHP das Mail-Modul vergessen?

webcraft schrieb:
Mich wundert es grade, wo dieser Code her kommt, weil er mir sehr bekannt vor kommt (Quelle??), aber bei mir funktioniert es einwandfrei. Vielleicht bei PHP das Mail-Modul vergessen?


Welchen Code genau meinst du von den drei oben?
Das ist genau das Problem, bei mir eben nicht. Biggrin

Mfg

Woher weiss das Formular, wohin die Daten geschickt werden sollen?

Maurice schrieb:
Woher weiss das Formular, wohin die Daten geschickt werden sollen?


Ich kenne mich mit dem System nicht richtig aus. Ich fuchse mich immer in kleinere HTML Bereiche rein bis ich es drin habe. Deshalb hoffe ich, dass jemand eine Lösung weiß.

Sind die Code-Schnippsel alle aus 1 Datei oder handelt es sich um mehrere?

Wenn es sich um mehrere handelt:

Form -> action="#"

in

Form -> action="send_form_email.php"

abändern und nochmal probieren.
Bitte testen ob das Formular auch in die PHP Funktion wandert.
An mehreren Stellen ein var_dump rein, oder eine Testumgebung mit vernünftigen Debug einrichten.

Sollte er bis zur mail Funktion kommen, dann solltest du dir die Log Dateien mal anschauen.

Lies dir bitte auch dazu mal die Erläuterung von mail() an. (siehe [Link: Registrierung erforderlich])

Kleiner Tipp, da ich raushöre dass du keinen blassen schimmer von dem oben stehenden Code hast, kopiere nicht blind einfach code..
Beachte auch die Sicherheit, die kannst du hier z.B. gar nicht gewährleisten. Man könnte Schadsoftware einlesen, "nur" über ein Textfeld.

Schreib das Dingen einmal neu - informiere dich im Netz und bastel dir deinen eigenen Code.
Da ist sehr viel Salz in der Suppe, schmeck das ganze nochmal ab Wink

Liebe Grüße
Hab dir mal im Anhang eine zip gelegt. Da ist alles drin was du für ein Formular benötigst, funktioniert auch. Du müsstest lediglich die einzelnen bereiche anpassen (Deine E-Mail Adresse etc.)

Habe dir in den jeweiligen Dateien Kommentare gesetzt.

Viel Erfolg
Ich bedanke mich recht herzlichst bei jedem hier! Hat mir sehr weitergeholfen. Vielen lieben Dank!

Ich habe noch ein Problem und finde im Netz nichts was mir richtig hilft.
Ich möchte, nachdem man im Kontaktformular auf den "Send Message" Button gedrückt hat, man auf die Startseite zurückgeleitet wird, und eine Benachrichtigung bekommt das man die e-Mail erfolgreich gesendet hat.

Hoffe mir kann hiermit jemand helfen.


Mit Freundlichen Grüßen

Benjamin Thiele
pushmessage
Referenz-URLs