Thread Session gesucht: Womit arbeitet ihr? (19 answers)
Opened by pktm at 2004-04-03 21:00

pktm
 2004-04-11 11:35
#1875 #1875
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Ja, wie gesagt, diese Doku ist echt gut, aber ich suche auch eher die direkte Verwendung im Code, wie ist das Scipt aufgebaut, überprüft ihr auf bestimmte Parameter, benutzt ihr zwingend Cookies, IP-Sperre etc.
Mein Ansatz sieht im MOment so aus:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# ---- CGI
my $cgi = CGI->new();                                                           # neues CGI-Objekt erzeugen
my $query = $cgi->Vars();                                                       # Parameter in Hash einlesen
# ---- SESSION - Settings (wird erst nach Login erstellt)
$ldata->{'data'}->{'sessionFolder'} = File::Spec->tmpdir() if File::Spec->tmpdir();
my $session = new CGI::Session(undef, $cgi, {Directory=>$ldata->{'data'}->{'sessionFolder'}});
$session->name("sid");
$session->expire($ldata->{'data'}->{'sessionExpires'});
$session->load_param($cgi); # felder angeben?
# ---- TEMPLATE
my $template = HTML::Template->new(
   filename => $ldata->{'data'}->{'main_template'},
   die_on_bad_params => $ldata->{'data'}->{'template'}->{'die_on_bad_params'},
   vanguard_compatibility_mode => $ldata->{'data'}->{'template'}->{'vanguard_compatibility_mode'},
   strict => $ldata->{'data'}->{'template'}->{'strict'},
   associate => [$cgi, $session],
   case_sensitive => 1,
); #
$ldata->setGlobTemplateVars( $template );
# --------------------------------------------------------
# LOGIK
# --------------------------------------------------------

if( $session->param('logedIn') ) { # wenn session existiert

# -------------- main-logic-part

$ldata->setSeite( $template, 'Administration', "Session: $session->id(); Status: " . $session->param('logedIn') );

# -------------- /main-logic-part

}else{ #wenn keine session existiert / session nicht gültig ist
if(exists($query->{'action'})
and defined($query->{'action'})
and $query->{'action'} eq 'login'
and exists($query->{'usn'})
and defined($query->{'usn'})
and exists($query->{'pwd'})
and defined($query->{'usn'}) ){
# Wenn Login, Action, USN und PWD übergeben, Validate!
if( main::login( $query->{'usn'}, $ldata, $dbh ) ){
# Fehler beim Login (falscher USN | falsches PWD), erneut einloggen
$ldata->setSeite( $template, 'Login - Fehler', main::getTemplate('s_login', $ldata, [$template]) );
}else{
# Login ok, weiter
main::setLoginDaten( $session, $cgi );
# -- Ausgabe setzen
$ldata->setSeite( $template, 'Login erfolgreich', main::getTemplate('s_login_succes', $ldata, [$template]) );
}
}else{
# Erstaufruf Login-Form
$ldata->setSeite( $template, 'Login', main::getTemplate('s_login', $ldata, [$template]) );
}
}

# -- Ausgabe
print $cgi->header(-expires=>'+1s',
-type=>'text/html',
-cookie=> $cgi->cookie( 'sid' => $session->id() ),
);
warningsToBrowser(1);
main::setBenchmark( $template ); # Benchmark
print $template->output();


Und da das nicht wirklich viel ist, bzw. auch ncoh  nicht geht ( :blush: ) dachte ich mir, ich sehe mir mal ein Beispiel der Verwendung davon an.
mfg pktm

EDIT: Code aktualisiert\n\n

<!--EDIT|pktm|1081705608-->
http://www.intergastro-service.de (mein erstes CMS :) )

View full thread Session gesucht: Womit arbeitet ihr?