WebsiteBaker Support (2.8.x) > Diskussion über WB (closed)

"Reload" Funktion für Captcha-Bildchen

<< < (3/5) > >>

thorn:
Hallo,

ich habe mal eine erste Testversion gemacht.
einfach die vorhandene Datei include/captcha/captcha.php gegen die Datei im Anhang austauschen.
Funktioniert zur Zeit nur mit Modulen die call_captcha() benutzen (also alle Core-Module mit Captcha).
Bei dem Captcha-Typ 'Rechnung als Text' muß noch die Captcha-Datei selbst verändert werden (Sprachdateien laden), das fehlt hier noch.
Um das Captcha neu zu laden, einfach auf das Bild oder den Text (bei Textcaptcha) klicken.


--- Quote from: Ralf (Berlin) on September 05, 2008, 05:54:33 PM ---Ein wenig trickreich dürfte das CSS für die unterschiedlichen Captchas im iframe werden, damit der iframe nicht auffällt.

--- End quote ---

Hmm, eigentlich und ursprünglich bin ich 'Skript-Schreiber', daher kenne ich mich mit CSS&Co überhaupt nicht aus und breche mir jedesmal was ab, wenn ich mich daran versuche.
Wäre nett wenn du das CSS machen könntest, wenn du Lust und Zeit hast natürlich nur.

Beispiel-Code: Edit: Eigenschaften frameborder,marginheight,... hinzu, da es dafür keine richtigen CSS-Entsprechungen zu geben scheint

--- Code: ---<table class="captcha_table"><tr>
<td class="image_captcha">
  <iframe class="captcha_iframe" marginheight="0" marginwidth="0" frameborder="0" name="captcha_iframe" src="http://localhost/wbtest/include/captcha/captcha.php?display_captcha_X986E21=1">
  <img class="captcha_image_real" src="http://localhost/wbtest/include/captcha/captchas/ttf_image.php?t=1220645882" alt="Captcha" />
  </iframe>
</td>
<td></td>
<td><input type="text" name="captcha" maxlength="10" style="width:50px;" /></td>
<td class="captcha_expl">Bitte Text eintragen</td>
</tr></table>

--- End code ---

und im iframe dann:

--- Code: ---<a href="http://localhost/wbtest/include/captcha/captcha.php?display_captcha_X986E21=2">
  <img class="captcha_image_real" src="http://localhost/wbtest/include/captcha/captchas/ttf_image.php?t=1220645882" alt="Captcha" />
</a>

--- End code ---

thorn.

Edit: wie im Bild zu sehen, besteht das Problem darin die Größe des iframe richtig festzulegen (hier mal mit Rahmen):


[gelöscht durch Administrator]

Ralf Hertsch:
Hallo Thorn,


--- Quote ---Wäre nett wenn du das CSS machen könntest, wenn du Lust und Zeit hast natürlich nur.
--- End quote ---

ich schaue es mir am Wochenende an.

Gruß
Ralf

Ralf Hertsch:
Hallo Thorn,

meine ursprüngliche Idee war, die Abmaße der Captchas on the fly auszulesen und damit die Größe des iframe festzulegen, damit wäre es insgesamt flexibel gewesen. Das funktioniert leider nicht, weil erst der iframe definiert werden muss und anschließend das Captcha erzeugt wird...  :-P

Also sind die iframes jetzt erst mal hartcodiert, d.h. wenn irgendwann die Bildchen verändert werden müssen auch die iframes angepasst werden, aber es funktioniert erst mal.

Für mich stellt sich die Frage, ob für den TEXT-CAPTCHA die iframe Lösung überhaupt angeboten werden sollte. In der Praxis wird es hier wohl immer wieder Probleme geben, weil die Texte eine willkürliche Länge haben können (und ja auch sollen) und iframes alles andere als flexibel sind. Hier könnte man sich überlegen, ob man einen Link an den Text anfügt: 'Andere Frage...' oder so ähnlich...

Anpassung Captcha Typ "Rechnung als Text" fehlt noch.

Die überarbeitete captcha.php ist in der Anlage-

Gruß
Ralf

[gelöscht durch Administrator]

thorn:
Hallo,

danke, ich hab heute Abend Zeit damit weiter zu machen.
Die Idee, das iframe auf die Bilder zu beschränken scheint mir gut zu sein, werd ich wohl so machen.

thorn.

thorn:
Hallo Stefek,

kannst du das jetzt mal ausprobieren?
Im Anhang findest du in dem Zip die Dateien captcha.php und calc_text.php.
Diese einfach gegen die vorhandenen austauschen.

Um einen reload herbeizuführen, bei Bild-Captchas einfach auf das Bild klicken, bei Rechnung als Text auf den Text Klicken. Bei Text-Captchas gibt es diese Möglichkeit aber nicht.

Das funktionert nun bei allen Captchas die per call_captcha() erzeugt werden (also z.B. bei Gästebuch, News, Form, Sign-In).
Wer sein Captcha in Einzelteilen baut (call_captcha('image', $style); call_captcha('input', $style); ...) kann nun statt call_captcha('image'); alternativ call_captcha('image_iframe'); benutzen.
Siehe hierzu auch hier.

thorn.

[gelöscht durch Administrator]

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version