mod_contact mit Captcha

Diskussion zum Modul Kontakt für ConPresso 4
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 02:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal

mod_contact mit Captcha

Beitrag von Matthias V »

Da ich in letzter Zeit Probleme mit Spam (spambots) beim Kontakt-Modul habe, habe ich es, wie auch das mod_comment gepimpt und ein Captcha eingebaut.

Benutzt einfach die Dateien aus dem Anhang (nach vorheriger Sicherung des alten Modulverzeichnisses und der Datenbank).
Die neuen Dateien müssen also nur drüberkopiert werden, d.h. ist keine Neuinstallation nötig.

Im Template (Artikelseite) müsst ihr folgendes angeben, wenn ihr das Modul nicht neu installiert:

Code: Alles auswählen

<!-- ifSet: captcha; --> <tr><td>Prüfcode:</td><td><!-- /ifSet -->
<!-- ifSet: Captcha_error; --><font color="red"><!-- Contact: Captcha_error; --></font><br><!-- /ifSet -->
<!-- ifSet: captcha; --> <!-- Contact: captcha; type=image; --><br /> Trage bitte den Prüfcode aus der Grafik ins Textfeld ein.</td></tr><!-- /ifSet -->
Die <!-- ifSet: captcha; --> bewirken, dass keine Tabellenzeile ausgegeben wird, wenn NUR das Template geändert wird und nicht die neuen Dateien im entsprechenden Verzeichnis liegen.

In der _includes/index.inc.php findet ihr die folgende Zeile (Zeile 209), wo ihr die Fehlermeldung bei falschem/fehlendem Chaptcha angeben könnt:

Code: Alles auswählen

$captcha_error = 'Der eingegebene Prüfcode ist falsch!';
Alternativ kann man im Template eine eigene Fehlermeldung zwischen <!-- ifSet: Captcha_error; --> schreiben:

Code: Alles auswählen

<!-- ifSet: Captcha_error; --><font color="red">Eigene beliebige Fehlermeldung</font><br><!-- /ifSet -->


im Modulverzeichnis findet ihr das Bild _includes/captcha/captcha.png welches ihr durch die anderen Beispielbilder ersetzen kännt, oder ihr erzeugt euch ein eigenes Bild dieser Größe mit diesem Namen.

In der Datei _includes/captcha/captcha_config.php könnt ihr Farben und andere Parameter der Chaptchas anpassen.

Parameter für den Platzhalter <!-- Contact: captcha; --> :
- type=image; gibt ein Bild-Captcha aus (dies ist der Standard-Typ)
- type=calc; gibt ein Rechen-Captcha aus

- image; gibt nur das Captcha-Bild aus.
- input; gibt nur das Eingabe-Feld aus.
- noimage; Gibt den Inhalt des Captcha's als reinen Text aus (bei type=image; und type=calc;).

- size=...; Size des input-Feldes
- maxlength=...; Maxlength des input-Feldes
- tabindex=...; Tabindex des input-Feldes
- accesskey=...; Accesskey des input-Feldes
- class=...; CSS-Klasse des input-Feldes

Weitere kleine Verbesserungen des Moduls:
- Deaktivierung ist jetzt möglich
- Platzhalter <!-- Contact: Recipient; --> ist vorhanden, um bei der E-Mail oder der Bestätigungsseite den Empfänger-Namen anzugeben
- Platzhalater <!-- ifSet: Recipientfield; --> funktioniert im Formular, damit man bestimmte Teile nicht ausgeben muss, wenn bei einem eingestellten Empfänger keine Auswahlbox ausgegeben wird. (Nach weiteren Tests habe ich gemerkt, dass diese Option doch nicht so toll funktioniert)
- Beim Inhalt der Textareas werden Zeilenumbrüche in <br /> umgewandelt (nl2br)
- Standardsprache ist deutsch

Viel Spaß damit
Matthias V

Edit 08.12.2007:
Marky hat mich überredet, einen extra Platzhalter für die Captcha-Fehlermeldung anzulegen. Modul ist also aktualisiert und obiger Text angepasst.
Neuerung: Bei der Installation befinden sich die Captcha-Platzhalter bereits im Template.
Bis heute wurde das angepasste Modul 236 mal heruntergeladen!!
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Matthias V am 08.12.2007 03:59, insgesamt 14-mal geändert.
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 02:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal

Beitrag von Matthias V »

Für alle (4), die sich das Archiv schon runtergeladen haben:
ich habe es aktualisiert, da die Option noimage; im Template nicht richtig funtionierte.

Gruß Matthias V
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Gandalf
ConPresso-Checker
Beiträge: 108
Registriert: 01.01.1970 02:00
Hat sich bedankt: 6 Mal
Danksagung erhalten: 5 Mal

Beitrag von Gandalf »

Hallo Matthias,

nachdem nun auf meiner HP auch die Spambots regen Gebrauch mit dem Kontaktformular gemacht hatten, habe ich die Captchaerweiterung von Dir eingebunden, danke.

Eine Frage dazu habe ich jedoch, in der "Originalversion" habe ich als Emailabsender vom Anfragendem seine Emaildaresse erhalten. Nun bekomme ich als Absender: "WWW daemon apache" und nicht mehr wie vorher z.B. "Klaus.Fischer@t-gedoehns.com"

Wo muss ich denn da was anpassen?

Gruß Gandalf
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 02:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal

Beitrag von Matthias V »

Hallo Gandalf,

ich habe da eigentlich nichts geändert. Eigentlich müsste es funktionieren.
Du kannst ja mal in der mod_contact/_includes/index.inc.php nach allen Vorkommen von "mail(" und "$mail_value" suchen. Denn im Mail-Header wird der $mail_value als Absender innerhalb der Funktion mail() gesetzt.

Du kannst das ja mal mit der Version vergleichen, die du vorher hattest, denn die Version, die ich zur Grundlage gesetzt habe, in der hat es wahrscheinlich auch nicht funktioniert.

Gruß Matthias V
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Gandalf
ConPresso-Checker
Beiträge: 108
Registriert: 01.01.1970 02:00
Hat sich bedankt: 6 Mal
Danksagung erhalten: 5 Mal

Beitrag von Gandalf »

Hallo Matthias,

habe den Bug gefunden, in der Datei mod_contact\includes\index.inc.php in Zeile 255 steht:

Code: Alles auswählen

 $mail_header  = "From:".$mail_value."\n";
hier muss der _ aus der Variablen entfernt werden, also:

Code: Alles auswählen

 $mailheader  = "From:".$mail_value."\n";
und schon klappt es mit der richtigen Absenderadresse, hoffe nicht noch mehr Bugs in "Deiner Version" vorzufinden 8)

Bis dahin, Gruß Gandalf
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 02:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal

Beitrag von Matthias V »

Hallo Gandalf,

danke, dass du den Fehler gefunden hast, das ist mir so gar nicht aufgefallen.

Ich habe oben die Datei aktualisiert, so dass der Fehler jetzt raus ist.
Gandalf hat geschrieben:... hoffe nicht noch mehr Bugs in "Deiner Version" vorzufinden 8)
Aber es liegt nicht an mir, ich habe diesen Fehler aus der Version übernommen, die ich bei semf heruntergeladen habe. An dieser Stelle habe ich nichts verändert.

Gruß Matthias V
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Benutzeravatar
baluo
ConPresso-Experte
Beiträge: 607
Registriert: 14.11.2005 13:17
Hat sich bedankt: 216 Mal
Danksagung erhalten: 11 Mal

mod_contact als rubrik ?

Beitrag von baluo »

ich habe heute erfolgreich das mod_contact installiert und angepasst, und bin rainer und matthias fuer das modul selbst und die captcha-ergaenzung sehr dankbar (http://www.jakobus-gemeinde-karlsruhe.de/mod_contact/, noch nicht in der nav verlinkt).

zwei fragen habe ich noch:
* um es in der nav zu verlinken, sollte es ja als cpo-rubrik erscheinen ... tut es aber nicht? ist das so, oder hab eich etwas falsch gemacht?
* kann ich dieses modul - z.b. per inline - auch in anderen rubriken der website einsetzen oder gibt es eine andere moeglichkeit ?

danke, gerhard
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 02:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal

Beitrag von Matthias V »

Damit das Modulverzeichnis als Rubrikverzeichnis erscheint, musst du einfach die Datei rubric.cpo aus einem anderen Rubrikverzeichnis in das Modulverzeichnis legen. Am besten, du gibst dann niemand die Rechte in dieser Rubrik Artikel zu erstellen.

Ich habe dies bei mir auch über eine extra angelegte Rubrik gemacht.
Zusätzlich habe ich 4 - Email-Empfänger als externe URL unter diese Rubrik in die Navigation gehangen.

Und noch ein Tipp: Erstelle dir doch eine captcha.png in den Farben der Webseite. So wirkt die Ganze Seite mehr wie aus einem Guss. Dieses grüne Bild passt nur bedingt zu der Webseite.
Ich habe es bei mir auch auf der CVJM-Webseite farblich angepasst.

Gruß Matthias V
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Benutzeravatar
baluo
ConPresso-Experte
Beiträge: 607
Registriert: 14.11.2005 13:17
Hat sich bedankt: 216 Mal
Danksagung erhalten: 11 Mal

Beitrag von baluo »

hallo matthias,
Matthias V hat geschrieben:Damit das Modulverzeichnis als Rubrikverzeichnis erscheint, musst du einfach die Datei rubric.cpo aus einem anderen Rubrikverzeichnis in das Modulverzeichnis legen.
hmmm, diese datei ist schon vorhanden, aber das modul wird trotzdem nicht als rubrik erkannt ... (anders als dein gaestebuch)
Ich habe dies bei mir auch über eine extra angelegte Rubrik gemacht.
meinst du, du hast eine eigene rubrik mit dem mod-contact verknuepft, oder wird das modul selbst als rubrik angezeigt (bzw. eben bei mir ja nicht) ??

Zusätzlich habe ich 4 - Email-Empfänger als externe URL unter diese Rubrik in die Navigation gehangen.
das habe ich nicht verstanden -- hast du damit das kontakt-modul vier mal aufgelegt oder wie verstehe ich einen link wie diesen: http://www.cvjm-sondershausen.de/kontak ... ntact=CVJM

damit stellt sich eh die frage:
kann ich das modul per mod_inline an verschiedenen stellen einsetzen mit den selben einstellungen und template?
Und noch ein Tipp: Erstelle dir doch eine captcha.png in den Farben der Webseite. So wirkt die Ganze Seite mehr wie aus einem Guss. Dieses grüne Bild passt nur bedingt zu der Webseite.
wo du recht hast, hast du recht -- kommt als naechstes.

danke und gruss,
gerhard
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 02:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal

Beitrag von Matthias V »

baluo hat geschrieben:
Matthias V hat geschrieben:Damit das Modulverzeichnis als Rubrikverzeichnis erscheint, musst du einfach die Datei rubric.cpo aus einem anderen Rubrikverzeichnis in das Modulverzeichnis legen.
hmmm, diese datei ist schon vorhanden, aber das modul wird trotzdem nicht als rubrik erkannt ... (anders als dein gaestebuch)
Mein Gästebuch legt selber eine Rubrik an, in der alle Einträge gespeichert werden. Man kann natürlich weitere Rubriken für das Gästebuch anlegen.
Aber worum es hier geht. Ich habe einfach eine Rubrik erstellt, in der es keinerlei Artikel geben wird oder geben soll. Denn nur um mithilfe dieser Rubrik kann das Modul problemlos in die Navi gehangen werden.
baluo hat geschrieben:
Zusätzlich habe ich 4 - Email-Empfänger als externe URL unter diese Rubrik in die Navigation gehangen.
das habe ich nicht verstanden -- hast du damit das kontakt-modul vier mal aufgelegt oder wie verstehe ich einen link wie diesen: http://www.cvjm-sondershausen.de/kontak ... ntact=CVJM
Ich habe einfach 4 mal einen Relativen Link in die Navigehangen, z.B.: ../kontakt/index.php?contact=webmaster
baluo hat geschrieben:damit stellt sich eh die frage:
kann ich das modul per mod_inline an verschiedenen stellen einsetzen mit den selben einstellungen und template?
Man kann das Modul leider nur einmal installieren und es auch nur mit einem Template und mit identischen Einstellungen betreiben. Aber man kann mit dem Modul Mails an unterschiedliche Empfänger senden.
Dies müsste auch über mod_inline möglich sein, das habe ich aber noch nicht getestet.

So ich hoffe nun sind einige Unklarheiten beseitigt.

Gruß Matthias V
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Benutzeravatar
Marky
ConPresso-Checker
Beiträge: 382
Registriert: 11.12.2005 16:29
Hat sich bedankt: 29 Mal
Danksagung erhalten: 18 Mal

Beitrag von Marky »

Hallo Matthias,

kann das Modul mit der Captcha-Erweiterung problemlos über eine bestehende Installation des alten Moduls installiert werden, oder gibt es da bedenken ?
Gruß
Marky
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 02:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal

Beitrag von Matthias V »

Marky hat geschrieben:Hallo Matthias,

kann das Modul mit der Captcha-Erweiterung problemlos über eine bestehende Installation des alten Moduls installiert werden, oder gibt es da bedenken ?
Hallo Marky,
ich habe ja nichts an der Abspeicherung in der Datenbank geändert, sondern nur eine Kontrolle eingefügt, WANN etwas abgespeichert wird.

Daher dürfte es keine Probleme geben.

Einfach Datensicherung (DB+Dateien) machen (kann nie Schaden) und die alten Dateien durch die neuen ersetzen.
Dann solltest du dir noch die Infos zur "Installation" aus meinem ersten Beitrag hier anschauen.

Gruß Matthias
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Benutzeravatar
Marky
ConPresso-Checker
Beiträge: 382
Registriert: 11.12.2005 16:29
Hat sich bedankt: 29 Mal
Danksagung erhalten: 18 Mal

Beitrag von Marky »

Hallo Matthias,

es funktioniert soweit ohne Probleme. Drüberkopieren und (fast) fertig, denn:
Wie kann ich die Fehlermeldung bei einem Captcha-Fehler (Prüfsumme) anders platzieren, als bisher (fieldset)?
Hier wäre eine Variable nicht schlecht, wie es z.B. für Mail_error u.ä. gibt.
Wäre es möglich sowas noch einzubauen. Somit wäre man bzgl. des Designs flexibel.
Gruß
Marky
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 02:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal

Re: mod_contact mit Captcha

Beitrag von Matthias V »

Hallo Marky,

bearbeiten kannst du den Text wie beschrieben bearbeiten:
Matthias V hat geschrieben:In der _includes/index.inc.php findet ihr die folgende Zeile (Zeile 209), wo ihr die Fehlermeldung bei falschem/fehlendem Chaptcha angeben könnt:

Code: Alles auswählen

$captcha_error = 'Der eingegebene Prüfcode ist falsch!';
Eine andere Ausgabe habe ich nicht vorgesehen. Die Meldung wird wie andere Conpresso-Meldungen auch ausgegeben.

Wenn du was ändern willst, dann schau mal in die _includes/index.inc.php in Zeile 210 und 327ff.

Gruß Matthias
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Benutzeravatar
Marky
ConPresso-Checker
Beiträge: 382
Registriert: 11.12.2005 16:29
Hat sich bedankt: 29 Mal
Danksagung erhalten: 18 Mal

Re: mod_contact mit Captcha

Beitrag von Marky »

Hallo Matthias,
Matthias V hat geschrieben: Eine andere Ausgabe habe ich nicht vorgesehen. Die Meldung wird wie andere Conpresso-Meldungen auch ausgegeben.
das ist wirklich schade. Ich meinte nicht "den Ausgabestring" zu verändern, sondern die Freiheit, die Position der Fehlermeldung zu bestimmen.
Ich als Anwender (und ich spreche jetzt mal allgemein) habe ja nichts davon, wenn die Meldung so ausgegeben wird, wie in Conpresso, was ich ja zumeist in einem eigenen Design nicht will. Ich will ja eher eine Webseite mit einem flexiblen Design bauen und ein Modul sollte das hinsichtlich seiner Ausgabe zulassen. Jetzt ist aber gegenüber den Fehlermeldungen aus dem alten Modul und der Captcha-Erweiterung ein Bruch drin.
Was ich mir gewünscht hätte, wär so was wie

Code: Alles auswählen

<!-- ifSet: Captcha_error; -->Der Prüfcode ist falsch<!-- /ifSet -->
analog zu den bereits bestehenden Variablen

Code: Alles auswählen

<!-- ifSet: Mail_error; -->Bitte geben Sie eine korrekte Mailadresse ein!<!-- /ifSet -->
<!-- ifSet: Lastname_error; -->Bitte geben Sie einen Namen ein!<!-- /ifSet -->
<!-- ifSet: Message_error; -->Bitte geben Sie einen Mitteilungstext ein!<!-- /ifSet -->
Dann wäre man nämlich flexibel, was man jetzt als Anwender ohne PHP-Kenntnisse nur bedingt ist.

Da ich als ausgewiesener PHP-Experte (Achtung Ironie :wink: ) es selbst nicht besser machen kann, will ich mich auch nicht beschweren, aber erwähnen möchte ich es schon. 8)

Jetzt wirst Du wahrscheinlich denken:
Matthias V denkt über Marky und hat geschrieben: Sei froh, dass ich das Captcha überhaupt eingebaut habe ...
und ich würde dann sagen, ich verwende das auch gerne, weil es ein cooles Feature ist. An der Stelle und für diese Sache also mal Besten Dank!
Gruß
Marky