we:DevEdge

the webEdition code base

we:Samples

Captcha light

Autor: Dirk Einecke (we:DevEdge / appsolute GmbH) / Beispiel / Kommentare (5)
Erstellt am 08.07.2006 um 09:42 Uhr / Letzte Aktualisierung am 08.07.2006 um 09:42 Uhr / Version: 1.0.0.0

webEdition Systemvoraussetzungen:
webEdition-Basisversion (ab 4.0.0.0)


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.

Beispiel

Beispiel-Symbol
Beispiel ansehen
Hier können Sie sich ein Beispiel ansehen.

webEdition XML Import

webEdition XML Import-Symbol
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
  • Dokumente importieren
  • Vorlagen importieren
  • Automatischer Rebuild

Helfen Sie mit!

Helfen Sie mit! - Symbol
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 (5)

  1. [1690] Kommentar von Bernd Kühn am 05.08.2006 um 23:25 Uhr
    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???
  2. [1691] Kommentar von Bernd Kühn am 07.08.2006 um 20:41 Uhr
    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 :-)
  3. [1699] Kommentar von Mario Fritsche am 15.08.2006 um 20:24 Uhr
    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
  4. [1700] Kommentar von Bernd Kühn am 15.08.2006 um 21:44 Uhr
    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 &quot;Zahlen<span lang="en" xml:lang="en">code</span>&quot; 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()">&nbsp;<input type="reset" value="Zur&uuml;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
  5. [2047] Kommentar von Julian Radzinski am 12.04.2007 um 21:20 Uhr
    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
Kommentar hinzufügen
Um selber einen Kommentar schreiben zu können müssen Sie sich registrieren und einloggen.