• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Kontakt Formular ergibt Fehler

frankbackes

Neues Mitglied
Hallo,

Mein Name ist Frank.

Ich habe für eine gemeinnützige Firma ein Kontakt Formular zweckentfremded um daraus ein Formular zu erstellen mit dem man sich einschreiben kann. Letztendlich macht es das gleiche wie ein Kontaktformular, es nimmt Daten über das HTML auf wo der Besucher seine Informationen in die Felder einträgt anschliessend werden die Daten von einem php mailer script abgeholt und per POST an eine email adresse versendet in deren Email From, Subject und Body die Informationen von dem HTML übergeben werden.

Nun ich nutze dieses Formular in abgespeckter Form bereits als normales Kontaktformular, dort funktioniert es auch einwandfrei mit 3 Feldern und einer Textbox. Nun habe ich es auf 19 Felder + Textbox erweitert und es funktioniert nicht mehr. (Edit nach bdt600's Beitrag: Die Mail wird nicht versendet und die Fehlermeldung die in meinem Beitrag drunter erwähnt wird erscheint)

Ich bin bischen am rätseln warum es nun nicht mehr funktioniert und ich würde mich echt freuen wenn jemand mir helfen könnte, da ich nicht vorrankomme.


Vielen Dank für eure Hilfe im Voraus.

MfG Frank

P.s.: Die Texte der HTML und der PHP Dateien sind auf Französisch, wenn das ein Problem darstellen sollte, was ich nicht denke, dann kann ich sie gerne Temporär für euch auf Deutsch übersetzen.
 
Zuletzt bearbeitet:
es funktioniert nicht mehr.
Das ist keine Problembeschreibung.
Außerdem wäre es besser, wenn du den relevanten Quellcode hier postest. Das Downloaden von fremden Dateien wird nicht gerne gemacht.

Richtig debuggen

1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
 
Hallo,

Entschuldigung, das war wirklich eine sehr schlechte Fehlerbeschreibung meinerseits.

Doch liegen mir auch nicht viel mehr Informationen vor.

Es kommt folgende Fehlermeldung und die Mail wird halt auch nicht versendet:
Nous sommes désolés, il semble qu´il y a une/des erreur/s dans le formulaire que vous avez transmis

Voici la liste des erreurs apparues.


Nous sommes désolés, le formulaire que vous avez transmis semble avoir un problème, veuillez nous contacter par email". Merci

Veuillez retourner et corriger le/s erreur/s.

Da es sich bei diesen Sätzen aber um meine eigenen handelt, lese ich die passenden Zeilen im Script dazu aus was mir aber nur die Info gibt dass das Skript einen Fehler gemacht hat und mehr nicht.

Ich bin kein HTML Profi und habe das mit deinen Empfehlungen unter Punkt 2 und 3 so umgesetzt dass ich gleich am Anfang hinter das <?php deine Zeilen geschrieben habe was dann so aussieht:
PHP:
<?php

ini_set('display_errors', true);

error_reporting(-1);




if(isset($_POST['email'])) {


Doch nach erneutem Ausführen kommt immer noch das gleiche, wo sehe ich diese Debug Info? Denn auf dem Plesk Panel in dem error.log ist nichts zu sehen.

Zu dem Codeden ich als Anhang gesendet habe, bitte um Verzeihung, ich wusste nicht dass man das nicht so macht aber beim jetztigen Versuch ihn hier als Code einzusetzen wurde mir mitgeteilt dass der Code zu lang ist.

MfG Frank
 
Zu dem Codeden ich als Anhang gesendet habe, bitte um Verzeihung, ich wusste nicht dass man das nicht so macht aber beim jetztigen Versuch ihn hier als Code einzusetzen wurde mir mitgeteilt dass der Code zu lang ist.

Du sollst ja auch keinen Roman posten, sondern nur den wesentlichen Code. Das wäre dann wohl die Mailerklasse in Kombination mit dem dazugehörigen HTML.

Als Tipp am Rande: Nimm das ursprünglich funktionierende Formular mit den drei Feldern und ergänze es um ein viertes. Funktioniert das, baue es stückweise weiter aus. Ansonsten kannst du gleich nach dem Fehler suchen.
 
Welches von den Scripten ist denn relevant? contact.html und phpmailer.php oder incription.html und phpmailer_inscription.php

Fehler gefunden:
name="code_posatle_societe"
$_POST['code_postale_societe']
 
Zuletzt bearbeitet von einem Moderator:
@Tronjer
Das problem ist dass ich nicht weiss welche stellen relevant sind. Das ist als würdest du einem Patienten sagen sagen sie mir bitte nur die Stellen die wichtig für mich sind. Ich kann nicht unterscheiden was wichtig ist, wie gesagt ich bin kein profi und wende mich desswegen an euch, die sich damit auskennen.

Ok das werde ich tun. Ich habe es auch ausgehend von dem contact.html erstellt und dann Zeile für Zeile ergänzt nur habe ich ich nicht immer wieder getestet.

@bdt600
Die contact.html und phpmailer.php gehören zusammen und sind die die funktionieren die inscription.html und phpmailer_inscription.php gehören zusammen und dort liegt das Problem also sind diese beiden letzten relevant.

Derzeit habe ich noch nicht für alle felder definiert welche Zeichen zulässig sind, sprich derzeit sind laut meinem Verständniss:

Für die Felder Email und Email Société sind es diese (Zeile 128 in phpmailer_inscription.php):

PHP:
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';

und für alle anderen Felder ausser dem Textfeld namens formations sind es diese (Zeile 142 in phpmailer_inscription.php):

PHP:
 $string_exp = "/^[A-Za-z .'-]+$/";

Damit will ich sagen dass ja eigentlich für die Felder wie téléphone (Telefon) und Code-postale (PLZ), dort sollen ja nur Zahlen zugelassen sein, noch andere Sets definiert werden müssen was ich aber noch nachschlagen muss wie die syntax davon ist. Es kann ja nicht daran liegen, denn ich habe zum testen einfach nur abcdefg in jedes Feld ausser den Email Feldern eingetragen. Demnach müssten die Kriterien ja erfüllt sein.

MfG Frank
 
Oh Mensch, nun habe ich tatsächlich 2 Personen generft mit x Zeilen hin und her geschreibe und das nur wegen eines Buchstabendrehers wo ich auch noch selbst zu blind war ihn selbst zu sehen.

Auf jedenfall vielen dank. Ich habs gerade getestet und es passt.

Kannst du mir vieleicht sagen wie ich das mit den char sets machen muss damit nur Zahlen im Feld zugelassen sind.

Wäre das dann so?:
PHP:
$string_exp = "[0-9]";

MfG Frank
 
Ok ich les mir das mal durch und hoffe ich verstehe was ich da lese.

auf jeden Fall ein ganz dickes DANKESCHöN
Ich wünsche dir einen schönen Tag.

MfG Frank
 
Zurück
Oben