Alain: cookie einlesen vom server -> re test script von selfhtml

Beitrag lesen

hi Struppi,,

Das ist mein code vom login script:
cookies();
sub cookies
{
my $cgi = new CGI;
my $c1 = $cgi->cookie(-name=>'TLogin')||'unbekannt';
my $now = time();
my $u = "$username"||'';#schon definiert
my $p = "$password"||'';

Du musst Werte nicht in Anführungszeichen schreiben.
$username und $password sind definiert?

achso?!Ja der wert von $u un $p ist ausserhalb der sub definiert mit
my $username = CGI::param('username')||'unbekannt';
my $password = CGI::param('password')||'unbekannt';
und bekommt diese vom login-formular.html geschickt.
Diese sub ist im login.pl
Das andere cookie script hat dieselbigen eingaben und ist
auf der login.html seite eingebunden-liegt auf derselben domain.
Jedoch fehlen da die werte von $u und $p ich dachte mir so,wenn
ich einmal den wert habe vom cookieNr.2(erfolreich eingeloggt im login.pl)und später wieder auf die login.html seite komme,hol ich mir die werte vom cookie.Nr1,welches urspünglich die ersten werte gelesen und gesetzt hat.

$c1 = $cgi->cookie(-name=>'TLogin',
-value=> "$now|$u|$p",
-expires=>'+2d',
-path=>'/');

#warum verliert es den wert der values $u|$p auf der normalen seite?
#sollte doch nicht sein?

wenn diese auf der gleichen Domain liegen nicht.

hat $u und $p auch wirklcih immer einen wert?

nö nicht immer,jedenfalls nicht auf der login.html seite

my $query = new CGI;
print $cgi->header(-cookie=> $c1);

So wird nur ein Cookie gesetzt.

also im prinzip möchte ich ja nur die werte $u und $p speichern,die aber fehlen beim ersten aufruf der seite,beim erfolgreichen login,werden sie wieder vom login.pl geprüft und die werte gesetzt.Wenn ich aber wieder komm auf die erste seite,sind die werte weg :(,das cookie ist aber noch da.
Hier der code vom ersten cookie:
#!/usr/bin/perl -w
use CGI;
use strict;
use CGI::Carp qw(fatalsToBrowser);
my $cgi = new CGI;
my $oldcookie = $cgi->cookie(-name=>'TLogin')||'';#erstmal lesen
if (!$oldcookie)   #wenn kein oldcookie
{
my $now = time();
my $u = CGI::param('username')||'unbekannt';
my $p = CGI::param('password')||'unbekannt';#wert verm. unbekannt

my $c1 = $cgi->cookie(-name=>'TLogin',
-value=> "$now|$u|$p",         #-value=> '$now|$u|$p'...so besser?
-expires=>'+2d',
-path=>'/');#cookie wird erstellt

print $cgi->header(-cookie=> $c1);#schicke alle werte in 1 cookie
}
else
{
return 0;  #tue nix
}

Gruss
Alain