Kontaktformular

03/03/2013 18:11 adistoe#1
Heyho

Ich möchte für meine Seite ein Kontaktformular machen, was soweit auch ganz gut geklappt hat.
Der einzige Fehler, wenn ich auf Senden drücke, öffnet sich bloss der Mailclient.

Code:
HTML Code:
<form action="mailto:[Only registered and activated users can see links. Click Here To Register...]" method="post" name="Formular" enctype="text/plain">
<input name="Name">
<input name="Mail">
<input name="Betreff">
<textarea name="Nachricht" cols="80" rows="10">Ihre Nachricht...</textarea>
<input type="reset" value="Felder leeren"><input type="submit" value="Senden">
</form>
Wo liegt der Fehler?
Danke schonmal für Hilfe.

Mit freundlichen Grüssen
adistoe
03/03/2013 18:26 reCougar#2
mach dir ein php script mit der mail Funktion und schieß das los beim submit
03/03/2013 18:36 adistoe#3
Hab ich mehrmals versucht, nur dass sich das Script nicht ausführen will.
Hättest du ein Beispiel?
03/03/2013 18:45 Rmark#4
PHP Code:
<?php
if(isset($_POST["submit"])){
    
$name $_POST["name"];
    
$email $_POST["mail"];
    
$betreff $_POST["betreff"];
    
$nachricht $_POST["nachricht"];
    
$header 'From: [Only registered and activated users can see links. Click Here To Register...]"\r\n" .
    
'Reply-To: [Only registered and activated users can see links. Click Here To Register...]"\r\n" .
    
'X-Mailer: PHP/' phpversion();


    
$mail mail("[Only registered and activated users can see links. Click Here To Register...]"$betreff$nachricht$header);
    if(
$mail){
        echo 
"Mail gesendet";
    }
    else{
        echo 
"Mail NICHT gesendet";
    }
}
else{
?>
<form action="#" method="post" name="Formular">
<input name="name" placeholder='Name'>
<input name="mail" placeholder='E-Mail'>
<input name="betreff" placeholder='Betreff'>
<textarea name="Nachricht" cols="80" rows="10">Ihre Nachricht...</textarea>
<input type="reset" value="Felder leeren"><input name='submit' type="submit" value="Senden">
</form>
<?php
}
?>
Ich habs jetzt nicht ausprobiert, aber als Beispiel sollte es reichen.
enctype="text/plain" muss raus sonst wird es nicht gesendet.
03/03/2013 18:56 adistoe#5
Dabei lädt er bloss die Seite neu, E-Mail kommt keine und es wird kein "Mail gesendet" angezeigt.
03/03/2013 19:16 Project Rivalry#6
nicht jeder webspace unterstützt mails vielleicht hängt es damit zusammen
03/03/2013 19:31 Rmark#7
hast du das fomular so übernommen wie ich es geschrieben habe, also enctype entfernt und dem submit button den namen submit gegeben?


<form action="#" method="post" name="Formular" KEIN enctype>
...
<input type="reset" value="Felder leeren"><input name='submit' type="submit" value="Senden">
03/03/2013 21:12 adistoe#8
Der webspace unterstützt alles nötige.

Das input name 'submit' habe ich übersehen.
Da ich am handy on bin, werde ich es morgen testen und mich dann wieder melden.

Danke schonmal.

#edit:

Habs geändert, funktioniert aber immer noch nicht.
03/06/2013 17:28 PseudoPsycho#9
Mach' aus dem
HTML Code:
<form action="#" method="post" name="Formular">
ein
PHP Code:
<?php
echo '<form action="',$_SERVER['PHP_SELF'],'" method="post" name="Formular">';
?>
03/06/2013 17:53 Mikesch01#10
Wie schaut denn der Code aktuell aus bei dir?
03/06/2013 18:16 Hiris#11
Quote:
Originally Posted by PseudoPsycho View Post
Mach' aus dem
HTML Code:
<form action="#" method="post" name="Formular">
ein
PHP Code:
<?php
echo '<form action="',$_SERVER['PHP_SELF'],'" method="post" name="Formular">';
?>
PhP_Self ist ja mal ne dicke Sicherheitslücke >_> Dann lieber einfach den Dateinamen rein ôo
03/07/2013 17:08 adistoe#12
Code aktuell:

HTML Code:
<?php
if(isset($_POST["submit"])){
    $name = $_POST["name"];
    $email = $_POST["mail"];
    $betreff = $_POST["betreff"];
    $nachricht = $_POST["nachricht"];
    $header = 'From: [Only registered and activated users can see links. Click Here To Register...]' . "\r\n" .
    'Reply-To: [Only registered and activated users can see links. Click Here To Register...]' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();


    $mail = mail("[Only registered and activated users can see links. Click Here To Register...]", $betreff, $nachricht, $header);
    if($mail){
        echo "Mail gesendet";
    }
    else{
        echo "Mail NICHT gesendet";
    }
}
else{
?>
<?php
echo '<form action="',$_SERVER['PHP_SELF'],'" method="post" name="Formular">';
?>
<input name="name" placeholder='Name'>
<input name="mail" placeholder='E-Mail'>
<input name="betreff" placeholder='Betreff'>
<textarea name="Nachricht" cols="80" rows="10">Ihre Nachricht...</textarea>
<input type="reset" value="Felder leeren"><input name='submit' type="submit" value="Senden">
</form>
<?php
}
?> 
So macht er nun gar nix mehr.
03/07/2013 17:52 Mikesch01#13
PHP Code:
<?php
if(isset($_POST["submit"])){
    
$name $_POST["name"];
    
$email $_POST["mail"];
    
$betreff $_POST["betreff"];
    
$nachricht $_POST["nachricht"];
    
$header 'From: [Only registered and activated users can see links. Click Here To Register...]"\r\n" .
    
'Reply-To: [Only registered and activated users can see links. Click Here To Register...]"\r\n" .
    
'X-Mailer: PHP/' phpversion();


    
$mail mail("[Only registered and activated users can see links. Click Here To Register...]"$betreff$nachricht$header);
    if(
$mail){
        echo 
"Mail gesendet";
    }
    else{
        echo 
"Mail NICHT gesendet";
    }
}
else{
?>
<form action="datei_dieses_scripts.php" method="post" name="Formular">
<input name="name" placeholder='Name'>
<input name="mail" placeholder='E-Mail'>
<input name="betreff" placeholder='Betreff'>
<textarea name="Nachricht" cols="80" rows="10">Ihre Nachricht...</textarea>
<input type="reset" value="Felder leeren"><input name='submit' type="submit" value="Senden">
</form>
<?php
}
?>
Da war vorher ein Fehler bei PHP_SELF, aber das sollte lieber ganz raus.
Habs für dich mal geändert. Zudem solltest du bei der Form bei action den dateinamen mitangeben.
03/07/2013 18:14 adistoe#14
öhm, also die "datei_dieses_scripts.php" verweist aber nicht auf sich selbst oder?
Oder verstehe ich da grade was falsch? Was müsste denn im Script sein?
03/07/2013 21:36 Rmark#15
Nein natürlich musst du "datei_dieses_scripts.php" durch den namen deiner php datei ersetzen.