#!/usr/bin/perl
# ================================================================================
# $Rev: 361 $ $URL: file:///C:/daten/archiv/PlayChess/trunk/cgi/login.cgi $
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Author: $Author: epts $
# Modified: $Date: 2008-04-29 18:06:39 +0200 (Di, 29 Apr 2008) $
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Copyright at playchess.de - all rights reserved
# ================================================================================
use CGI qw( :standard );
use CGI::Carp qw(fatalsToBrowser);
use lib "../cgi-bin";
use PC;
use Template;
use Util;
use MyDbi;
use PCSession;
use Chronos;
use PCConst;
##--------------------------------------------------------------------------
## LOCAL CONFIGURATION
##--------------------------------------------------------------------------
#local $config = getConfig();
#local $URL = $ENV{DOCUMENT_URI}; # url of your domain
#local $ROOT = $ENV{DOCUMENT_ROOT}; # path to document root
#local $SERVER = $ENV{SERVER_NAME}; # server name
#local $HOST = $ENV{HTTP_HOST};
#local $| = 1;
local ($starttime,$endtime) = (time(),0);
local $cgi = CGI->new();
local $sobj = PCSession->new( $cgi );
local $sname = $sobj->getValue( 'name' );
local $spasswd = $sobj->getValue( 'passwd' );
local $action = $sobj->getCgiParam( 'action' ) || 'login';
local $name = $sobj->getCgiParam( 'name' );
local $passwd = $sobj->getCgiParam( 'passwd' );
local $remember = $sobj->getCgiParam( 'remember' );
local $redir = $sobj->getCgiParam( 'redir' );
local $errstr = $sobj->getCgiParam( 'err' );
# login
# ~~~~~
if( $action eq 'login' )
{
unless( $name || $passwd )
{
my $usercookie = $cgi->cookie('PlayChessUser');
($name,$passwd,$language) = split( /,/, $usercookie );
# print "Cookie: name=$name passwd=$passwd language=$language
\n";
$sobj->setValue( 'language', $language ) if( $sobj && $language );
}
}
# logout - end of session
# ~~~~~~~~~~~~~~~~~~~~~~~
elsif( $action eq 'logout' )
{
# MISSING: deletion of session file (local + online) !!!!!
#$sobj->delete();
}
ShowPage($errstr);
# print "checkTasks is called...
\n";
# Chronos->checkTasks();
exit(0);
#------------------------------------
sub ShowPage
#------------------------------------
{
my( $errstr ) = @_;
my $file = "login.tpl";
my $tpl = Template->new( $file );
my $dispname = $name;
$tpl->addMakro( "NAME", $name );
$tpl->addMakro( "PASSWD", $passwd );
$tpl->addMakro( "REDIR", $redir );
$tpl->addMakro( "ERR", $errstr );
$tpl->addMakro( "remember", $remember );
$tpl->addMakro( $errstr, 1 );
$tpl->addSelectMakro( "language", $sobj->getValue('language') );
#print "Select: language=$language
\n";
my $txt = $tpl->Expand($sobj);
print $txt;
}