Anbei ein kleiner Auszug aus unserer Moduldokumentation
die Basis unseres Webtist CMS Systems
Das System setzen wir erfolgreich seit Jahren
bei unseren Geschäftspartnern ein, es wird stets weiterentwickelt
und der Technik entsprechend angepasst.
Modulbeschreibung user
Version 1.26
Userverwaltung Anmeldung Abmeldung Passwort Mail und Berechtigungspruefung
AUTOR
Marc Hanschur, Space4Data / WEBTIST [marc@hanschur.de]
SYNOPSIS
nachfolgende Module werden benoetigt
webtist
DBI
Aufruf
use webtist::user;
$webtist::user = new webtist::user();
Mehrsprachigkeit Name "USR"
Mehrsprachigkeit fuer Mailtemplate "USRMTMPL"
Definitionen in der web.cfg
USROK => 1=ja 0=nein diese Variable wird als Zugriff aus anderen Modulen verwendet
USRDB => welche Datenbank wird verwendet (dbi:mysql:space4data:localhost)
USRDBSID => bei Oracle wird dieser ben�igt (wert TCKDB dbi:oracle:host=xx wert TCKDBSID sid=db) bitte nur
definieren wenn eine Oracle als DB diensne soll
USRDBUSR => welcher User hat select rechte auf die DB (Username)
USRDBPASS => wie lautet das Passwort des Users (Passwort)
USRPASSMAILTMPL => Passwort mailtemplate
USRSTAT*MAILTMPL => die Mailtemplates der verschiedenen Statis (* = 0,1,2,3)
Tabellenstruktur von der Userverwaltung
CREATE TABLE fldval (
fldval_usr_nickname varchar(20) NOT NULL default '',
fldval_usrfld_id varchar(20) NOT NULL default '',
fldval_value varchar(70) NOT NULL default '',
KEY fldval_usr_nickname (fldval_usr_nickname),
KEY fldval_usrfld_id (fldval_usrfld_id),
KEY fldval_value (fldval_value)
) TYPE=MyISAM;
CREATE TABLE grpval (
grpval_grp_id varchar(20) NOT NULL default '',
grpval_usrfld_id varchar(20) NOT NULL default '',
grpval_value varchar(70) NOT NULL default '',
KEY grpval_grp_id (grpval_grp_id),
KEY grpval_usrfld_id (grpval_usrfld_id),
KEY grpval_value (grpval_value)
) TYPE=MyISAM;
CREATE TABLE usr (
usr_nickname varchar(20) NOT NULL default '',
usr_pwd varchar(20) default NULL,
usr_grp_id varchar(20) default NULL,
usr_stat int(11) default '1',
usr_name1 varchar(70) default NULL,
usr_name2 varchar(70) default NULL,
usr_adr1 varchar(70) default NULL,
usr_adr2 varchar(70) default NULL,
usr_adr3 varchar(70) default NULL,
usr_zip varchar(10) default NULL,
usr_city varchar(70) default NULL,
usr_country_id char(2) default NULL,
usr_lang_id char(3) default NULL,
usr_phone1 varchar(35) default NULL,
usr_phone2 varchar(35) default NULL,
usr_phone3 varchar(35) default NULL,
usr_fax1 varchar(35) default NULL,
usr_fax2 varchar(35) default NULL,
usr_email1 varchar(70) default NULL,
usr_email2 varchar(70) default NULL,
usr_comment varchar(255) default NULL,
usr_lastuse timestamp(14) NOT NULL,
usr_failedlogins int(11) default NULL,
usr_valuemail enum('0','1') NOT NULL default '0',
PRIMARY KEY (usr_nickname),
UNIQUE KEY usr_nickname (usr_nickname)
) TYPE=MyISAM;
CREATE TABLE wusr (
wusr_wwwid varchar(255) NOT NULL default '',
wusr_usr_nickname varchar(20) default NULL,
wusr_timestamp timestamp(14) NOT NULL,
PRIMARY KEY (wusr_wwwid),
UNIQUE KEY wusr_wwwid (wusr_wwwid)
) TYPE=MyISAM;
METHODS
new
Konstruktor
announcelogout
Anmeldefenster / Abmeldebutton und mehr (Password vergessen) Funktionen
Aufruf
&announcelogout($template)
Parameter
$template => das zu �fnende Template mit Pfadangabe
Definitionen in der web.cfg
USRANMELD => Anmelde und Logout Template
USRPASSMAILTMPL => Mailtemplate fuer Passwordversand
Subject muss in folgender Form enthalten Sein <mailsubject>TEXT oder Mehrsprachigkeit</mailsubject>
USRMAILFROM => Name des Absenders
USRMAILFROMADR => Mailadresse des Absenders
USRMAXFAILEDLOGINS => Maximale anzahl ab wann das Profil inaktiv gesetzt wird
zusaezlich sollte es ein File im Configverzeichnis geben das wie
folgt bennant ist (usrmeldung.txt) dieses file enth�t Meldungstexte wie
"Useranmeldung erfolgreich" dieser kann auch in Mehrsprachigkeit gestaltet werden
siehe webtist::weblang
Definitionen in der usrmeldung.txt
USRANNOUCNCEOK => Anmeldungstext erfolgreiche Anmeldung
USRPWDMAILOK => Passwortversand OK
USRNICKNOTFOUND => Usernickname nicht gefunden
USRANNOUCNCEERROR => Fehler passwort oder Benutzername falsch oder Profil inaktiv
USRLOGOUTOK => Userlogout war erfolgreich
USRDBNOTOK => DB Handle nicht OK
USRNICKNAMENOTOK => Nickname ist ungueltig
USRPASSWDNOTOK => Password ist ungueltig
Rueckgabe
Skalar mit entsprechendem HTML Inhalt (Formularfelder fuer An/Abmeldung)
deloldwusr
l�cht alle alten User aus der wusr TBL
Aufruf
&deloldwusr($zeit)
Parameter
$zeit => Max User Login
in web.cfg
USRLOGOUTTIME => in Min wie z.B. 60 = 60 Minuten
Rueckgabe
keine Rckgabe
usrfields
Werte aus der Tabelle usrfields holen und in Globale Variable webtist
oder als Hasch Rckgabewert
Aufruf
&usrfields($sessionidnickname,$todo)
Parameter
$qsessionidnickname => die Session ID des Users oder der Username
$todo => was soll gemacht werden
0 oder nix => alle Values werden in Form USR_xxx = Inhalt (Value) in die Globalen Webtist param abgelegt
1 => der Hasch mit den Werten wird zurckgegeben (Session ID wird uebergeben)
2 => der Hash mit den Werten wird zurueckgegeben (User ID wir uebergeben)
Definitionen in der web.cfg
siehe SUB announcelogout
Rueckgabe
nur in Fall 1 wird der Hasch zurueckgegeben
getnickname
Ueber die Session ID den Usernickm?name holen
Aufruf
&getnickname($qsessionid)
Parameter
$qsessionid => die Session ID
Definitionen in der web.cfg
siehe SUB announcelogout
Rueckgabe
als Skalar der Username
getusrdata
Auslesen der Userdaten aus Tabelle usrmgmt.usr
Aufruf
&getusrdata($user)
Parameter
$user => User dessen Daten ausgelesen werden
Definitionen in der web.cfg
siehe SUB announcelogout
USRUSRFLD;usr_pwd:usr_grp_id;mehrere felder durch : getrennt angeben;
Rueckgabe
Hasch mit Texten als Inhalt zugriff
chkusrname
Checken des Usernames auf gueltigkeit
Aufruf
&chkusrname($name)
Parameter
$name => der Username
Definitionen in der web.cfg
Rueckgabe
wenn der Username OK ist wird 0 zurckgegeben ansonsten 1
chkusrpass
Checken des Userpasswortes auf gueltigkeit
Aufruf
&chkusrpass($pass)
Parameter
$pass => das Password
Definitionen in der web.cfg
Rueckgabe
wenn das Passwort OK ist wird 0 zurckgegeben ansonsten 1
chknickname
Checkt den Nickname auf Vorhandensein in der DB
Aufruf
&chknickname($nickname)
Parameter
$nickname => der Nickname des Users
Rueckgabe
Skalar mit 1 fuer fehler und 0 fuer OK
chkusr
Userueberpruefung
Aufruf
&chkusr($morequery,$qnickname)
Parameter
$morequery => ein weiteres SQL Query (incl WHERE)
$qnickname => welcher nickname soll auf Berechtigung gepueft werden
Rueckgabe
Skalar mit 1 fuer fehler und 0 fuer OK
saveusrlastquery
User last Query
Aufruf
&saveusrlastquery($query,$qwwwid)
Parameter
$query => SQL Query
$qwwwid => wwwid des Users
Rueckgabe
Array[0] mit 1 fuer fehler und 0 fuer OK
Array[1] SQL
getuserlastquery
Ueber die Session ID das letzte query holen
Aufruf
&getuserlastquery($qsessionid)
Parameter
$qsessionid => die Session ID
Definitionen in der web.cfg
siehe SUB announcelogout
Rueckgabe
als Skalar der letzte query
usrpopup
Userpopup
Aufruf
&usrpopup($db,$dbsid,$dbusr,$dbpass,$morequery,$qnickname)
Parameter
$db => Datenbank (
$dbsid => Datenbank Sid (nur bei Oracle)
$dbusr => Datenbank user
$dbpass => Datenbank passwort
$morequery => ein weiteres SQL Query (incl WHERE)
$qnickname => welcher nickname soll ggf selectiert werden
Rueckgabe
die einzelnen "<option ...></option> angaben in einem Skalar
usrgrpidpopup
GruppenID aus DB fuer POP UP Menue in Benutzerverwaltung
Aufruf
&usrgrpidpopup($db,$dbusr,$dbpass,$grpid)
Parameter
$db => Datenbank (
$dbusr => Datenbank user
$dbpass => Datenbank passwort
$grpusrid => zu welcher Gruppe geh�rt der User
$qgrpid => welche Gruppen ID soll selectiert werden wird meist per Query uebergeben
$morequery => fuer die erweiterung
Rueckgabe
die einzelnen "<option ...></option> angaben in einem Skalar
WARNING
ich kann im Moment keine Warnungen erkennen
BUGS
Transparent wird durch eine Remotedelegationkerbe vollendet, die unter bestimmten Umstaeden brechen
konnte. Wenn dieses Ihnen geschieht, informieren Sie mich bitte.
Informieren Sie mich, wenn Sie einiges finden.
ACKNOWLEDGEMENTS
Thanks to Herz Susanne, Andreas Kaspar for inspiration, laughs and all 'round good times;
and Linus Torvalds for all the great software.
LICENSE
Dieser Code ist freie Software; Sie koenen ihn neuverteilen und/oder ihn unter den gleichen
Bezeichnungen wie Perl selbst aedern.
DISCLAIMER
Dieses ist freie Software. Wenn es bricht, besitzen Sie beide Teile.
POD ERRORS
Hey! The above document had some coding errors, which are explained below:
Around line 46:
Non-ASCII character seen before =encoding in 'Namensl�ge'. Assuming UTF-8