we:Samples
Captcha light
Dieses we:Sample zeigt die Verwendung des mit webEdition 4 eingeführten Captcha-Bildes. Dabei muss der Besucher Ihrer Website bei einem Formular einen Zahlencode eingeben, der dann auf der Folgeseite geprüft wird. Es steht es Ihnen völlig frei, wie Sie das Formular zur Eingabe und die Auswertung gestalten möchten.
webEdition XML Import
Download (Rechtsklick -> Ziel speichern als... / Dateiname: / Dateigröße: 4,00 KB)
Diese Datei enthält das vollständige we:Sample als webEdition XML Import. Sie können es nach dem Download (Rechtsklick -> Ziel speichern als...) in Ihrem webEdition über Datei -> Import/Export -> Import als "webEdition XML Import" importieren. Bitte wählen Sie dabei die aufgeführten Import Optionen.
Import Optionen
Import Optionen
- Dokumente importieren
- Vorlagen importieren
- Automatischer Rebuild
Helfen Sie mit!
Sollten Sie für dieses we:Sample einen Verbesserungsvorschlag, Tipp oder Hinweis haben oder einen Fehler entdeckt haben, dann schreiben Sie dies einfach als Kommentar (Registrierung & Login erforderlich) oder senden Sie eine E-Mail über das Kontaktformular.




Kommentare (6)
Klasse! Endlich die Möglichkeit, den "Gästebuchspammern" das Leben schwer zu machen!
Nun bin ich aber leider kein php-Profi, würde aber gerne in ein bestehendes Gästebuch (unter WE4) dieses Script einbauen. Weiß aber nicht so recht, wo ich damit anfangen soll. Vielleicht wäre eine Implementierung in der DEMO von WebEdition gut??? (Vielleicht könnte ich sie ja von dort übernehmen???)
Hmm... vermutlich bin ich einfach zu doof, um das selbst zu realisieren... SORRY... Na ja, trotzdem
DANKE für das Beispiel!!!
LG
Bernd Kühn
P.S.: Oh Mann, kann ich nicht mal bei euch ein we:praktikum tag absolvieren???
Holla die Waldfee!!!
Ich hab's hingekriegt! Habe das Captcha in das Gästebuch erfolgreich eingebaut.
War doch gar nicht so schwer wie ich dachte :-)
Na ja, toll, dass ihr das so klasse eingebaut und aufbereitet habt!
Das blinde Huhn,
Bernd Kühn :-)
Hallo,
@ Bernd Kühn:
Es wäre vielleicht schön gewesen, wenn du anderen an deinen Erfolg teilhaben lassen könntest ;-)
Ich habe es man mit dem Gästebuch aus den Tutorials versucht. Ich habe dazu die Prüfung in die speichern.php gepackt:
<we:ifCaptcha name="code">
<we:write type="document" publish="false" doctype="Gaestebuch"/>
<h2>Vielen Dank für Ihren Eintrag in mein Gästebuch.</h2>
<h3>Der Beitrag wird erst freigeschalten</h3>
<p>Bitte haben Sie dafür Verständnis, das Ihr Eintrag nicht sofort Online ist. Da ich für mein Gästebuch Verantwortlich bin – und das betrifft vor allem die Einträge, muss eine gewisse Zensur erfolgen. <p/>
Natürlich werden alle ernst gemeinten Beiträge so schnell wie möglich Veröffentlicht.
<we:else />
<p>
<strong>Der eingegebene Zahlen<span lang="en" xml:lang="en">code</span> ist nicht richtig.</strong><br/><br/>
Bitte gehen Sie <a href="javascript:history.back()">zurück zum Formular</a>, laden Sie das Bild mit dem Zahlencode neu (auf das Bild einmal klicken) und geben Sie die Zahl neu ein. <br/><br/>
</p><a href="javascript:history.back()">Zurück zum Formular</a>
</we:ifCaptcha>
Leider konnte ich die Fehlerprüfung der Felder nicht so einbauen, dass die dann auch mit der Prüfung von captcha klappte.
Vielleicht kann ja jemand mal einen Tipp hier Posten.
Viele Grüße
Mario
Hallo Mario,
danke für den Tritt in den Hintern ;-) War mir gar nicht wirklich bewusst, dass es noch mehr Menschen interessieren könnte... (Ich dachte, dass nur ich keine Peilung habe... :-)) )
Ok, meine rudimentäre, aber (bis jetzt sehr) effiziente Lösung folgt:
1. In der Vorlage "eintragen.tmpl" ist folgender Code einzutragen:
<we:captcha width="315" height="25" subset="num" valign="middle" align="center" type="gif" />
<br /><br />
Bitte geben Sie den in der Grafik angezeigten Zahlen<span lang="en" xml:lang="en">code</span> in das Formularfeld "Zahlen<span lang="en" xml:lang="en">code</span>" ein.
</p>
<p>
<label for="code">Zahlen<span lang="en" xml:lang="en">code</span>:</label>
<input id="code" type="text" name="code" />
</p>
</td>
</tr>
<tr>
<td colspan="2"><img src="<we:url id="1410"/>" width="1" height="10" alt=""></td>
</tr>
<tr>
<td></td>
<td width="100%" class="t3"></td>
</tr>
<tr>
<td></td>
<td width="100%"class="t3"><input type="button" value="Eintragen" class="t3"
onclick="CheckGaestebuchFormular()"> <input type="reset" value="Zurücksetzen" class="t3"></td>
</tr>
</table>
</we:form>
</td>
</tr>
</table>
<?php /* Ende - Contentbereich */ ?>
Ich habe bewusst das *ENDE* des Contentbereichs mit kopiert, um die korrekte Lage zu kennzeichnen....
2. In der Vorlage "speichern.tmpl" ist folgender Code einzutragen:
<we:else/> <?php /* Wenn das Pflichtfeld ("Text") ausgefüllt wurde... */ ?>
<?php
/*
Im Folgenden Teil wird über we:write ein webEdition-Dokument mit den
Daten des Gästebucheintrages geschrieben.
Dabei werden folgende Grundeinstellungen gesetzt:
type="document"
Es soll ein webEdition-Dokument erzeugt werden.
doctype="Gaestebucheintrag"
Der Dokument Typ des webEdition-Dokments soll "Gaestebucheintrag" sein.
Über diesen Dokument Typ werden weitere Informationen wie z.B. der
Speicherort der erzeugten webEdition-Dokumente festgelegt
publish="true"
Die erzeugten webEdition-Dokumente sollen nach dem speichern auch
veröffentlicht werden.
*/
?>
<!-- ZAHLENCODE AUSWERTEN -->
<we:ifNotCaptcha name="code">
<p>
<script language="JavaScript" type="text/javascript">
<!--
alert('Der Zahlencode ist falsch!');
history.back();
//-->
</script>
</p>
<we:else />
<we:write type="document" doctype="Gaestebucheintrag" publish="true"/>
</we:ifNotCaptcha>
<!-- /ZAHLENCODE AUSWERTEN -->
<?php /* Start - Wenn das Schreiben des webEdition-Dokuments erfolgreich war */ ?>
<we:ifWritten type="document">
<script language="JavaScript" type="text/javascript">
<!--
alert("Vielen Dank für den Eintrag in unser Gästebuch.");
document.location.href = "<we:url id="1480"/>";
//-->
</script>
Auch hier ist durch kopieren eines größeren Bereiches hoffentlich klar für dich, an welche Stelle der Code eingesetzt werden muss.
3. Der Nachteil dieser Lösung: Falls jemand den Code falsch eingibt und abschickt, muss er 2 mal einen "Refresh" auslösen, um einen neuen Code zu erlangen und der vormals geschriebene Text ist natürlich weg, d. h., er muss neu eingegeben werden!
4. Falls du deinen "Code" tatsächlich wie in deinem Kommentar veröffentlicht hast, solltest du noch einmal Rechtschreibung und Zeichensetzung prüfen ;-)
5. Sieh dir einfach meine simple Umsetzung an unter http://a.kuehn.net/dev_demo_2/gaestebuch/eintragen.php
Grüße und hoffentlich neue Erkenntnisse,
Bernd
hi,
Ich habe auch eine Site die ursprünglich auf der Demo von webEdition basiert, weil ich halt auch nicht so die Ahnung habe.
Danke schonmal an Bernd für das posten von deiner Lösung, wenn ich die aber anstatt von <?php /* Ende - Contentbereich */ ?> bei mir einfüge verschiebt sich das rechte menü mit den news drin
woran liegt das? muss ich noch was anderes mit deinem code überschreiben außer <?php /* Ende - Contentbereich */ ?>
danke für eure bzw deine hilfe
91RF0d gbxmdtcsuyyx, [url=http://flgcnpuyzxyb.com/]flgcnpuyzxyb[/url], [link=http://ojhvcpovxfml.com/]ojhvcpovxfml[/link], http://exfpdcitfrbo.com/