Zum Inhalt springen

Frontend User Registration und freeCap CAPTCHA

Erstellt am 22. März 2007 · 9 Antworten · letzte Antwort am 24. Mai 2012

Tags: Frontend-Benutzer, Frage

gumpers ·

Hallo allerseits,

ich habe ein Problem was Frontend User Registration und freeCap CAPTCHA betrifft.

Die Sache sieht so aus ich habe die Extension sr_feuser_register 2.5.6 und sr_freecap 0.4.6 instaliert.
Frontend User Registration funktioniert ohne Probleme und macht alles was ich einstelle. Doch wenn ich versuche eine captcha abfrage einzubauen beginnt das Problem.

Ich habe in die Vorlage tx_srfeuserregister_pi1_css_tmpl.html

<!--###CAPTCHA_INSERT### this subpart is removed if CAPTCHA is not enabled! -->
	<div class="tx-srfeuserregister-pi1--captcha">
		<label for="tx-srfeuserregister-pi1-captcha_response">###SR_FREECAP_NOTICE###</label>
		###SR_FREECAP_CANT_READ###
		<br />
		<input type="text" size="15" id="tx-srfeuserregister-pi1-captcha_response" name="FE[fe_users][captcha_response]" title="###SR_FREECAP_NOTICE###" value="" />
		###SR_FREECAP_IMAGE###
	</div>
<!--###CAPTCHA_INSERT###-->

diesen Code eingebaut und da in der Frontend User Registration ab version 2.5.5 das freeCap Captcha eingebunden ist, habe ich auch im Frontend alles richtig angezeigt bekommen.
Ich konnte auch mir ein neues Bild generieren wenn es zu unleserlich ist.

Als nächstes habe ich im Constand Editor meines Templates in die Felder „Registration form fields“ & „Required fields“ captcha_response eingetragen.
So und jetzt wollte ich testen ob die Abfrage richtig funktioniert und musste feststellen das die Überprüfung für das Captcha nicht läuft.
Es meldet zwar ein Fehler wenn ich in das captcher Feld nichts eintrage aber wenn ich irgendetwas reinschreibe läuft es einfach durch ob die Eingabe richtig ist oder nicht interessiert ihn nicht.

Meine Frage woran liegt es, in den PHP Dateien habe ich nichts geändert und die Abfrage für das Feld ist auch in der class.tx_srfeuserregister_data.php standardmäßig drin.
Muss ich vielleicht noch was beachten oder liegt es an der Extension.

InforMedic ·

Mir geht es da genauso, allerdings erscheinen bei mir keinerlei Fehlermeldungen und das Formular wird auch nicht zur "preview" weitergeleitet. Nach debuggen von class.tx_srfeuserregister_pi1.php konnte ich feststelllen das immer $this->failure das captcha_response enthält -> was mir sagt das die Überprüfung nicht wirklich funktioniert.

Bei deinem Code konnte ich feststellen das in der ersten Div-Tag der klassenname 2 - enthält:

<div class="tx-srfeuserregister-pi1--captcha">

bei heisst das:

<div class="tx-srfeuserregister-pi1-captcha-response">

Sollte wenn überhaupt dann aber nur anzeige schwierigkeiten hervorrufen....

Warum bei dir auch keine Daten gespeichert werden kann ich mir auch nicht wirklich erklären...

Info

InforMedic ·
InforMedic schrieb

Nach debuggen von class.tx_srfeuserregister_pi1.php konnte ich feststelllen das immer $this->failure das captcha_response enthält -> was mir sagt das die Überprüfung nicht wirklich funktioniert.

Warum bei dir auch keine Daten gespeichert werden kann ich mir auch nicht wirklich erklären...

Falsche Annahme -> $this->failure besagt genau das die überprüfung stattgefunden hat allerdings einen fehler zurückgeliefert hat. Der Entwickler könnte an dieser stelle noch die überprüfung der Anzahl eingebener digits einbauen =)

Ich held -> die Image size war zu groß eingestellt, nach einstellung von 60px height habe ich auch das gesamte (5digits) und nicht nur 80% (4digits) angezeigt bekommen. Nach eingabe der richtigen Anzahl funktionierte auch die überprüfung.

Versionen:
freeCap 0.4.5
sr_feuser_register 2.5.5

Ich würde an deiner Stelle nochmal überprüfen was die constante "maxWordLength = 5" bei dir sagt und dann nochmal kucken ob auch wirklich alle digits angezeigt werden #paralyzed# sonst wüsste ich gerade leider auch keine Abhilfe...

Gruß
Info

P.S.: Mein html code habe ich bezgl. des sr_feuser_register fieldset angepasst. Hier der Code:

	<!--###CAPTCHA_INSERT### this subpart is removed if CAPTCHA is not enabled! -->
	<dt> </dt>
	<dd><hr align="left" width="300px" /></dd>
	<dt>
		<label for="tx-srfeuserregister-pi1-captcha-response">###SR_FREECAP_NOTICE###</label>
	</dt>
	<dd>
		<span class="tx-srfreecap-pi2-captcha-response"><input type="text" size="15" id="tx-srfeuserregister-pi1-captcha-response" name="FE[fe_users][captcha_response]" title="###SR_FREECAP_NOTICE###" value="" /></span>
	</dd>
	<dd>
		###SR_FREECAP_IMAGE###
		<p class="tx-srfeuserregister-pi1-captcha-response">###SR_FREECAP_CANT_READ###</p>
	</dd>
	<!--###CAPTCHA_INSERT###-->
jousch ·

Hallo!

Ich stehe vor einem ähnlichem Problem.
Ich habe sr_freecap 1.0.3 & sr_feuser_register 2.5.8 installiert.

Ich habe den HTML-Teil des Captchas in das HTML-Template eingefügt und wird auch richtig angezeigt. Leider funktioniert die Anmeldung auch, wenn ich die Abfrage nicht ausfülle. Ich werde automatisch zur nächsten Seite weitergeleitet.

Meine Frage: Welchen String muss ich in requiredFields & formFields (hier denke ist gar kein String nötig) eingeben damit das Captcha auch überprüft wird?

Ich habe bis jetzt: captcha_response in beiden hinzugefügt (natürlich mit einem Komma abtrennt). Es bringt sich aber nichts.

Was ist denn da noch genau zu beachten? Habe ich was übersehen?

<!--###CAPTCHA_INSERT### this subpart is removed if CAPTCHA is not enabled! -->
<dt>
	<label for="tx_your_extension_id_pi1-captcha_response">###SR_FREECAP_NOTICE###</label>
</dt>
<dd>
###SR_FREECAP_CANT_READ###<br />
<input type="text" size="15" id="tx_your_extension_id_pi1-captcha_response" name="tx_your_extension_id_pi1_pi1[captcha_response]" title="###SR_FREECAP_NOTICE###" value="">
###SR_FREECAP_IMAGE###
###SR_FREECAP_ACCESSIBLE###
</dd>



<!--###CAPTCHA_INSERT###-->
  plugin.tx_srfeuserregister_pi1 {
  		pid = 74
  		userGroupAfterConfirmation = 2
  		userGroupUponRegistration = 1
  		loginPID = 28
  		registerPID = 39
  		confirmPID = 31
  		enableEmailConfirmation = 1
  		enableAdminNotifyOnApprove = 1
  		enableAdminNotifyOnRegister = 0
  		enableHTMLMail = 0
                useMd5Password = 1
                maxImages = 1
                siteName = Seite
                email = mail@mail.at
                passwordAtLeast = 4
                passwortAtMost = 20
                usernameAtLeast = 3
                usernameAtMost = 10
                useShortUrls = 1
                requiredFields = username,password,first_name,last_name,email,zip,date_of_birth,address,city,telephone,gender, zone, static_info_country,captcha_response
                file.templateFile = fileadmin/templates/subtemplates/register.html
                formFields = username, password, gender, first_name, last_name, date_of_birth, email, address, zone, static_info_country, city, zip, telephone, www, module_sys_dmail_html, module_sys_dmail_category, image, comments, captcha_response, disable
  
  }

hat vielleicht jemand einen Tipp für mich? Mit bestem Dank im Voraus
Jos

jousch ·

Nach einer Neuinstallation von sr_freecap hat die Extension funktioniert. Ich weis leider echt nicht warum es nicht funktioniert...

tcsoft ·

ich auch probleme hab wie oben geschrieben sei. kopf schmerzen sehr, spät seien schon und nicht haben lust mehr #angry# #angry# #angry#
melden morgen mit details

ISS ·

hallo

Ich habe auch ein ähnliches Problem. Ich habe das Captcha wie auf Typo3.org beschrieben im HTML-Template eingebunden

<!--###CAPTCHA_INSERT### this subpart is removed if CAPTCHA is not enabled! -->

<div class="tx-your-extension-id-pi1-captcha">

<label for="tx_your_extension_id_pi1_captcha_response">###SR_FREECAP_NOTICE###</label>

###SR_FREECAP_CANT_READ###

<br />

<input type="text" size="15" id="tx_your_extension_id_pi1_captcha_response" name="tx_your_extension_id_pi1_pi1[captcha_response]" title="###SR_FREECAP_NOTICE###" value="">

###SR_FREECAP_IMAGE###

###SR_FREECAP_ACCESSIBLE###

</div>

<!--###CAPTCHA_INSERT###-->

und es funktioniert auch.

Im Constant ist definiert

plugin.tx_srfeuserregister_pi1 {
  enableAdminNotifyOnRefuse = 0
  enableAdminNotifyOnApprove = 0
  enableAdminNotifyOnRegister = 0
  enableAdminNotifyOnUpdate = 0
  enableAdminNotifyOnDelete = 0
  enableEmailOnDelete = 0
  enableEmailOnUpdate = 0
  enableEmailOnApprove = 0
  enableEmailConfirmation = 0
  enableEmailOnRefuse = 0
  enableEmailOnAdminRefuse = 0
  enableEmailOnRegister = 0
  confirmInvitationPID = 0
  confirmPID = 0
  editPID = 0
  linkToPID = 0
  registerPID = 0
  enableAdminNotifyOnAdminAccept = 0
  useShortUrls = 0
  useLocalCountry = 1
  enableHTMLMail = 0
  enableAdminNotifyOnAdminRefuse = 0
  enableAdminNotifyConfirmation = 0
  email = beispiel@du-nicht-ich.ch
  formFields = username, password, gender, date_of_birth, email, city,zone, static_info_country, captcha_response
  userGroupUponRegistration = 1
  requiredFields = username, password, captcha_response
  pid = 85
  usernameAtLeast = 0
  loginPID = 0
  userGroupAfterAcceptation = 89
}

Doch nun wird das Captcha zwar angezeigt, aber es ist kein Pflichtfeld und es wird wie bei josDesign nicht überprüft. Ich habe es auch schon deinstalliert und neu installiert den ganzen cache gelöscht usw. Aber es will immer noch nicht!

Kann mir da jemand weiterhelfen?
Ich würde mich über eine schnelle Antwort freuen.

Grüsse,
ISS

derpfeffi ·

Damit hab ich auch lange gescuht, geholfen hat mir dann ein Eintrag im TS:

plugin.tx_srfeuserregister_pi1.create.evalValues.captcha_response = freecap

Achtung: Nicht in den Konstants!

Viele Grüße

Stefan

ISS ·

Hallo Stefan,

Habe es so versucht. Im TS Setup:

plugin.tx_srfeuserregister_pi1.create.evalValues.captcha_response = freecap

Doch wenn ich den eintrag

captcha_response

im Constant gelassen habe, hatte ich zwei captchas, aber keines, welches ausgefüllt werden müsste.
Hast du da noch weitere Sachen konfiguriert?

Gruss
ISS

sro ·

Da ich gerade doch 2 Stunden gebraucht hab, nix gefunden hab und es dann im endeffekt aus dem sourcecode destilliert hab:

1. captcha im Template einfügen z.B. so:

			<div style="text-align: center">
				<p style="font-weight:bold;">Bild:
				###SR_FREECAP_IMAGE###</p>
				<br/>
				###SR_FREECAP_CANT_READ###
				
				<p style="font-weight:bold;">Zeichen eingeben:
				<input type="text" size="20" name="FE[fe_users][captcha_response]"></p>

Wichtig ist hierbei einerseits der name des feldes nämlich "FE[fe_users][captcha_response]" und andererseits falls es sich um den preview handelt in den der die das captcha eingefügt wird, muss der marker ###HIDDENFIELDS### vor dem captcha sein.

2. im TS Setup:

plugin.tx_srfeuserregister_pi1.create.evalValues.captcha_response = freecap

3. im TS Konstants:

 plugin.tx_srfeuserregister_pi1.formFields = captcha_response,username,passw....

vermutlich würde statt punkt 3 auch folgendes funktionieren hab ich aber nicht getestet:

plugin.tx_srfeuserregister_pi1.formFields := addToList(captcha_response)

Für interessierte:
die hiddenfields müssen im preview vor dem captcha sein, weil durch das im punkt 3. gemachte registrieren des Feldes, ein hiddenfield dafür angelegt wird dass zuerst natürlich leer ist. Wenn man also zum preview kommt gibt es 2 felder mit dem namen "FE[fe_users][captcha_response]" wobei eines davon ein Hiddenfield ist welches leer ist.
Und beim bestätigen der eingabe wird dann einfach das genommen was als letztes gesetzt wurde.