Schrift
[thread]697[/thread]

Session-Datei mit festgelegtem Namen (Seite 2)



<< |< 1 2 3 >| >> 24 Einträge, 3 Seiten
pq
 2006-04-04 19:33
#7181 #7181
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=opi,04.04.2006, 16:08]Aber gehen dann nicht eventuell wichtige Informationen
verloren? In einem Shop würde ich zum Beispiel in einer
Session abspeichern, für welche Produkte sich ein Kunde ganz
besonders interessiert hat. Bei der nächsten Anmeldung
erscheinen dann spezielle Angebote, für die er sich das letzte
Mal interessiert hat.

Diese Info's würden bei einer Neuanlage oder einer Löschung
der alten Session nicht mehr zur Verfügung stehen, oder?[/quote]
für sowas sind sessions auch nicht gedacht. sessiondaten sind solche, die
nach einer halben stunde (z.B.) wieder verschwinden. alles andere speichert
man permanent in der datenbank.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pktm
 2006-04-04 19:58
#7182 #7182
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Quote
die nach einer halben stunde (z.B.) wieder verschwinden

Ja, das hätte ich auch gerne :-)
http://www.intergastro-service.de (mein erstes CMS :) )
pq
 2006-04-04 20:22
#7183 #7183
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=pktm,04.04.2006, 17:58]
Quote
die nach einer halben stunde (z.B.) wieder verschwinden

Ja, das hätte ich auch gerne :-)[/quote]
wo ist das problem?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
MartinR
 2006-04-05 09:09
#7184 #7184
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
[quote=pq,04.04.2006, 18:22][quote=pktm,04.04.2006, 17:58]
Quote
die nach einer halben stunde (z.B.) wieder verschwinden

Ja, das hätte ich auch gerne :-)[/quote]
wo ist das problem?[/quote]
Hi,

vielleicht hilft das hier:

CPAN:CGI-Session-ExpireSessions
pktm
 2006-04-05 13:47
#7185 #7185
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
[quote=pq,04.04.2006, 18:22][quote=pktm,04.04.2006, 17:58]
Quote
die nach einer halben stunde (z.B.) wieder verschwinden

Ja, das hätte ich auch gerne :-)[/quote]
wo ist das problem?[/quote]
Da gibt es mehrere Varianten:
a) der benutzer meldet sich nicht ab sondern schließt einfach den Browser
b) während der Entwicklung werden (z.B. bei fehlernder sid-Übergabe weil ich es mal wieder versäumt habe einem Link diese anzuhängen) werden hunderte Sessions angelegt
c) $session->close(); löscht die Dateien nicht, ich kann aber (später) auch nicht mehr darauf zugreifen

b) ist mein aktuelles Problem gewesen, a) wird mein neues Problem sein.

Es läuft darauf hinaus, dass die Session-Dateien nciht aufgeräumt werden. Jedesmal per Hand den Session-Ordner aufräumen zu lassen ist ein irrsinniger Aufwand und Cron-Jobs werden immer noch für teures Geld verkauft (was ich nicht investieren möchte).

Zu a): Es bleibt auch noch das oben gestreifte Problem, dass Benutzereinstellungen, wenn man nicht gerade bei jedem Aufruf eine Datenbankabfrage losschicken möchte um diese zu speichern, erst an einem bestimmten Punkt gespeichert werden (z.B. am Ende des Arbeitsganges oder beim Abmelden). Werden diese Punkte nicht ordnungsgemäß erreicht (Browser schließen, oder unabsichtlich einfach mal ein PC-Absturz oder eine automatisch ausgehende Internet-Verbindung), so gehen die Sitzungsdaten verloren.

Das alles ist immer vor dem Hintergrund, dass keine Kekse verwendet werden. Ich gehe davon aus, weil es der schlechteste anzunehmende Fall ist und ich gerne auf der sicheren Seite stehe.

Daher die Idee mit dem fixen Namen für Sessions...
http://www.intergastro-service.de (mein erstes CMS :) )
renee
 2006-04-05 14:19
#7186 #7186
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Zum Thema Cron-Jobs: Das hier könnte ganz interessant sein: http://www.jgs-xa.de/info_34_Service-CronJob.html
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pq
 2006-04-05 15:08
#7187 #7187
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=pktm,05.04.2006, 11:47]Da gibt es mehrere Varianten:
a) der benutzer meldet sich nicht ab sondern schließt einfach den Browser
b) während der Entwicklung werden (z.B. bei fehlernder sid-Übergabe weil ich es mal wieder versäumt habe einem Link diese anzuhängen) werden hunderte Sessions angelegt
c) $session->close(); löscht die Dateien nicht, ich kann aber (später) auch nicht mehr darauf zugreifen

b) ist mein aktuelles Problem gewesen, a) wird mein neues Problem sein.

Es läuft darauf hinaus, dass die Session-Dateien nciht aufgeräumt werden. Jedesmal per Hand den Session-Ordner aufräumen zu lassen ist ein irrsinniger Aufwand und Cron-Jobs werden immer noch für teures Geld verkauft (was ich nicht investieren möchte).[/quote]
also ich sehe da immer noch kein problem. wenn du keine
cronjobs benutzen kannst, musst du die aufgabe des
aufräumens halt ins script selbst verlagern.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
bloonix
 2006-04-05 15:25
#7188 #7188
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Hallo ptkm,

[quote=pktm,05.04.2006, 11:47]a) der benutzer meldet sich nicht ab sondern schließt einfach den Browser[/quote]

vor genau dem gleichen Problem habe ich auch gestanden und
habe es wie folgt gelöst.

In jedem Benutzerprofil gibt es einen Parameter namens SID
(Beispiel)

Code: (dl )
SID=839qfh38934fh349ghq3g8h80af234


hinter dem die Session-ID abgelegt wird, nachdem sich ein
Benutzer anmeldet. Wenn der Benutzer nun so frei war und
sich sauber abmeldet, wird die SID ganz einfach wieder
entfernt...

Code: (dl )
SID=


Sobald sich der Benutzer also anmeldet und meine Anmelde-
routine feststellt, dass der SID Parameter nicht leer ist,
weiß die Routine, dass der Browser einfach geschlossen wurde.
Daraufhin setzt die Routine ein Unlink auf die alte Session-ID
ab und der Benutzer erhält den freundlichen Sicherheits-
hinweiß, dass er bitte den Abmelden-Button nutzen
soll, als den Browser einfach zu schließen. Auf diese Weise
halte ich mir den Müll vom Hals, der sich zwangsläufig
anhäufen kann.

Ich habe sogar noch einen Codefetzen aus meiner Loginroutine
gefunden :-)
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
            # a warn message will be send to the user if he forget to logout
           # at his last session, if not, then we divert to the host list

           if ($profile->{SID}) {

              # we cleanup the session directory

              if (-e "../../sessions/$profile->{SID}") {
                 unlink("../../sessions/$profile->{SID}") or die "BLOONIX-ERROR-102 $profile->{SID}";
              }

              my $template = HTML::Template->new(filename => '../tmpl/login_warn.tmpl');


Gruss,
opi\n\n

<!--EDIT|opi|1144242848-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
pktm
 2006-04-05 16:56
#7189 #7189
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hm ja, das ist cool. Danke.
http://www.intergastro-service.de (mein erstes CMS :) )
esskar
 2006-04-06 02:19
#7190 #7190
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
meine Erfahrungen zu Session-Dateien:

es muss immer einen Prozess geben, der alte Session-Dateien wegputzt. ob dies bei jedem Request passiert oder per Cron-Job muss man selbst entscheiden. Es kann auch sinnvoll sein, sich die Updatezeiten der Sessions in einer Datenbank zu speichern: so kann man nämlich mit einer kleinen SQL Anfrage entscheiden, welche Sessions "expired" sind und die dazugehörigen Session-Dateien löschen.
<< |< 1 2 3 >| >> 24 Einträge, 3 Seiten



View all threads created 2006-03-23 12:38.