Hilfe - Suche - Mitglieder - Kalender
Vollansicht: Kontakformular 2.0.1 + Dynamische Empfängeradresse
Forum Sefrengo.org > Downloads > Archiv > Module
bjoern
Modulname:
---------------------------------------------------------------------------
Kontaktformular
Dynamische Empfängeradresse


Bechreibung:
---------------------------------------------------------------------------
Modul "Kontaktformular":
Mit diesem Modul lässt sich schnell ein einfaches Kontaktformular auf der
Seite einbinden. Es stehen dabei einzeilige Textfelder/ Passwortfelder,
mehrzeilige Textfelder, Selectauswahlen, Radiobuttons, Checkboxen und
Dateiuploads zur Verfügung. Bestimmte Felder können als Pflichtfelder
angegeben werden. Nachdem der User auf den Senden-Button geklickt hat, wird
der Inhalt des Formulars an die angegebene Email-Adresse geschickt.

Modul "Dynamische Empfängeradresse":
Ermöglicht von einer Seite aus auf das Kontaktformular zu linken. Es kann eine
Empfängeradresse definiert werden, die von der Adresse in der Konfiguration
des Kontaktformular- Moduls abweicht.


Autor(en):
---------------------------------------------------------------------------
Björn Brockmann



Benötigte Sefrengo Version:
---------------------------------------------------------------------------
>= 01.03.01 (Sefrengo 1.4 beta2)

CODE
Changelog
------------------------------------------------------------------------------------------------

Changelog legend:
# -> Bug Fix
+ -> Addition
^ -> Change
- -> Removed
! -> Note

Current versionnumber is 02.00.01 - released 17.04.2007
------------------------------------------------------------------------------------------------
# cc and bcc emails would not send
# option save fileuploads in filemanager doesn't work
# typo in config: capture => captcha
# get emailadress by fieldnumber for email2 does not work correctly


Current versionnumber is 02.00.00 - released 16.11.2006
------------------------------------------------------------------------------------------------
+ Configtabs
+ Uploads can be saved in filemanager
+ New Mailclass
+ Possibility to send second email
+ ...many new features


Current versionnumber is 01.07.04 - released 03.01.2006
------------------------------------------------------------------------------------------------
+ Added possibility to give submitted form a different class or id


Current versionnumber is 01.07.03 - released 13.10.2005
------------------------------------------------------------------------------------------------
^ Add UTF-8 support
^ change vars: $dedi_db to $cms_db, $cfg_dedi to $cfg_cms, $dedi_side to $cms_side, $dedi_mod to $cms_mod


v 1.7.0
------------------------------------------------------------------------------------------------
+ add tpl vars {textareafromdynamic}, {textfromdynamic} - used by Modul "dynamische
Empfängeradresse"
+ possibility to set defaults for {textareafromdynamic}, {textfromdynamic}
+ new template to generate an individual emailtext
# some bugfixes


v 1.6.1 (13.3.2005)
------------------------------------------------------------------------------------------------
# Fehler bei "allow_asp_open_tag=on in der php.ini" behoben


v 1.6.2 (13.3.2005)
------------------------------------------------------------------------------------------------
# PHP- Fehler bei verschicken von Dateiuploads
# Hockommas in Label- und Formularelementattributen wurden escaped


v 1.6
------------------------------------------------------------------------------------------------
+ add field attachments
+ new templaterow mechanism

v 1.5
------------------------------------------------------------------------------------------------
+ new fields password, select, select multiple, radio, checkbox
+ error message for every single field
+ optional attributes for every single field


v. 1.01
------------------------------------------------------------------------------------------------
- fix checkboxen wurden nicht validiert
- fix checkboxfelder wurde nicht XHTML- Konform geschlosssen
- fix im Label wurden einfache Hockommas (') escaped
- fix css- Angabe für Submitbutton wurde nicht interpretiert


v. 1.0
------------------------------------------------------------------------------------------------
- fix div und fieldsetbug (Danke an Olaf)
- reply to Bug in der verschickten email behoben


v. 0.99.2
------------------------------------------------------------------------------------------------
- Absenderadresse kann nun aus einem Formularfeld generiert werden
- Es kann ausgewählt werden, ob das Formular ein fieldset enthalten soll
- Beschriftung für fieldset-legend kann angegeben werden
- Formularfelder werden mit einem label ausgestattet
- Absenderadressenbug korrigiert
- Qoutesbug bei magic_quotes_gpc = 1 behoben


v. 0.99.1
------------------------------------------------------------------------------------------------
- Es wurde keine email versendet
- Bei Pflichtfeldern, die nicht mit einem Stylesheet formatiert wurden, fehlte das ' *'
gunwalt
Das Problem, das unter geschildert, scheint erledigt.

Ein Feld scheint allerdings nicht zu versenden. Wenn man im Bereich Maileinstellungen pro Feld nur eine Emailadresse eingibt, kann das Formular 5 Mail an 5 verschiedene Empfänger verschicken. Bei mir kommen allerdings nur vier Mail an. Es fehlt die, die im Bereich Email 2 an erster Stelle stellt. Da alle Mails an den gleichen Server gehen, kann ich auschliessen, das ein Spamfilter greift.

Im Bereich Maileinstellungen zwei Tippfehler
Beeffzeile/ Subject der Email
Formulardeldnummer
bjoern
Schick mir doch bitte mal das Modul mit Deiner Konfiguration.
gunwalt
ZITAT(bjoern @ Wed. 18. April 2007, 18:23) *
Schick mir doch bitte mal das Modul mit Deiner Konfiguration.

ist unterwegs
STam
Also bei mir behebt dieser Bugfix garnix... (oder ich habe eine alte SF-Version 01.03.01 ?)
Der eigentliche Bug liegt wohl in der Datei: backend\API\UTILS\class.SF_UTILS_Mail.php
Dort wird ab Zeile:152 'to', 'cc' und 'bcc' gesetzt:
QUELLTEXT
//set to
if ( count($this->adresses['to'] > 0) ) {
    $to = implode(', ', $this->adresses['to']);
} else {
    return false;
}

//set cc              
if ( count($this->adresses['cc'] > 0) ) {
    $mime->addCc(implode(', ', $this->adresses['cc']));
}

//set bcc              
if ( count($this->adresses['bcc'] > 0) ) {
    $mime->addBcc(implode(', ', $this->adresses['bcc']));
}
...
Wenn man sich den Code anschaut sieht man es eigentlich schon...
if ( count($irgendetwas > 0) ) {} ist mal falsch!

Deswegen erzeugt die PEAR::Mail() auch nicht geschlossene (also ungültige) Cc: und Bcc:.
Das erzeugt dann bei einigen Mailservern Fehlermeldungen:
SMTP server response: 501 Bad address syntax - Postfix (wie bei diesem hier)
oder
SMTP server response: 511 sorry, you must specify a domain - Qmail

Debug von PEAR:Mail():
QUELLTEXT
mail(
'stam@lanworld.de',
'Ihre =?utf-8?Q?get=C3=A4tigten?= Eingaben',
'test: false ,
MIME-Version: 1.0 From: stam@lanworld.de Cc: Bcc: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit'
)


Bugreport hier.

Gruß
STam
Auch fehlt eine Fehlerbehandlung, was mir erst zum Schluß aufgefallen ist sad.gif
Egal ob Fehler (Mail nicht versendet!) oder nicht, es kommt immer:
ZITAT
Vielen Dank, die Daten wurden versandt


Gruß
STam
Und noch etwas... naja gehört wohl hierher.

Gruß
mrtt
Moin,

ich glaube ich hab einen Fehler im Kontaktformular 2.0.1 (SF 1.4 Final) gefunden.
Die Templatevariablen {messageblock} wird immer ausgegeben, auch wenn keine Erfolgs- oder Fehlermeldung vorliegt.
Es wäre wünschenswert, dass das Element nur ausgegeben wird, wenn wirklich eine Meldung vorliegt.

Das sieht ein wenig komisch aus, wenn im Layout auf einmal zwei Horizontale Linien <hr /> ohne Grund auftauchen (default config).

EDIT:
Selectbox: Bei einer Fehlermeldung nach dem Absenden wird die gewählte Option der Selectbox mit dem Attribut selected versehen.
XHTML-Konform wäre es, wenn dort selected="selected" stehen würde.
QUELLTEXT
<option value="Ja" selected >Ja</option>

sollte sein
QUELLTEXT
<option value="Ja" selected="selected" >Ja</option>

Sebastian
bjoern
Danke, werde ich mir für die nächste Version auf jeden Fall mal anschauen.
pawel
Ich hab mal etwas für mich geändert:

Frontend
168 //template required notice
169 var $tpl_label_required_notice = '<strong>*</strong>';

Der Asterisk wurde hervorgehoben, einmal für die Screenreader und per css hab ich auch noch Gestaltungsmöglichkeiten.

Hier mein Templatevorschlag:
{usermessage}
{formstart}
<fieldset><legend>Fragen ans uns:</legend>
{formelementblock}
</fieldset>
<p>Mit Sternchen (*) gekennzeichnete Felder m&uuml;ssen ausgef&uuml;llt werden.</p>
<p><button type="submit" id="Senden" name="Senden">Senden</button></p>
{formend}

Interssant daran ist button.
amk
button - nun interessant ... ist vielleicht warum's so selten genutzt wird!? wink.gif
saschapi
Button war mir (auch?) gar nicht geläufig. Ist aber sogar relativ Crossbrowserkompatibel. smile.gif
STam
Benutze ich ganz gerne, zumal der recht vollständigen Inhalts-Element Liste.

Gruß
pawel
Button ist semantisch nicht zu verwechseln rolleyes.gif , ein Sendebutton ist eigentlich kein Eingabefeld oder?
smail
Hab mir eben mal das Modul angesehen und es ist cool cool.gif

Ich hätte aber noch eine Frage: (vielleicht übersehe ich grad was rolleyes.gif ) was von den o.g. Problemen existiert noch und was nicht?

Gruß
Jan
mistral
bei mir funktioniert der Dateiupload auch nicht
Pate
Hallo,

ich möchte die Daten, die über das Kontaktformular gesendet werden in eine Datenbank speichern. Klappt auch soweit wunderbar, indem ich ein PHP-Script in die Seite einbinde, wo "formSubmitted" = true abgefragt wird und dann die MySQL-Abfrage ausgeführt wird.
Nur habe ich das Problem, dass, wenn Pflichtangaben-Felder ausgelassen werden, wonach die Meldung kommt "Bitte überprüfen Sie Ihre Formulareingaben: .." die Daten - logischerweise, weil formsubmitted ja auch hier "true" ist - auch schon die Datenbank gespeichert werden.
Gibt es da eine Variable, mit der ich (aus einem eingebundenen PHP-Script) den finalen transmitted-Status abfragen kann (wenn auch die E-Mail gesendet wird)?
Oder muss ich jedes Pflichtfeld einzeln überprüfen, bevor der Insert ausgeführt wird?

Gruß & Danke schonmal smile.gif
David
Hallo,

wenn ich auf Senden klicke, bekomme ich immer folgenden Fehler:
QUELLTEXT
Fatal error: Call to undefined method: pear_error->send() in .../backend/API/UTILS/class.SF_UTILS_Mail.php on line 181

Bei mir kommt Sefrengo 1.04.00 zum Einsatz, den Bugfix von Stam habe ich schon berücksichtigt, hat leider nichts gebracht...
Zugang zur Phpinfo gibt es hier.

Gruss David
muhkuh
Ich glaube auch nen Bug entdeckt zu haben. Ich wollte am Modul über die Ordnerkonfiguration ein paar Änderungen durchführen, die aber auf der Seite nicht übernommen wurden. Erst als ich die Änderungen über Design > Module > Modul konfigurieren vorgenommen hatte (mit einem Häkchen bei "Für alle Seiten übernehmen, die...") wurden diese im Frontend auch übernommen.
hylli
Ähm, hat die Seite in der Seitenkonfiguration auch das "Ordnertemplate" oder nur eben das Template mit dem Kontaktformular zugeordnet?!?

Hylli
muhkuh
Und da sag mal einer, dass man aus seinen Fehler nicht lernen kann. Jetzt muss ich zwar die halbe Seite wieder mit Inhalt füllen, aber du hast den Fehler gefunden, den ich gemacht habe, der Bug sitzt also - wieder einmal - vor dem Bildschirm.
toto
Guten Tag,

ist es möglich mit dem Formular ein Feld einzurichten wo steht. [ ] Ja, sende mir eine Kopie der Nachricht. Sodaß der Formularschreiber eine Kopie erhält?

Danke für Hilfe
Dieses ist eine vereinfachte Darstellung unseres Foreninhaltes. Um die detaillierte Vollansicht mit Formatierung und Bildern zu betrachten, bitte hier klicken.
Invision Power Board © 2001-2019 Invision Power Services, Inc.