HowTo: AVC 1.2b auf phpBB 2.0.21 mit PostGres 8.0.9

Ersetzt das Original phpBB CAPTCHA gegen eins mit diversen Konfigurationsmöglichkeiten.

HowTo: AVC 1.2b auf phpBB 2.0.21 mit PostGres 8.0.9

Beitragvon Guggenmusiker » 7. Jan 2007 17:38

Hi

So, schlussendlich habe ich es auch geschafft Advanced Visual Confirmation 1.2b zu installieren. Ich verwende phpBB 2.0.21. Das einzige installierte AddOn ist LatexRenderer (aber eigentlich gehts gar nicht darum, denn die Probleme hätte ich auch sonst gehabt). Das Forum läuft auf PostGres 8.0.9. Ich musste also sämtliche SQL Befehle für PostGres umschreiben, siehe unten:

CREATE TABLE phpbb_captcha_config (
config_name character varying(255) DEFAULT'' NOT NULL ,
config_value character varying(100) DEFAULT'' NOT NULL ,
PRIMARY KEY (config_name)
);

INSERT INTO phpbb_captcha_config VALUES ('width', '350');
INSERT INTO phpbb_captcha_config VALUES ('height', '90');
INSERT INTO phpbb_captcha_config VALUES ('exsample_code', 'SAMPLE');
INSERT INTO phpbb_captcha_config VALUES ('background_color', '#E5ECF9');
INSERT INTO phpbb_captcha_config VALUES ('jpeg', '0');
INSERT INTO phpbb_captcha_config VALUES ('jpeg_quality', '50');
INSERT INTO phpbb_captcha_config VALUES ('pre_letters', '0');
INSERT INTO phpbb_captcha_config VALUES ('pre_letters_great', '0');
INSERT INTO phpbb_captcha_config VALUES ('font', '0');
INSERT INTO phpbb_captcha_config VALUES ('trans_letters', '0');
INSERT INTO phpbb_captcha_config VALUES ('chess', '0');
INSERT INTO phpbb_captcha_config VALUES ('ellipses', '1');
INSERT INTO phpbb_captcha_config VALUES ('arcs', '0');
INSERT INTO phpbb_captcha_config VALUES ('lines', '1');
INSERT INTO phpbb_captcha_config VALUES ('image', '0');
INSERT INTO phpbb_captcha_config VALUES ('bg_transition', '25');
INSERT INTO phpbb_captcha_config VALUES ('gammacorrect', '0.8');
INSERT INTO phpbb_captcha_config VALUES ('foreground_lattice_x', '15');
INSERT INTO phpbb_captcha_config VALUES ('foreground_lattice_y', '15');
INSERT INTO phpbb_captcha_config VALUES ('lattice_color', '#FFFFFF');
INSERT INTO phpbb_captcha_config VALUES ('avc_version', '1.2.0b');

ALTER TABLE phpbb_confirm ALTER COLUMN code TYPE character (10);


Wie ich das mit NOT NULL in der letzten Zeile machen muss, weiss ich leider nicht, aber ich habe per phpPgAdmin sichergestellt, dass NOT NULL steht. Stand übrigens schon NOT NULL.

Offenbar funktionierte alles wunderbar, allerdings wurde immer folgendes angezeigt:

Der eingegebene Bestätigungs-Code war nicht richtig


Also überprüfte ich nochmals, ob ich alles richtig geändert habe. Als ich dann für die Zeile:

ALTER TABLE `phpbb_confirm` CHANGE `code` `code` CHAR(10) NOT NULL;

anstatt:

ALTER TABLE phpbb_confirm ALTER COLUMN code TYPE character (10);

dies verwendete:

ALTER TABLE phpbb_confirm ALTER COLUMN code TYPE character varying(10);

funktionierte alles wunderbar.

So, nun denn klappt alles wunderbar bis jetzt. :)
Benutzeravatar
Guggenmusiker
 
Beiträge: 5
Registriert: 7. Jan 2007 17:19
Wohnort: Switzerland

Beitragvon AmigaLink » 7. Jan 2007 18:05

Vielen Dank für diese Info :!:

Ich kenne mich mit PostGres überhaupt nicht aus und denke mal das der ein oder andere deine Angaben sehr gut gebrauchen kann. :)
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon Guggenmusiker » 7. Jan 2007 19:24

Danke für deine positive Antwort.

Habe hier im Forum gesucht, ob jemand das gleiche Problem hat von wegen
Der eingegebene Bestätigungs-Code war nicht richtig

Bin dann auf diesen Beitrag gestossen. Aber das half mir ja nichts.

Bist du sicher, dass bei MySQL nicht varchar statt char stehen muss? Also bei meinem PostGres gehts nur mit character varying und wenn ich nur character nehme, gehts nicht.

So, habe soeben von Hand auf 2.0.22 upgedatet (wegen LatexRenderer). Funktioniert immer noch wunderbar. ;)
Benutzeravatar
Guggenmusiker
 
Beiträge: 5
Registriert: 7. Jan 2007 17:19
Wohnort: Switzerland

Beitragvon AmigaLink » 7. Jan 2007 20:10

Bei mySQL macht das keinen großen Unterschied. Genauer gesagt könnte varchar sogar gelegentlich zu Problemen führen (es sei denn ich passe den Code entsprechend an).

mySQL Referenzhandbuch hat geschrieben:Wenn CHAR-Werte gespeichert werden, dann werden sie nach rechts mit Leerzeichen bis auf die angegebene Länge aufgefüllt. Beim Abrufen von CHAR-Werten werden die am Ende stehenden Leerzeichen dann entfernt.
...
Im Gegensatz zu CHAR- werden VARCHAR-Werte nur mit so vielen Zeichen wie erforderlich zuzüglich eines Bytes gespeichert ...
VARCHAR-Werte werden beim Speichern nicht aufgefüllt. Ferner werden am Ende stehende Leerzeichen entsprechend dem SQL-Standard beim Speichern und Abrufen beibehalten.

Das Bedeutet im Klartext: Wenn in einem VARCHAR Feld ein String gespeichert wird der kürzer ist als die maximale Angabe der VARCHAR Feldes, dann wird dem String ein Leerzeichen an gehangen. Dieses Leerzeichen wird aber nicht wieder entfernt, wenn das Feld ausgelesen wird. CHAR Felder wiederum werden immer mit Leerzeichen aufgefüllt, die jedoch beim auslesen Automatisch wieder entfernt werden.

Die VC (egal ob der AVC oder das Original des phpBB) geht davon aus das im Code kein Leerzeichen existiert, stellt jedes Zeichen des Strings dar und Validiert dementsprechend auch jedes Zeichen.
Wenn ein Leerzeichen existieren würde, dann müsste dieses auch vom Benutzer eingegeben werden. Was er natürlich niemals tun wird, da es im CAPTCHA-Image ja nicht erkennbar ist. Folglich würde der eingegebene Code als falsch gewertet. :?
Es ist also (unter mySQL) vollkommen richtig, das CHAR verwendet wird. ;)
PostGres scheint da ein wenig anders zu Arbeiten.
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon Guggenmusiker » 18. Jan 2007 13:24

Keine Spamaccounts mehr seit dem Einbau. Das hätte ich ja nicht für möglich gehalten... :)
Benutzeravatar
Guggenmusiker
 
Beiträge: 5
Registriert: 7. Jan 2007 17:19
Wohnort: Switzerland

Beitragvon AmigaLink » 18. Jan 2007 13:34

Das freut mich zu hören. 8)

<!-- BEGIN Off_Topic -->
Dennoch würde ich dir zusätzlich noch diese Änderung für dein Board empfehlen. Und ein Blick in http://www.amigalink.de/cms.php?p=911 kann auch nicht schaden. :)
<!-- END Off_Topic -->
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW


Zurück zu Advanced Visual Confirmation



Wer ist online?

Mitglieder in diesem Forum: Magpie [Crawler] und 3 Gäste

cron