Schrift
[thread]2896[/thread]

session.id in Perl?



<< |< 1 2 >| >> 15 Einträge, 2 Seiten
Ishka
 2004-03-29 23:29
#29133 #29133
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Eigentlich lautet die Beschreibung des Forums zwar:

Allgemeines zu Perl
Allgemeine oder nicht andersweitig zuordenbare Fragen zu Perl, die NICHT die Webprogrammierung betreffen

aber ich will mal nicht so sein.

Ja, das gibts. Eine Session-id ist irgendeine Information, anhand derer du einen Browser wiedererkennen kannst. Folgende prinizipielle Möglichkeiten:

im Querry-String, als Post-Daten oder als Cookie.

Code: (dl )
1
2
3
4
use CGI;

my $cgi=CGI::->new;
my %form=$cgi->Vars;


würde zB. im Falle der ersten beiden Lösungen helfen. Weiterhelfen kann ich dir nur, wenn du mir genauer verraten wilst, was du vorhast.
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
ppm1
 2004-03-29 23:45
#29134 #29134
User since
2003-09-14
142 Artikel
BenutzerIn
[default_avatar]
Es geht vor allem darum, dass es nette leute gibt, die sich in meine seite einloggen und dann Programme benutzen die 10000 Aufrufe einer Seite machn und die gewonnen Daten aus werten und dann zu ner "Grafik" machen, Das belastet wunderbar den Server.


Naja deswegen dachte ich an sowas, wenn das hilft... Habt ihr event. andere Vorshcläge:?
Crian
 2004-03-30 11:56
#29135 #29135
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
[quote=Ishka,29.03.2004, 21:29]Eigentlich lautet die Beschreibung des Forums zwar:

Allgemeines zu Perl
Allgemeine oder nicht andersweitig zuordenbare Fragen zu Perl, die NICHT die Webprogrammierung betreffen

aber ich will mal nicht so sein.[/quote]
Ich verschieb den Thread mal :)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
ppm1
 2004-03-29 23:19
#29136 #29136
User since
2003-09-14
142 Artikel
BenutzerIn
[default_avatar]
Hallo

In PHP gibt es ja sowas wie ne session id.....

Gibts sowas auch in Perl oder kann man in Perl auch sowas in der Art machen?

Wenn ja dann wie? (Diese letzte Frage ist eigentlich unnütze, aber wie ich oft erfahren musst wurde auf die erste Frage häufig nur mit "JA" geantwort ohne Erklärung *G*)


Patrick Müller
[E|B]
 2004-03-29 23:32
#29137 #29137
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Ich sag nur: Suchmaschine! :D
=> http://board.perl-community.de/cgi-bin....d#idx21
Vielleicht hilft dir das weiter.

@Ishka

Schön dass du wieder auf dem Board bist! Viel zu tun gehabt letzte Zeit?
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
kabel
 2004-03-30 10:36
#29138 #29138
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
[quote=ppm1,29.03.2004, 21:45]Es geht vor allem darum, dass es nette leute gibt, die sich in meine seite einloggen und dann Programme benutzen die 10000 Aufrufe einer Seite machn und die gewonnen Daten aus werten und dann zu ner "Grafik" machen, Das belastet wunderbar den Server.[/quote]
???

willst du das verhindern? oder wa?
-- stefan
Taulmarill
 2004-03-30 12:12
#29139 #29139
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
also, um noch mal meinen senf dazu zu geben.
ich benutze für so was Apache::Session mit Session.
hier mal nen kleines codebeispiel:
Code (perl): (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
### the usual...
use strict;
use warnings;
### OO wrapper for Apache::Session
use Session;

sub session {
  my ( $self, $key ) = @_;
  
  my %session_config = (
    Store      => 'MySQL',
    Lock       => 'MySQL',
    Generate   => 'MD5',
    Serialize  => 'Storable',
    Handle     => $self->{'dbh'},
    LockHandle => $self->{'dbh'}
  );
  
  my $session = new Session $key, %session_config;
  
  if ( ! $session->get("username") ) {
    $session->set('username' => "anonymous");
    $session->set('user_id'  => "00000000");
  }
  
  return $session;
}


wenn $key hier undef ist (weil es noch keinen session key gibt) dann wird automatisch ein neuer generiert.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Ishka
 2004-03-30 16:56
#29140 #29140
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[E|B
,29.03.2004, 21:32][...]

@Ishka

Schön dass du wieder auf dem Board bist! Viel zu tun gehabt letzte Zeit?

Zum einen das, zum anderen tu ich mir momentan schwerer Fragen zu beantworten, als früher (sollte ich etwa aus der Übung gekommen sein), drum sag ich momentan vergleichsweise wenig..
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
ppm1
 2004-03-30 22:42
#29141 #29141
User since
2003-09-14
142 Artikel
BenutzerIn
[default_avatar]
[quote=kabel,30.03.2004, 08:36][quote=ppm1,29.03.2004, 21:45]Es geht vor allem darum, dass es nette leute gibt, die sich in meine seite einloggen und dann Programme benutzen die 10000 Aufrufe einer Seite machn und die gewonnen Daten aus werten und dann zu ner "Grafik" machen, Das belastet wunderbar den Server.[/quote]
???

willst du das verhindern? oder wa?[/quote]
Genau, das möchte ich verhindern.. Hat jemand nicht nen Vorschlag dazu?
Ishka
 2004-03-31 02:56
#29142 #29142
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
In dem Fall würd ich nicht mit Sessions arbeiten, sondern entweder mir die IPs merken (jo, ich weiß - man kann schnell IPs wechseln, aber mehr als 200 IP-Wechsel sind schon aufwendig), oder die Zugriffshäufigkeit insgesammt beschränken, bzw. wenn die Zugriffshäufigkeit eine gewisse Schranke übersteigt für 10 Sekunden oder so blocken.

ps:
der Nachteil an ner Session ist, daß man n Script nicht dazu zwingen kann sich die Session zu merken, das muß das Script wollen..\n\n

<!--EDIT|Ishka|1080687458-->
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
<< |< 1 2 >| >> 15 Einträge, 2 Seiten



View all threads created 2004-03-29 23:29.