Typo3 - Captcha: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
 
Zeile 9: Zeile 9:
 
Die Captcha Libary wird als Extension geladen und steht dann als php-Erweiterung für die Frontendplugins zur Verfügung. Es muß also Code in die Betroffenen Extensions eingebracht werden. Dabei wird der Code in einer Session Variablen gespeichert und später mit der Eingabe des Users verglichen.
 
Die Captcha Libary wird als Extension geladen und steht dann als php-Erweiterung für die Frontendplugins zur Verfügung. Es muß also Code in die Betroffenen Extensions eingebracht werden. Dabei wird der Code in einer Session Variablen gespeichert und später mit der Eingabe des Users verglichen.
  
So geht's am Beispielo ve_guestbook:
+
'''So geht's:'''
  
1.Codeschnipsel - Bild einfügen
+
'''1.Codeschnipsel - Bild einfügen'''
  
 +
Beipiel
 
<pre>
 
<pre>
 
if (t3lib_extMgm::isLoaded('captcha')){
 
if (t3lib_extMgm::isLoaded('captcha')){
Zeile 21: Zeile 22:
 
</pre>
 
</pre>
  
2. Formularfeld einfügen
+
'''2. Formularfeld einfügen'''
 
  <input type="text" size=30 name="TIPFORM[captchaResponse]" value="">
 
  <input type="text" size=30 name="TIPFORM[captchaResponse]" value="">
  
3. Abfrage realisieren
+
'''3. Abfrage realisieren'''
 
<pre>
 
<pre>
 
if (t3lib_extMgm::isLoaded('captcha')){
 
if (t3lib_extMgm::isLoaded('captcha')){
Zeile 34: Zeile 35:
 
}
 
}
 
</pre>
 
</pre>
 
+
'''Bsp.2 (für Gästebuch Alt-Brettheim)'''
4. Eingabe überprüfen
+
<pre>
 +
# Getting the Captcha String
 +
if (t3lib_extMgm::isLoaded('captcha'))  {
 +
    session_start();
 +
    $captchaStr = $_SESSION['tx_captcha_string'];
 +
    $_SESSION['tx_captcha_string'] = '';
 +
} else {
 +
    $captchaStr = -1;
 +
}
 +
</pre>
 +
'''4. Eingabe überprüfen Beispiel 1'''
 
<pre>
 
<pre>
 
if (... ($captchaStr===-1 || ($captchaStr && $tipData['captchaResponse']===$captchaStr)) ...) {
 
if (... ($captchaStr===-1 || ($captchaStr && $tipData['captchaResponse']===$captchaStr)) ...) {
Zeile 43: Zeile 54:
 
}
 
}
 
</pre>
 
</pre>
 +
Bsp2 (Alt-Brettheim)
 +
<pre>
 +
# Evaluating the captcha string
 +
#if ($this->postvars['captcha_response'] != $captchaStr) {
 +
if (strcasecmp($this->postvars['captcha_response'], $captchaStr) != 0) {
 +
$error .= '<li>Antispamcode war leider falsch, bitte nochmal probieren!</li>';
 +
}
 +
</pre>
 +
 +
 +
'''Template anpassen'''
 +
 +
 +
 +
'''Captcha Libary anpassen'''

Version vom 5. April 2006, 15:57 Uhr

Captcha soll Formulare gegen automatisierte Spam-Angriffe schützen. Der Benutzer muß einen Zahlen oder Buchstabencode, der als verzerrtes oder verfremdetes Bild vorliegt eingeben. Bei falscher Eingabe wird das Formular nicht akzeptiert.

Es gibt im Moment (5.4.2006) zwei Extensions für Typo3. 1. Captcha Libary von Kasper 2. free captcha von Rolland Stanislas


Captcha Libary von Kasper

Die Captcha Libary wird als Extension geladen und steht dann als php-Erweiterung für die Frontendplugins zur Verfügung. Es muß also Code in die Betroffenen Extensions eingebracht werden. Dabei wird der Code in einer Session Variablen gespeichert und später mit der Eingabe des Users verglichen.

So geht's:

1.Codeschnipsel - Bild einfügen

Beipiel

if (t3lib_extMgm::isLoaded('captcha')){
  $captchaHTMLoutput = '<img src="'.t3lib_extMgm::siteRelPath('captcha').'captcha/captcha.php" alt="" />';
} else {
  $captchaHTMLoutput = '';
}

2. Formularfeld einfügen

<input type="text" size=30 name="TIPFORM[captchaResponse]" value="">

3. Abfrage realisieren

if (t3lib_extMgm::isLoaded('captcha')){
  session_start();
  $captchaStr = $_SESSION['tx_captcha_string'];//String auslesen
  $_SESSION['tx_captcha_string'] = '';
} else {
  $captchaStr = -1;//String zurücksetzen damit er nicht mehrmals benutzt werden kann
}

Bsp.2 (für Gästebuch Alt-Brettheim)

	# Getting the Captcha String
	if (t3lib_extMgm::isLoaded('captcha'))  {
    session_start();
    $captchaStr = $_SESSION['tx_captcha_string'];
    $_SESSION['tx_captcha_string'] = '';
	} else {
    $captchaStr = -1;
	}

4. Eingabe überprüfen Beispiel 1

if (... ($captchaStr===-1 || ($captchaStr && $tipData['captchaResponse']===$captchaStr)) ...) {

...

}

Bsp2 (Alt-Brettheim)

	# Evaluating the captcha string
	#if ($this->postvars['captcha_response'] != $captchaStr) {
	if (strcasecmp($this->postvars['captcha_response'], $captchaStr) != 0) {
		$error .= '<li>Antispamcode war leider falsch, bitte nochmal probieren!</li>';
	}


Template anpassen


Captcha Libary anpassen