Social Media
Foren
QA Captcha
|
QA Captcha
Nächstes Plugin von Juku. Diesmal die Captcha: http://code.contentlion.de/Plugin+Captcha/
Folgendes ist mir aufgefallen:
- ReadMe.txt kannst du rausschmeißen, die liest dort eh keiner. Wenn man sich das über die Plugin Gallerie installiert, bekommt der User die nichtmal zu gesicht. Kannst das einfach nach der Installation ausgeben.
- Wir auch schon bei Adminmail, Settings über die Settings-Klasse speichern und mit richtiger area und areaType.
- beim Create-Table nicht latin1, sonder utf8 nutzen. Sowas im Nachhinein zu korrigieren ist immer dumm, besonders wenn man viele Datensätze hat (spreche aus erfahrung)
- Sessionvariablen und Events bitte auch mit Namespaces.
- Die "Zeichen"-Eigenschaft der Klasse Plugin_Captcha_Captcha nennst du mal besser chars oder letters oder so. Denglisch ist immer dumm.
- Wofür brauchst du die Klasse Plugin_Captcha_selector? Genau das gleiche macht auch system/plugins/combobox.php
- Bitte nicht den autoloader überschreiben!
- Wieso hast du eine kopie der Datenbankklasse eingefügt?
- Auch hier wieder auskommentierter Code einfach rausschmeißen, der steht im SVN.
Folgendes ist mir aufgefallen:
- ReadMe.txt kannst du rausschmeißen, die liest dort eh keiner. Wenn man sich das über die Plugin Gallerie installiert, bekommt der User die nichtmal zu gesicht. Kannst das einfach nach der Installation ausgeben.
- Wir auch schon bei Adminmail, Settings über die Settings-Klasse speichern und mit richtiger area und areaType.
- beim Create-Table nicht latin1, sonder utf8 nutzen. Sowas im Nachhinein zu korrigieren ist immer dumm, besonders wenn man viele Datensätze hat (spreche aus erfahrung)
- Sessionvariablen und Events bitte auch mit Namespaces.
- Die "Zeichen"-Eigenschaft der Klasse Plugin_Captcha_Captcha nennst du mal besser chars oder letters oder so. Denglisch ist immer dumm.
- Wofür brauchst du die Klasse Plugin_Captcha_selector? Genau das gleiche macht auch system/plugins/combobox.php
- Bitte nicht den autoloader überschreiben!
- Wieso hast du eine kopie der Datenbankklasse eingefügt?
- Auch hier wieder auskommentierter Code einfach rausschmeißen, der steht im SVN.
Nächstes Plugin von Juku. Diesmal die Captcha: http://code.contentlion.de/Plugin+Captcha/
Folgendes ist mir aufgefallen:
- ReadMe.txt kannst du rausschmeißen, die liest dort eh keiner. Wenn man sich das über die Plugin Gallerie installiert, bekommt der User die nichtmal zu gesicht. Kannst das einfach nach der Installation ausgeben.
Danke für die Idee!
Aber wegen der Zeile lohnt es sich gar nicht, diese auszugeben.#
--> Habs einfach gelöscht.
- Wir auch schon bei Adminmail, Settings über die Settings-Klasse speichern und mit richtiger area und areaType.
s. anderen Thread, weiß nicht wie.
Bitte Code-Bsp.
- beim Create-Table nicht latin1, sonder utf8 nutzen. Sowas im Nachhinein zu korrigieren ist immer dumm, besonders wenn man viele Datensätze hat (spreche aus erfahrung)
Ok, habs mal korrigiert.
- Sessionvariablen und Events bitte auch mit Namespaces.
Gemacht.
- Die "Zeichen"-Eigenschaft der Klasse Plugin_Captcha_Captcha nennst du mal besser chars oder letters oder so. Denglisch ist immer dumm.
Habs geändert.
- Wofür brauchst du die Klasse Plugin_Captcha_selector? Genau das gleiche macht auch system/plugins/combobox.php
Konntest du mir das nicht früher sagen?!?
Egal, wo ichs eh einmal implementiert habe...
- Bitte nicht den autoloader überschreiben!
- Wieso hast du eine kopie der Datenbankklasse eingefügt?
Weil ausnahmsweiße auch du mal nen Fehler gemacht hast.
Und zwar sind die Pfade in der autoload.php alle relativ.
Und wenn ich dann eine Datei habe, die sich nicht im selbem Verzeichnis befindet und trotzdem den AutoLoader nutzen möchte, dann kommt das Problem.
Selbes gilt für die MySql / Datenbank - Klasse, hier habe ich auch nur den Pfad angepasst.
- Auch hier wieder auskommentierter Code einfach rausschmeißen, der steht im SVN.
Kannst du mir mal genauerer sagen wo?
Ich finde nämlich keinen.
So, habe alles, außer dieses Settings-Zeugs behoben.
|
Die Klassen sollen in der Verzeichnisstruktur sein! Deswegen darf der auch nicht überschrieben werden ;-)
http://code.contentlion.de/filedetails.p…s%2Fcaptcha.php "//$ttf = $_SERVER['DOCUMENT_ROOT']."font.ttf";"
http://code.contentlion.de/filedetails.p…s%2Fcaptcha.php "//$ttf = $_SERVER['DOCUMENT_ROOT']."font.ttf";"
Naja, die captcha.php ist ja "eigenständig", wird also alleine, ohne den direkten Kontakt mit CL aufgerufen.
(die Bilder haben ja als URL einfach nur domain.tld/system/plugins/captcha/capcha.php und da wird aber keine HTML-Seite, sondern das Bild angezeigt. )
Mit dem BlankPage-Plugin geht das leider nicht, da selbst wenn ich den Header anpasse, immer nen Fehler erscheint.
(Fehler in Grafik, kann nicht angezeigt werden bla bla...)
Deßhalb musste ich das so umständlich machen. :/
Das ist ja auch keine Klasse...
(die Bilder haben ja als URL einfach nur domain.tld/system/plugins/captcha/capcha.php und da wird aber keine HTML-Seite, sondern das Bild angezeigt. )
Mit dem BlankPage-Plugin geht das leider nicht, da selbst wenn ich den Header anpasse, immer nen Fehler erscheint.
(Fehler in Grafik, kann nicht angezeigt werden bla bla...)
Deßhalb musste ich das so umständlich machen. :/
Das ist ja auch keine Klasse...
|
BlankPage dürfte gehen. Du musst dir mal den Quelltext des Bildes anschauen oder den header-Befehl kurz auskommentieren, dann siehst du eine richtige Fehlermeldung ;-)
BTW: Wenn du header benutzt, musst du die Funktion ExecuteHttpHeader der Editor- bzw. BlankPage-Klasse überschreiben, damit der richtig ausgeführt wird. Deswegen bekommst du vermutlich auch einen Fehler.
BTW: Wenn du header benutzt, musst du die Funktion ExecuteHttpHeader der Editor- bzw. BlankPage-Klasse überschreiben, damit der richtig ausgeführt wird. Deswegen bekommst du vermutlich auch einen Fehler.
So, habe mir jetzt mal die Arbeit gemacht und das Ganze überarbeitet.
D.h. du darfst es jetzt nochmal testen!
Sein Bild erhält man jetzt so:
<Domain>/captcha/captcha.html
Funktioniert auch alles supi!
Aber bevor du mir jetzt mit Kritik in der activate.php kommst:
Die Zeilen sind absichtlich auskommentiert.
Da ist nämlich ein Bug in CL, weßhalb ich die Rechte manuell in die DB eintragen muss.
Anders funktioniert das leider nicht.
D.h. du darfst es jetzt nochmal testen!
Sein Bild erhält man jetzt so:
<Domain>/captcha/captcha.html
Funktioniert auch alles supi!
Aber bevor du mir jetzt mit Kritik in der activate.php kommst:
Die Zeilen sind absichtlich auskommentiert.
Da ist nämlich ein Bug in CL, weßhalb ich die Rechte manuell in die DB eintragen muss.
Anders funktioniert das leider nicht.
Hab erstmal alles korrigiert.
Zur Verwendung:
In dein Formular integrierst du einfach einen <img>-Tag mit der URL http://<Deine Domain>/captcha/captcha.html .
Wenn du das Formular dann überprüfst / validierst, musst du nur über
die "Zeichenfolge" / den Inhalt des Captchas auslesen lassen und überprüfen, ob dieser mit dem im POST-Array (dein Formularfeld) identisch ist. Mehr nicht.
Und dann wertest du das einfach aus:
Zur Verwendung:
In dein Formular integrierst du einfach einen <img>-Tag mit der URL http://<Deine Domain>/captcha/captcha.html .
Wenn du das Formular dann überprüfst / validierst, musst du nur über
PHP-Quelltext |
|
1 |
Plugin_Captcha_Captcha::getCode()
|
PHP-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 |
Formular-Beispiel:
<form ...>
...
<img src="captcha/captcha" alt="Captcha" title="Captcha-Bild" /><br />
<input type="text" name="captcha_code_oder_was_auch_immer" />
...
</form>
|
Und dann wertest du das einfach aus:
PHP-Quelltext |
|
1 2 3 4 5 |
if (isset($_REQUEST['captcha_code_oder_was_auch_immer']) && $_REQUEST['captcha_code_oder_was_auch_immer'] == Plugin_Captcha_Captcha::getCode()) {
//Alles ok, Captcha stimmt. ;)
} else {
//Fehler-Meldung ausgeben
}
|
|
So, jetzt hab ich getestet ;-)
- Bau noch eine Statische Funktion ein, die den Code überprüft (wo man dann seinen eingegebenen Code übergeben kann). Weil du machst die Buchstaben ja klein beim zurückgeben
- Und noch eine Funktion, die den Image-Tag zurückgibt (dachte erst dafür ist die Funktion getCode).
- captcha/captcha.html /plugins/captcha/captcha.html verschieben
- Du hast immer noch deutsche Variablen drin (groesse, winkel)
- Ich glaube dir fehlt auch noch eine Quellenangabe ;-) Wenn man mal nach teilen von deinen Code sucht, findet man zum Beispiel das hier, was dem schon sehr extrem ähnlich sieht: http://www.itschi.net/forum/7/4881
- Bau noch eine Statische Funktion ein, die den Code überprüft (wo man dann seinen eingegebenen Code übergeben kann). Weil du machst die Buchstaben ja klein beim zurückgeben
- Und noch eine Funktion, die den Image-Tag zurückgibt (dachte erst dafür ist die Funktion getCode).
- captcha/captcha.html /plugins/captcha/captcha.html verschieben
- Du hast immer noch deutsche Variablen drin (groesse, winkel)
- Ich glaube dir fehlt auch noch eine Quellenangabe ;-) Wenn man mal nach teilen von deinen Code sucht, findet man zum Beispiel das hier, was dem schon sehr extrem ähnlich sieht: http://www.itschi.net/forum/7/4881
Oh, Sorry!
Habs jetzt!
Hier ist das Tutorial:
http://www.der-webdesigner.net/php/tutor…tebuch_spambots
Habs jetzt!
Hier ist das Tutorial:
http://www.der-webdesigner.net/php/tutor…tebuch_spambots
Ähnliche Themen
-
- Plugin QA »
- QA Register (4. Februar 2013, 20:00)
-
- Projekt und Plugin Vorstellung »
- Captcha-Plugin (9. Februar 2013, 13:31)