7 use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
9 # set the version for version checking
21 my $sessionID=$query->cookie('sessionID');
23 warn "SID: ".$sessionID;
26 my $sth=$dbh->prepare("select userid,ip,lasttime from sessions where sessionid=?");
27 $sth->execute($sessionID);
29 my ($userid, $ip, $lasttime) = $sth->fetchrow;
30 if ($lasttime<time()-20) {
32 warn "$sessionID logged out due to inactivity.";
33 $message="You have been logged out due to inactivity.";
34 my $sti=$dbh->prepare("delete from sessions where sessionID=?");
35 $sti->execute($sessionID);
36 } elsif ($ip ne $ENV{'REMOTE_ADDR'}) {
37 # Different ip than originally logged in from
38 warn "$sessionID came from a new ip address.";
39 $message="ERROR ERROR ERROR ERROR<br>Attempt to re-use a cookie from a different ip address.";
41 my $cookie=$query->cookie(-name => 'sessionID',
44 warn "$sessionID had a valid cookie.";
45 my $sti=$dbh->prepare("update sessions set lasttime=? where sessionID=?");
46 $sti->execute(time(), $sessionID);
47 return ($userid, $cookie, $sessionID);
53 warn "$sessionID wasn't in sessions table.";
55 ($sessionID) || ($sessionID=int(rand()*100000).'-'.time());
56 my $userid=$query->param('userid');
57 my $password=$query->param('password');
58 if ($userid eq 'librarian' && $password eq 'koha') {
59 my $sti=$dbh->prepare("insert into sessions (sessionID, userid, ip,lasttime) values (?, ?, ?, ?)");
60 $sti->execute($sessionID, $userid, $ENV{'REMOTE_ADDR'}, time());
61 return ($userid, $sessionID, $sessionID);
62 } elsif ($userid eq 'patron' && $password eq 'koha') {
63 my $sti=$dbh->prepare("insert into sessions (sessionID, userid, ip,lasttime) values (?, ?, ?, ?)");
64 $sti->execute($sessionID, $userid, $ENV{'REMOTE_ADDR'}, time());
65 return ($userid, $sessionID, $sessionID);
68 $message="Invalid userid or password entered.";
71 foreach (param $query) {
72 $parameters->{$_}=$query->{$_};
74 my $cookie=$query->cookie(-name => 'sessionID',
77 print $query->header(-cookie=>$cookie);
80 <body background=/images/kohaback.jpg>
85 <tr><th colspan=2><font size=+2>Koha Login</font></th></tr>
86 <tr><td>Name:</td><td><input name=userid></td></tr>
87 <tr><td>Password:</td><td><input type=password name=password></td></tr>
88 <tr><td colspan=2 align=center><input type=submit value=login></td></tr>
99 END { } # module clean-up code here (global destructor)