Jag har problem när jag ska sätta cookie.
Det enda som händer är att programmet printar ut
"Set-Cookie: anamn=dffdgf; path=/; expires=Sunday, 18-Nov-11 23:59:59 GMT\n" i HTTP huvudet.... men sätter in cookien.
Jag skickar med all kod i det berörda cgi programmet.
OBS! Det är mycket annat jox så som datum formatering och dylikt som inte är så relevant i fallet?! Cookien sätts längst ner i koden.
#!/usr/bin/perl
use CGI ':standard';
use DBI;
use Net::SMTP;
print "Content-type: text/plain\n\n";
$dbh = DBI->connect('dbi:ODBC:forum');
$sqlstatement1="SELECT anamn FROM person";
$sth1 = $dbh->prepare($sqlstatement1);
$sth1->execute ||
die "Could not execute SQL statement, maybe invalid?";
#########################################################
# Kollar så att användarnamnet inte redan finns i DB.
#########################################################
#########################################################
# Kollar innehåll i icke obligatoriska fält, om fältet
# icke är ifyllt tilldelas variabeln värdet "tom".
#########################################################
if ($hemsida eq ""){
$hemsida = "tom";
}
if ($geoplats eq ""){
$geoplats = "tom";
}
if ($intresse eq ""){
$intresse = "tom";
}
if ($signatur eq ""){
$signatur = "tom";
}
#########################################################
# Formaterar datum från format "Wed Nov 20 11:37:05 2002"
# till format "2002-11-20"
#########################################################
$jaja = index ($datumtemp," ",8); # kollar i strängen om position 8 är tomt
# vilket innebär att datum är mellan första och nionde
if ($jaja == 8){
substr($datumtemp, 8, 1, 0); # Ersätter position 8 med en nolla.
@datum = split / /,$datumtemp;
$manad = $datum[1];
$dag = $datum[2];
$tid = $datum[3];
$ar = $datum[4];
}
#########################################################
# Lägger in uppgifterna i databasen.
#########################################################
$sqlstatement="INSERT INTO person (anamn, losen, namn, epost, pdatum, hemsida, signatur, geoplats, intresse) VALUES('$anamn', '$losen', '$namn', '$epost', '$datum', '$hemsida', '$signatur', '$geoplats', '$intresse')";
$sth = $dbh->prepare($sqlstatement);
$sth->execute ||
die "Could not execute SQL statement, maybe invalid?";
$sth->finish;
#########################################################
# Skickar mail med inlogguppgifter.
#########################################################
$message = "Välkommen till ChForum!\nTack för din registrering.\n\nDina inloggningsuppgifter är:\n\nAnvändarnamn: ".$anamn."\nLösenord: ".$losen;
$subject = "Välkommen till ChForum!";
$from = 'stefan@defraction.com';
$smtpserver='mailrelay.bostream.com';
$message = "From: $from\nTo: $epost\nContent-type: text/plain; charset=ISO-8859-1\nSubject: $subject\n\n".$message;
$message=~s/\.\n/\. \n/g;
my $smtp = Net::SMTP->new($smtpserver);
$smtp->mail($from);
$smtp->to($epost);
$smtp->data();
$smtp->datasend($message);
$smtp->dataend();
$smtp->quit();
my $q2 = new CGI;
my $KAKA1 = $q2->cookie(-name => "anamn",-value =>"$anamn",-expires =>'Sunday, 18-Nov-11 23:59:59 GMT\n', -path =>'/');
print "Set-Cookie: $KAKA1\n";
Du behöver väl inte ha med \n i expires-strängen?
sen vet jag inte om man ska skriva expires-grejen formaterad sådär, jag brukar bara dra till med "+3M" eller nått i den stilen.
Om du ställer in internet explorer eller motsvarande till att fråga vid varje cookie så kan du titta på informationen som den tycker att den har... när cookien kommer fram så att säga.
149 ms totalt · 2 externa anrop · v20260731065814-full.2ae45ccc