Zum Inhalt springen
ThreadHTML5 & CSS

kontaktformular sendet nicht?

Kategorie
HTML5 & CSS
Antworten
25
Verfasst von: ehemaliges Mitglied Datum: 12.07.2011, 19:47 Uhr
Archiv-KommentarArchiviert, nicht priorisiertHTML5 & CSS

Redaktionelle Einordnung

Diese archivierte Diskussion behandelt kontaktformular sendet nicht? aus Sicht der Rubrik HTML5 & CSS.

Die Diskussion bleibt als Archiv nutzbar. Für die aktuelle Bewertung empfehlen sich ergänzend neuere Artikel, Tools oder eine konkrete Analyse.

Sinnvoll nutzbar bleibt der Thread vor allem als historischer Kontext, für typische Fragestellungen und zur Einordnung älterer Empfehlungen.

Startbeitrag

Archivierter Thread aus dem Seitenreport-Forum.

Zur Kategorie
ehemaliges Mitglied
Threadstart · HTML5 & CSS · 12.07.2011, 19:47 Uhr

Hi, da bin ich mal wieder, hab mal ein problem, hab ein kontaktformular erstellt, aber das din will nicht senden. Ich denke da brauch ich etwas hilfe.Kann mal bitte einer gucken? Danke
[html]

E-Mail: info@unternehmensberatung.de




<form action="/Kontakt senden.php" method="post" name="form1" id="form1" onsubmit="MM_validateForm('Name','','R','Post','','NisNum','E-Mail','','RisEmail','Telefon','','RisNum','Nachricht','','R');return document.MM_returnValue">

Ihre Nachricht:





Name:*






Straße,Nr.:






Postleitzahl:






Ort:






Ihre E-Mail-Adresse:*






Telefonnummer:*





Sicherheitscode 




<input name="sich" type="text" id="sich" size="10" />







</form>

 




</body>
</html>
[/html]

Antworten

10 Beiträge
matthes
Foren Moderator · Evil Genius · Content Halbgott (973 Beiträge) · 12.07.2011, 21:33 Uhr
Antwort

Hi.

Erst einmal wäre es nützlich gewesen, den Quelltext in [html]-Tags einzubetten, dann wäre er schön formatiert gewesen.
Zweitens wäre es praktisch gewesen, den ganzen nicht dazugehörenden Code wegzulassen und es auf den Teil von <form> bis </form> zu beschränken...

Das erste Problem knnte das Leerzeichen im Namen der Datei sein, an die das Formular gesendet wird. berprfe das bitte.
Das zweite Problem ist, dass beim Event "onsubmit" eine Javascript-Funktion ausgeführt wird, die Du uns vorenthältst. Ich jedenfalls kenne sie nicht - allerdings gehe ich stark davon aus, dass diese Funktion false zurück gibt, bzw. die Variable document.MM_returnValue false enthält.
Das würde das Absenden verhindern.


Make Seitenreport great again!
romacron
JDev Xer · Content Gott (1224 Beiträge) · 13.07.2011, 07:42 Uhr
Antwort

zu den Fehlern:
1. niemals Variablen oder Namen die im system zu verarbeiten sind gross schreiben.
2. keine bindestriche für variablen
3. Dateinamen klein und ohne bindestriche
4. ggf nachlesen wie sich das <label verhält
5. in formularen "kurzfunktionen" verwenden [html]validate(this,\'NisNum\'); zeigt auf eine funktion im Dateihead...so wird das alles übersichtlicher und leichter zu warten[/html]



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>


<title>Unbenannt 1</title>
<script>
/*brücke zu deiner Validation form*/
function validate(that,validationmech){
var validatedValue= MM_validateForm(that.value,\'\',validationmech);
that.value=validatedValue;
};
function validate_all(formobj){
/*alle formelemente validieren*/
/* geht oder geht nicht zurück geben*/
}
</script>
<style> <br />/*positioniert das Label element*/ <br />#form1 label { <br /> width:130px; <br /> float:left; <br />} <br />/*entwertet floatings dann fängt die nächste label-inputzeile neu an*/ <br />#form1 div { <br /> clear:left; <br />} <br /></style>
</head>

<body>

E-Mail: info@unternehmensberatung.de




<form action="kontaktsenden.php" method="post" name="form1" id="form1" onsubmit="validate_all(this);">


<textarea name="nachricht" cols="45" rows="7" id="nachricht"></textarea>


<input name="name" type="text" id="name" onblur="validate(this,\'R\');" size="35" />


<input name="strasse" type="text" id="strasse" size="35" />



<input name="plz" type="text" id="plz" onblur="validate(this,\'NisNum\');" size="35" />



<input name="ort" type="text" id="ort" size="35" />



<input name="email" type="text" id="email" onblur="validate(this,\'RisEmail\');" size="35" />



<input name="telefon" type="text" id="telefon" onblur="validate(this,\'RisNum\');" size="35" />

Sicherheitscode 




<input name="captcha" type="text" id="captcha" size="10" />




</form>

</body>
</html>

gelöschter Benutzer · 14.07.2011, 10:56 Uhr
Antwort

@romacron
@all

Ich hab versucht soweit das meine Fähigkeiten zulassen die Fehler auszubügeln. Dein Skript überfordert mich etwas.

Ich bin nun soweit das das Kontaktformular an mich sendet, aber es kommt leider nur der Feldname an, aber kein Inhalt. Ich brauch bitte noch mal Hilfe.





Name:

Name:

Name:

Name:

Name:

Name:

Name:


Noch mal meine html:

<form action="/kontaktsenden.php" method="post" name="form1" id="form1" onsubmit="MM_validateForm(\'Name\',\'\',\'R\',\'Post\',\'\',\'NisNum\',\'E-Mail\',\'\',\'RisEmail\',\'Telefon\',\'\',\'RisNum\',\'Nachricht\',\'\',\'R\');return document.MM_returnValue">

Ihre Nachricht:





Name:*






Straße,Nr.:






Postleitzahl:






Ort:






Ihre E-Mail-Adresse:*






Telefonnummer:*





Sicherheitscode 




<input name="sicherheitscode" type="text" id="sicherheitscode" size="10" maxlength="5" />







</form>

 




</body>
</html>

gelöschter Benutzer · 14.07.2011, 19:44 Uhr
Antwort

....so ich hab mich weiter gekämpft...ich hab jetzt das ding zum senden gebracht....hurra....nun bockt er wenn ich die captcha einfüge. die captcha ist ok...denke das liegt an der senden.php..bitte mal gucken.

<?php

session_start();
if(isset($_SESSION[\'captcha_spam\']) AND $_POST["sicherheitscode"] == $_SESSION[\'captcha_spam\']){
unset($_SESSION[\'captcha_spam\']);

/* Betreff und Email Variable */

$emailBetreff = \'Unternehmensberatung\';
$webmaster = \'xxxxxxxxxxxxx@gmx.de\';

/* email formdaten */

$nameFeld = $_POST[\'name\'];
$nachrichtFeld = $_POST[\'nachricht\'];
$strasseFeld = $_POST[\'strasse\'];
$plzFeld = $_POST[\'plz\'];
$emailFeld = $_POST[\'email\'];
$telefonFeld = $_POST[\'telefon\'];
$ortFeld = $_POST[\'ort\'];

$body = <<<EOD <br />
Name: $nameFeld
Nachricht: $nachrichtFeld
Strasse: $strasseFeld
PlZ: $plzFeld
Email: $emailFeld
Telefon: $telefonFeld
Ort: $ortFeld
EOD;

$headers = "From: email\\r\\n";
$headers .= "Content-type: text_html\\r\\n";
$headers = mail($webmaster, $EmailBetreff, $body, $headers);


echo "Ihre Nachricht wurde versendet!";

}
else{
exit("Der Sicherheitscode ist falsch!!!");
}


?>

gelöschter Benutzer · 16.07.2011, 17:44 Uhr
Antwort

@all

mein Kontaktformular müsste jetzt ok sein und mein captcha(Bild,Code) auch. Aber wenn ich in die kontaktsenden.php den captchabefehl einfüge:

(session_start();
if(isset($_SESSION[\'captcha_spam\']) AND $_POST["sicherheitscode"] == $_SESSION[\'captcha_spam\']){
unset($_SESSION[\'captcha_spam\']);

funktioniert das senden nicht mehr.Ohne geht top. Kann das an Webservereinstellungen liegen?? globel_off??

matthes
Foren Moderator · Evil Genius · Content Halbgott (973 Beiträge) · 16.07.2011, 20:56 Uhr
Antwort

Nein, an "globel_off" liegt es sicherlich nicht, denn Du verwendest die korrekten Variablen.

Wird $_SESSION[\'captcha_spam\'] denn auf der Seite vorher korrekt gefüllt? Und ist $_POST[\'sicherheitscode\'] korrekt benannt und entspricht dem in der Session gespeicherten Code?

Lass Dir die Variablen $_SESSION und $_POST in der kontaktsenden.php einmal ausgeben. Z.B.:
<?php
echo \'

\';

print_r($_SESSION);
print_r($POST);
echo \'

\';
?>


Make Seitenreport great again!
gelöschter Benutzer · 17.07.2011, 10:55 Uhr
Antwort

Erst mal danke das sich wenigstens einer bemüht zu helfen.-)

So hab ich gemacht und wird alles ausgegeben was ich ausgefüllt habe und der Sicherheitscode auch korrekt. Aber sendet nicht?

Array
(
)
Array
(
[nachricht] => 55555555555555
[name] => 5555555555555
[strasse] =>
[plz] =>
[ort] =>
[email] => keien@gmx.de
[telefon] => 3333
[sicherheitscode] => 4DK8X
[Senden] => Senden
)

matthes
Foren Moderator · Evil Genius · Content Halbgott (973 Beiträge) · 17.07.2011, 11:09 Uhr
Antwort

Das erste Array, die Session, ist anscheinend leer. Also speicherst Du den Sicherheitscode nicht korrekt in der Session, ergo stellt die berprfung bei dem Vergleich fest, dass es nicht stimmt.
$_SESSION[\'code\']==$_POST[\'code\']
leer == 4DK8X


Wie speicherst Du den Code denn in der Session? Befindet sich in der Formulardatei auch ein session_start()?


Make Seitenreport great again!
gelöschter Benutzer · 17.07.2011, 14:08 Uhr
Antwort

Ich hoffe das ich dich jetzt richtig verstanden. Nein kein session. Ich hab dem Kontaktformular im Formularelement über Aktion die kontaktsenden.php zugeordnet.

............ <form action="/kontaktsenden.php" method="post" name="form1" id="form1" onsubmit="MM_validateForm(\'name\',\'\',\'R\',\'plz\',\'\',\'NisNum\',\'email\',\'\',\'RisEmail\',\'telefon\',\'\',\'RisNum\',\'sicherheitscode\',\'\',\'R\',\'nachricht\',\'\',\'R\');return document.MM_returnValue">

Ihre Nachricht:


matthes
Foren Moderator · Evil Genius · Content Halbgott (973 Beiträge) · 17.07.2011, 16:13 Uhr
Antwort

Hast du nicht.

Wo weist du $_SESSION[\'captcha_spam\'] einen Wert zu?
Dies müsste in der Datei geschehen, die das Formular anzeigt oder in der Datei, die den Code generiert. Momentan ist $_SESSION[\'captcha_spam\'] leer, darum funktioniert es nicht.


Make Seitenreport great again!