Hallo,
kann mir jemand einen Tip geben, wo in dem folgenden Script der Fehler ist, der verhindert, dass ein Cookie gesetzt wird?
Ich weiß, dass Cookies keine verlässliche Lösung sind.
Es grüßt und dankt TomC
START
#!/usr/bin/perl -w
###!C:/Programme/Apache Group/Apache2/Perl/bin/perl.exe -w
use strict;
use CGI;
my $cgi = new CGI;
use CGI::Carp qw(fatalsToBrowser);
use functions;
require "config_sag.pl";
my $path_all = &changevar("path_all");
my $path_pages = &changevar("path_pages");
my $path_cgi = &changevar("path_cgi");
my $path_abs = &changevar("path_abs");
entfaellt nach einbau des scripts -> page ist dort bekannt
my $page = "testseite";
my $cookie_sid;
my $cookie_time = time();
my $cookie_page = $page;
my $cookiestring;
my $cookie_new;
my $table_tracking = "$path_abs/cgi-bin/dynavi/table_tracking.pl";
my $dbstring;
my $html;
cookie in cookiestring einlesen
$cookiestring = $cgi->cookie(-name=>'Tracking');
wenn cookiestring leer ist, setze einen cookie
if($cookiestring eq ""){
# sid generieren (vorerst strato-variable nutzen)
$cookie_sid = $ENV{'UNIQUE_ID'};
# sid und weitere daten in einem neuen cookie speichern
# solange im cookie nur die sid steht, langt auch folgendes
$cookiestring = $cookie_sid;
$cookie_new = $cgi->cookie(-name=>'Tracking',
-value=>$cookiestring);
print $cgi->header(-cookie=>$cookie_new);
# F sid, time und page in einer tabelle speichern
&saveTracking();
# F sid, time und page zur kontrolle in die seite schreiben
$html .= "KEIN cookie<br>\n";
&printTracking();
}
wenn cookiestring nicht leer ist, lies die sid aus
else{
# der cookiestring muss noch in seine bestandteile zerlegt werden.
# solange im cookie nur die sid steht, langt auch folgendes
$cookie_sid = $cookiestring;
# F sid, time und page in einer tabelle speichern
&saveTracking();
# F sid, time und page zur kontrolle in die seite schreiben
$html .= "cookie vorhanden<br>\n";
&printTracking();
}
print $html;
sub saveTracking(){
$dbstring = "$cookie_sid|$cookie_time|$cookie_page\n";
open(DATEI, ">>$table_tracking") || die "open track file [$table_tracking]: not found. $!";
print DATEI $dbstring;
close(DATEI) || die "close track file [$table_tracking]: not found. $!";
}
sub printTracking(){
$html .= "$cookie_sid|$cookie_time|$cookie_page";
}