cookies abfragen ob wert unbekannt?
Alain
- cgi
0 Hans35- perl
0 Alain
hallo guten Morgen,
Ich hab nun ein problem mit dem cookie setzen bzw. abfragen welcher wert
das cookie nun hat.
Dazu benutzte ich die vorgabe von selfhtml:
#!/usr/bin/perl -w
use strict;
use CGI;
my $cgi = new CGI;
use CGI::Carp qw(fatalsToBrowser);
my $CTIME_String = localtime(time);
my $altCookie = $cgi->cookie(-name=>'members');
my $neuCookie = $cgi->cookie(-name=>'members',
-value=>$CTIME_String,
-expires=>'+3h',
-path=>'/');
print $cgi->header(-cookie=>$neuCookie),
$cgi->p($altCookie || 'unbekannt'),
$cgi->p($CTIME_String);
dieses .cgi hab ich in die erste html.seite so
<img SRC="cookie.cgi" NOSAVE BORDER=0 height=1 width=1>
eingefügt.Funktioniert soweit ganz gut mit dem setzen.
Nun möchte ich aber über ein anderes cgi diesen wert abfragen ob
das cookie members= nun 'unbekannt' bzw. bereits abgelaufen ist oder nicht.
Ich habe es mal so versucht:
my $members = $ENV{'HTTP_COOKIE'};
@members = 'unbekannt';
print "Content-type: text/html\n\n";
if ($members eq /unbekannt/){
print "<HTML>error etc....... }\n";
was aber nicht ging.Das zweite war ich wollte das cookie.cgi eigentlich
einbinden ins andere aber das
print "Content-type: text/html\n\n";
scheint dafür nicht das richtige zu sein?!
Gruss vom Alain
*DerWeiterVersuchtJetztAberErstmalSchlafenGeht*
Hallo Allain,
my $members = $ENV{'HTTP_COOKIE'};
@members = 'unbekannt';
print "Content-type: text/html\n\n";
if ($members eq /unbekannt/){
print "<HTML>error etc....... }\n";
was aber nicht ging.
Dder String in der Variablen $ENV{'HTTP_COOKIE'}, umgespeichert nach $members enthält die mehrere Informationen (auch Domain, Verfallszeit usw.), die du erst (z.B. mittels regulärer Aüsdrücke) auseinanderziehen mußt. vgl. das Beispielprogramm (am Schluß)http://www.bewley.net/perl/cookie-test.pl und die zugehörigen Erläuterungen http://www.bewley.net/perl/cookie-test.html
Gruß
Hans35
Hallo Allain,
hi Hanns35,
^(:))
Der String in der Variablen $ENV{'HTTP_COOKIE'}, umgespeichert nach $members enthält die mehrere Informationen (auch Domain, Verfallszeit usw.), die du erst (z.B. mittels regulärer Aüsdrücke) auseinanderziehen mußt. vgl. das Beispielprogramm (am Schluß)http://www.bewley.net/perl/cookie-test.pl und die zugehörigen Erläuterungen http://www.bewley.net/perl/cookie-test.html
Gruß
Hans35
Danke für die Mühe aber ich habs jetzt gefunden die lösung,
der zweite cookie-eintrag vom anderen cgi ist folgender:
$cookies = split(/[;,]\s*/,$ENV{'HTTP_COOKIE'});
print "Content-type: text/html\n\n";
if ((!$check_referer) or ($ENV{'HTTP_REFERER'} eq /-/ and $cookies == 0)){
print "<HTML>error...etc...</BODY>
</HTML>\n";
SendMail();
es funktioniert tadelos so
Gruss vom Alain