XOOPS-magazine
Hauptmenu
Sidebar Navigation
Kategorien
Monatsarchive
RSS Feed
suck my

Breadcrumbs: Startseite

Social-Bookmarks
 

SecurityImage (Captcha) for your XOOPS

english.gif german.gif

Sicherheitgrafik (Captcha) für Formulare (Xoops 2.0.1x und 2.2.x, PHP5 kompatibel)

Diese Sicherheitsabfrage kann in jedes Modul eingebaut werden, wo ein Formular vorhanden ist.

Die Funktion

new SecurityImage( $Caption, [$ForMembers], [$NumChar], [$MinFontSize], [$MaxFontSize], [$BackgroundType], [$NumBackground], [$SessionName], [$SensitiveCase]);

Die Parameter

# $Caption (String) = Sicherheitscode der Session
# $ForMembers (bool) = Aktivierung für Member der Seite 1=Ja - 0=Nein
# $NumChar (int) = Anzahl der Zeichen des Sicherheitcodes
# $MinFontSize (int) = Minimale Textgröße
# $MaxFontSize (int) = Maximale Textgröße
# $BackgroundType (int) = Art der Schriftart
# $NumBackground (int) = Anzahl der Farben für das Bild (0 = nicht definiert)
# $SessionName (string) = Name der Session
# $SensitiveCase (bool) = Deaktivieren der Abfrage 1=Ja - 0=Nein

Type der Grafik

* 0=Gitter
* 1=Kreise
* 2=Linien
* 3=Rechtecke
* 4=Elipsen
* 5=Polygone
* 100=Dateien im Ordner (GIF/JPG/PNG)

Ordnererstellung und Freigabe

Ordner für die Grafiken ist /uploads/securityimage/

Ordner für die Schriften ist /uploads/securityimage/fonts/

Ordner für den Cache ist /uploads/securityimage/cache
Wichtig, der Ordner muß auf CHMOD 777 gestellt werden!!!

So nun geht es zur Installation:
Einfach alle Dateien auf den Webserver kopieren und die Rechte setzen.

Danach die Datei /language/german/global.php öffnen und folgende Definitionen ergänzen:

define("_SECURITYIMAGE_CODE","Sicherheitscode");
define("_SECURITYIMAGE_GETCODE","Bitte Sicherheitscode eingeben");
define("_SECURITYIMAGE_ERROR","falscher Sicherheitscode"); define("_SECURITYIMAGE_GDERROR","<strong><font color="#cc0000">GD-Bibliothek ist nicht installiert</font> : <a target="php" href="http://de2.php.net/manual/de/ref.image.php">PHP Manual</a></strong>
");

Weiter muß die Datei class/xoopsformloader.php ergänzt werden. Einfach am Ende folgendes anhängen:

include_once XOOPS_ROOT_PATH."/class/xoopsform/securityimage.php";

Nun geht es ans Modul:
Dies ist nun etwas schwieriger, da jedes Modul anders programmiert ist, generell kann man aber sagen, dass es 1 oder 2 Dateien sind, die bearbeitet werden müssen. Ich habe mir hier mal das orginale Contakt Modul (V 1.0) genommen und werde daran erklären, was gemacht werden muß.

Als erstes öffnen wir die Datei /modules/contakt/contactform.php

Dort suchen wir den Button für das übermitteln des Formulares. Diese Zeile kann von Modul zu Modul anders sein. Hier wird nun die Sicheheitsabfrage in das Formular integriert.

hier ist es folgende Zeile:

$contact_form->addElement($submit_button);

Davor fügen wir folgenden Code ein:

//Sicherheitscode
if (defined('SECURITYIMAGE_INCLUDED')) {
$security_image = new SecurityImage( _SECURITYIMAGE_GETCODE );
if ($security_image->render()) {
$form->addElement($security_image, true);
}
}
//Sicherheitscode Ende

und passen die Zeile für das Einfügen des Elementes an:

$form->addElement($security_image, true);

ändern in

$contact_form->addElement($security_image, true);

Dies muß je nach Modul und Variable für das Formular gemacht werden.

Das war es in dieser Datei.

Nun öffnen wir die Datei /modules/contakt/index.php. Hier suchen wir die Ecke, wo die Überprüfung des Formulares durchgeführt wird, hier ist es folgender Bereich:

if ( !empty($usersCompanyLocation) ) {
$adminMessage .= _CT_LOCATION." $usersCompanyLocationn";
}

Dieser Bereich ist je nach Modul unterschielich.

Hiermit wird die Funktion erstellt. Unter diesen Zeilen fügen wir folgenden Code ein:

//Sicherheitscode
include_once(XOOPS_ROOT_PATH . "/class/xoopsformloader.php");
if ( defined('SECURITYIMAGE_INCLUDED') &&!SecurityImage::CheckSecurityImage() ) {
redirect_header("Pfad zum redirect_header", 2, _SECURITYIMAGE_ERROR ) ;
exit();
}
//Sicherheitscode Ende

Nun müssen wir noch den Pfad in dieser Zeile anpassen:

Dies ist je nach Modul unterschiedlich.

redirect_header("Pfad zum redirect_header", 2, _SECURITYIMAGE_ERROR ) ;

ändern in

redirect_header("index.php", 2, _SECURITYIMAGE_ERROR ) ;

Wenn alle Änderungen gemacht sind, sollte nun im Kontaktformular ein Sicherheitsbild generiert werden, und nur mit dem entsprechneden Code die Daten übergeben werden.

Es kann vorkommen, dass es wie oben beschriebn nur 1 Datei ist die editiert werden muß, dann ist alles in dieser einen Datei zu machen.

Den Hack findet ihr hier http://www.dugris.info/wfdownloads-viewcat.cid-4.htm

und die Erklärung in französisch hier http://www.dugris.info/smartsection-item.itemid-1-page-0.htm

Besten Danke an DuGris die diesen Hack erstellt haben.

(THX to: @Knallkopp_02)

8 Kommentare

  1. Kommentar von ffxk:

    Can be used in wordpress? Ask how do?

  2. Kommentar von Rene Sato:

    For Wordpress I use other Captcha. I will show it soon here in the Blog. (As a user one does not have to enter a code, as a guest must one a code enter.)

  3. Kommentar von ffxk:

    Will the concrete should be how do?

  4. Kommentar von ffxk:

    Of course I said yes XPress (WordPress for Xoops) .

  5. Kommentar von Ganga:

    kann man das in news(koments) einbauen sato?

  6. Kommentar von Rene Sato:

    Die XOOPS Kommentare sind Global, also Modulübergreifend. Aber es gibt für die XOOPS-Version 2.0.17 eine Lösung: http://www.dugris.info/modules/wfdownloads/viewcat.php?cid=12

  7. Kommentar von Ganga:

    Danke ich probire das jetz

  8. Kommentar von pinguman:

    Hallo Sato,
    Can i add:

    define(”_SECURITYIMAGE_CODE”,”Securitycode”);
    define(”_SECURITYIMAGE_GETCODE”,”Blease insert the security code”);
    define(”_SECURITYIMAGE_ERROR”,”wrong security code”); define(”_SECURITYIMAGE_GDERROR”,”GD-library is not installed : PHP Manual
    “);

    everywhere at file /language/german/global.php? Or i have to add at a specific File Name?
    Thanx for your help.

Einen Kommentar hinterlassen

This is a captcha-picture. It is used to prevent mass-access by robots. (see: www.captcha.net)

You must read and type the 5 chars within 0..9 and A..F, and submit the form.

  

Oh no, I cannot read this. Please, generate a

Powered by XOOPS 2.0.16 © 2001-2007 The XOOPS Project

Design by XOOPS-magazine.com Powered by XOOPS 2.0.16 | Ref: 1220636711
Impressum / Disclaimer Impressum | Kontakt / Contact Kontakt | Xoops Headlines all Xoops-Headlines | Xoops Headlines Sitemap | Xoops Headlines Stats

Admin-Infos: 0.863 Sekunden / secounds + 3 Abfragen / queries
Special thanks to Link > matchan matchan and Link > kruxmux kruxmux!



xoops topliste