kein mailversand mit w3concepts.form.v1

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

was das script macht, ist relativ einfach:

(1) es wird geprüft, ob das formular überhaupt versendet worden ist. falls nicht, wird das formular ausgegeben.

(2) wenn das formular versendet worden ist, wird geprüft, ob alle felder richtig ausgefüllt worden sind. falls das nicht der fall sein sollte, wird das formular erneut ausgegeben mit fehlermeldungen (farblich hinterlegte felder).

(3) wenn die zweite prüfung erfolgreich war, wird der emailversand durchgeführt.

das heisst eigentlich nichts anderes, als dass - wenn keine fehlermeldung erscheint - aus sicht des scriptes keine beanstandungen vorliegen und der email-versand durchgeführt wird. es ist natürlich nicht ausgeschlossen, dass es noch zeichen gibt, die einen versand zu unterdrücken vermögen.

bei mir funktioniert es allerdings immer. ich kann leider die auftretenden fehler leider nicht reproduzieren.

wenn beim email-versand probleme auftauchen sollten, dann müsste sich der fehler in der methode 'sendEmail()' finden (repektive in den methoden, welche von dieser methode aufgerufen werden).

hope this helps!

gruss,
andreas
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
dhbujack
Beiträge: 8
Registriert: Mo 20. Sep 2004, 08:51
Wohnort: Berlin
Kontaktdaten:

Beitrag von dhbujack »

Hallo Andreas,

nun hatte ich noch etwas Zeit um zu probieren und ganz klar, wie Du geschrieben hast, wird natürlich das fehlerhafte Feld nach der Validierung farbig unterlegt.

Nur da liegt das Problem. Ich hatte zwar die eMail-Adressen eingerichtet, das Feld für die Fehler-Farbe jedoch freigelassen. Somit kann natürlich auch keine Fehlersignalisierung stattfinden. Vielleicht ist es sinnvoll, dort von Hause eine Farbe als Vorschlag (mit Value vermutlich) vorzulegen. Ich schätze, die anderen hier haben den selben Fehler begangen und somit das Problem nicht erkannt.

Bleibt noch das Problem mit dem 'Enter' in der Textarea. Wie wird denn das 'Enter' bzw. mit welchem Zeichen wird es vom Script verschickt? Würde wenn es geht dann einen neuen Valid-Typ z.B. 'Textarea' oder 'Textfeld' definieren, in dem dann das 'Enter' vorkommen darf.
Ist dieses möglich?

Gruß aus Berlin

Daniel
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

hallo daniel

du solltest im script folgenden block finden:

Code: Alles auswählen

// regular expression prüfungen
if (!empty($feld['valid']) && $feld['valid'] == 'simpletext' && !eregi("^[ öäüéàèâêîça-z0-9-]*$",$_POST["{$feld['name']}"])) return false;
if (!empty($feld['valid']) && $feld['valid'] == 'text' && !eregi("^[ .,;!?()öäüéàèâêîça-z0-9-]*$",$_POST["{$feld['name']}"])) return false;
if (!empty($feld['valid']) && $feld['valid'] == 'integer' && !eregi("^[0-9]*$",$_POST["{$feld['name']}"])) return false;
if (!empty($feld['valid']) && $feld['valid'] == 'float' && !eregi("^[0-9]*[.]{0,1}[0-9]*$",$_POST["{$feld['name']}"])) return false;
if (!empty($feld['valid']) && $feld['valid'] == 'date' && !eregi("^[0-9]{1,2}.[0-9]{1,2}.[0-9]{2}$",$_POST["{$feld['name']}"])) return false;
if (!empty($feld['valid']) && $feld['valid'] == 'email' && !eregi("^[öäüéàèâêîç_a-z0-9-]+(\.[öäüéàèâêîç_a-z0-9-]+)*@[öäüéàèâêîça-z0-9-]+(\.[öäüéàèâêîça-z0-9-]+)*$",$_POST["{$feld['name']}"])) return false;
diesem block kannst du noch folgende prüfung hinzufügen:

Code: Alles auswählen

if (!empty($feld['valid']) && $feld['valid'] == 'textarea' && !eregi("^[ öäüéàèâêîça-z0-9-\n\r]*$",$_POST["{$feld['name']}"])) return false;
dann solltest du wie gewünscht eine validierung für textarea zur verfügung haben.

hope this helps.

gruss,
andreas
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
dhbujack
Beiträge: 8
Registriert: Mo 20. Sep 2004, 08:51
Wohnort: Berlin
Kontaktdaten:

Das war leider nix ...

Beitrag von dhbujack »

Hallo Andreas,

so dachte ich es mir auch, war mir mit dem \n\r aber nicht sicher. Habe es jetzt mal implementiert, aber leider akzeptiert das Script jetzt keinerlei Eingabe in das Feld. Keine Buchstaben, keine Zahlen ... nichts.

Muß man das vielleicht noch irgendwie in Klammern setzen? Da fehlen dann meine PHP-Kenntnisse. Meine beiden schlauen PHP-Bücher, schreiben auch nur das \ als Vorsatz für Sonderzeichen vor.

Ratlosigkeit ....

Daniel
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

sorry, war mein fehler. ein \ dient als escape-zeichen in php und ein \ braucht die regexprüfung. also braucht es wahrscheinlich deren zwei. probier mal folgende prüfunge aus:

Code: Alles auswählen

if (!empty($feld['valid']) && $feld['valid'] == 'textarea' && !eregi("^[ öäüéàèâêîça-z0-9-\\n\\r]*$",$_POST["{$feld['name']}"])) return false;
vielleicht geht's damit.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
dhbujack
Beiträge: 8
Registriert: Mo 20. Sep 2004, 08:51
Wohnort: Berlin
Kontaktdaten:

Beitrag von dhbujack »

Hallo Andreas,

Nee, damit gehts auch nicht. Schade. Habe auch noch andere Varianten "probiert", komme aber auf keinen Nenner. Leider gibt meine Literatur hierzu kein Beispiel.

Soll es nur die Möglichkeit geben, daß man keine Textarea einsetzt oder den User darum bittet, keinen Zeilenumbruch einzufügen?

Gruß aus Berlin

Daniel
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

ich schaue mir das ganze nochmals an und gebe dann hier bescheid. ich bin im moment allerdings in bisschen unter druck. es könnte also schon ein paar tage dauern.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
Gesperrt