Page 1 of 1

Kontaktformular bringt beim ersten Absenden Fehler

Posted: Tue Sep 15, 2015 2:44 pm
by MarioH
Hallo!

Ich habe ein Problem mit dem Plugin Kontaktformular. Ich nutze das Plugin mit einer individuellen Feldkonfiguration. Beim ersten "Kommentar abschicken" bekomme ich folgende Meldungen.
Name, E-Mail und ihre Nachricht dürfen nicht leer gelassen werden.


Ihr Kommentar enthielt keinen gültigen Session-Hash. Kommentare auf diesem Blog können nur mit aktivierten Cookies hinterlassen werden, und Sie müssen bereits eine weitere URL des Blogs geöffnet haben, bevor Sie einen Kommentar absenden können!
Ich habe aber alle Felder ausgefüllt und das Feld "ihre Nachricht" habe ich nicht. Wenn ich jetzt nochmal, ohne etwas zu ändern, auf "Kommentar abschicken" klicke, wird das Formular ohne Fehler abgeschickt.

Was kann das sein?

Gruß
Mario

Re: Kontaktformular bringt beim ersten Absenden Fehler

Posted: Tue Sep 15, 2015 2:52 pm
by Timbalu
Ich würde sagen
Ihr Kommentar enthielt keinen gültigen Session-Hash. Kommentare auf diesem Blog können nur mit aktivierten Cookies hinterlassen werden, und Sie müssen bereits eine weitere URL des Blogs geöffnet haben, bevor Sie einen Kommentar absenden können!
das sagt alles, oder?!
Ansonsten müsstes du mir mal die url zum herumspielen geben.

Re: Kontaktformular bringt beim ersten Absenden Fehler

Posted: Tue Sep 15, 2015 3:19 pm
by MarioH
Cookies sind aktiv und ich rufe das Formular von einer statischen Seite aus auf. Schicke dir die URL mal als PN.

Re: Kontaktformular bringt beim ersten Absenden Fehler

Posted: Tue Sep 15, 2015 3:39 pm
by Timbalu
Ok. Das Problem ist nicht die session oder fehlende cookies.
Das Problem ist wohl, dass du kein body Textfeld hast. Dafür ist das Plugin mit seinen Prozeduren sicher nicht ausgelegt. :)

Re: Kontaktformular bringt beim ersten Absenden Fehler

Posted: Tue Sep 15, 2015 3:42 pm
by MarioH
Muss das Feld zwingend "Body" heissen?

Gruß
Mario

Ich habe jetzt noch ein Body-Feld eingefügt, es kommt immer noch die oben genannte Meldung. Das Formular lässt sich immer nur aus der "index.php#feedback"-Seite abschicken.

Re: Kontaktformular bringt beim ersten Absenden Fehler

Posted: Tue Sep 15, 2015 4:03 pm
by Timbalu
Nein nicht unbedingt, aber soetwas

Code: Select all

<textarea rows="10" cols="40" id="serendipity_commentform_comment" name="serendipity[comment]">{$commentform_data}</textarea>
Das dynamicform löst das über

Code: Select all

                 {elseif $field.type == "textarea"}
                     <textarea rows="10" cols="40" id="serendipity_commentform_{$field.id}" name="serendipity[{$field.id}]">{$field.default}</textarea><br />
                 {else}
                     <input type="text" id="serendipity_commentform_{$field.id}" name="serendipity[{$field.id}]" value="{$field.default}" size="30" />
                 {/if}
was wohl bedeutet, dass es nicht unbedingt eine textarea sein muss. Aber es wird im Standard Fall auf

Code: Select all

!empty($serendipity['POST']['comment'])
gecheckt, womit festgelegt wird, dass das Feld mindestens

Code: Select all

name="serendipity[comment]"
enthalten muss.

Der dynamicform check ist ein wenig komplizierter und bildet $comment aus

Code: Select all

$comment = $comment. "\nField  '" . $field['name'] . "': " . $serendipity['POST'][$field['id']];
was wohl mindestens

Code: Select all

name="serendipity[{$field.id}]"
bzw das was du als field.id bestimmt hast voraussetzt. Aber ich müsste auch erst per Einzelfall debuggen, ob das wie gewünscht auch richtig funktioniert.

Edit. kommt denn der second try wirklich mit allen Inhalten als Mail an?

Re: Kontaktformular bringt beim ersten Absenden Fehler

Posted: Tue Sep 15, 2015 4:18 pm
by MarioH
Ja, der Mailtext kommt komplett mit allen Feldern an.

Ich habe das benutzerdefinierte Formular im Plugin gewählt und die nachfolgenden Einstellungen für die Felder gemacht. (Die Felder "comment" und "email" habe ich nochmal zu Testzwecken hinzugefügt).
comment.jpg
comment.jpg (151.48 KiB) Viewed 7559 times

Re: Kontaktformular bringt beim ersten Absenden Fehler

Posted: Tue Sep 15, 2015 4:25 pm
by Timbalu
Wenn ich das richtig deute, und du das dynamicform benutzt, musst du darauf achten, dass die $field['required'] Felder richtig gesetzt sind (das ist in den Optionen des Spamblock Plugins).

Ebenso müssen nach dem ersten Absenden alle required field Felder im $serendipity['POST'][$field['id']] und $_POST[$field['id']] ausgefüllt sein. Da scheint irgend etwas nicht zu stimmen. Vielleicht kannst du das selber debuggen, in dem du vor dieser Zeile https://github.com/s9y/additional_plugi ... m.php#L292 ein

Code: Select all

echo '<pre>';print_r($serendipity['POST']);echo '</pre>'; 
einfügst.

Re: Kontaktformular bringt beim ersten Absenden Fehler

Posted: Tue Sep 15, 2015 4:33 pm
by Timbalu
Ach ja, das dynamicform hatte eigene required Felder. Hoffentlich spukt da nicht auch noch das Spamblock Plugin dazwischen.

Dampf das ganze mal ein... siehe Beispiel
require;Name;text:require;E-Mail;text:require;Homepage;text:require;Nachricht;textarea;

Besonders an der Stelle, wo du statt Einwortnamen mehr Wörter mit Leerzeichen und Umlauten verwendest. Vielleicht ist es genau das.

Edit: Ich kann mir gut vostellen es ist dies

Code: Select all

name="serendipity[telefonnummer_f__r_r__ckfragen]"
In diesem Fall müsste das required form field wahrscheinlich so

Code: Select all

require;telefonnummer_f__r_r__ckfragen;text;
lauten. Besser wäre es allerdings gar keine Umlaute und nur Einwortnamen zu verwenden.

Re: Kontaktformular bringt beim ersten Absenden Fehler

Posted: Tue Sep 15, 2015 9:20 pm
by MarioH
Es ist definitiv das Spamblock Plugin, das den Fehler produziert. Wenn ich es deaktiviere, funktioniert das Formular.

Re: Kontaktformular bringt beim ersten Absenden Fehler

Posted: Wed Sep 16, 2015 9:30 am
by Timbalu
Nunja - deaktivieren ist "vollständig auf Schutz" zu verzichten. Das muss aktiviert bleiben!

Aber du kannst die voreingestellten required fields dort löschen und sehen, ob sie es sind die mitwirken. (Das wäre allerdings nicht so gut, da sie auch zb für die Kommentarfelder benuzt werden, glaube ich...)

Ansonsten ist es bestimmt eher das von mir im Edit benannte Telefon Feld.