Avatar billede thomas_b Nybegynder
05. august 2007 - 00:49 Der er 25 kommentarer og
1 løsning

Cookies virker ikke!

Jeg har en Cookie i en iframe...
Men den gemmes ikke rigtig på computeren...!

Den gemmes fint når siden ikke loades via iframe...!
Cookien ser sådan ud...:

<%
Response.Cookies("memy")("count") = sidst_tal_count
Response.Cookies("memy").Expires = Date() + 365
%>
Avatar billede thesurfer Nybegynder
05. august 2007 - 00:55 #1
Er siderne på forskellige domæner?
Avatar billede thomas_b Nybegynder
05. august 2007 - 01:03 #2
nope...
Eller jo... iframen bliver loadet igennem et andet domæne...
Avatar billede thomas_b Nybegynder
05. august 2007 - 01:12 #3
det er ligesom at det er når man opdatere iframe'en så sletter den "kagen" !!
Avatar billede thesurfer Nybegynder
05. august 2007 - 01:16 #4
Så vidt jeg ved, kan domæne A ikke læse domæne B, som er i en iframe..

Hvis det skal være muligt, skal B sætte domain path til A's domæne.. ellers virker det vist ikke..

Jeg ved ikke lige hvordan man gør det i ASP..
Avatar billede thesurfer Nybegynder
05. august 2007 - 01:16 #5
Ovenstående indlæg er skrevet med cookies i tanker.. ikke bare "sider" der loades iframes, fra forskellige domæner..
Avatar billede thomas_b Nybegynder
05. august 2007 - 01:18 #6
Det skal den heller ikke... alle cookies afvikles fra det samme domæne...
Avatar billede thesurfer Nybegynder
05. august 2007 - 01:20 #7
Men du har lige skrevet, at "iframen bliver loadet igennem et andet domæne"..?

Kan du smide et link til siden, eller vise HTML-koden?
Avatar billede thomas_b Nybegynder
05. august 2007 - 01:22 #8
i den side hvir iframen ligger... der er ingen cookie-afvikling...

Det er kun i iframen der bliver afviklet cookie...
Avatar billede thesurfer Nybegynder
05. august 2007 - 01:24 #9
Passer dette eksempel 99%-100% med det du har?:

<html>
<head>
<title>sidens title</title>
</head>

<body>

<iframe src="side2.asp"></iframe>

</body>
</html>
Avatar billede thomas_b Nybegynder
05. august 2007 - 01:29 #10
ja
Avatar billede thesurfer Nybegynder
05. august 2007 - 01:41 #11
Et har lavet 2 tests..


1) Lokalt / samme domæne:

index.asp:
<%
option explicit
dim ord
ord = ""
ord = request.cookies("ord")
%>
<html>
<head>
<title>sidens title</title>
</head>

<body>

<iframe src="side2.asp"></iframe>
<hr>
Cookie ord: <%=ord%>
</body>
</html>

side2.asp:
<%
option explicit
dim ord
ord = ""

if request.servervariables("request_method") = "POST" then
' der er sendt data.. gem ord
response.cookies("ord") = request.form("ord")
end if

ord = request.cookies("ord")
%>

<form name="frmCookie" action="side2.asp" method="post">
Ord: <input type="text" name="ord" value="">
<input type="submit" name="submit" value="gem">
</form>
<hr>
Cookie ord: <%=ord%>


2) Lokalt og online / forskellige domæner

index.asp
<%
option explicit
dim ord
ord = ""
ord = request.cookies("ord")
%>
<html>
<head>
<title>sidens title</title>
</head>

<body>

<iframe src="http://www.enserveronline.dk/side2.asp"></iframe>
<hr>
Cookie ord: <%=ord%>
</body>
</html>

side2.asp:

<%
option explicit
dim ord
ord = ""

if request.servervariables("request_method") = "POST" then
' der er sendt data.. gem ord
response.cookies("ord") = request.form("ord")
end if

ord = request.cookies("ord")
%>

<form name="frmCookie" action="side2.asp" method="post">
Ord: <input type="text" name="ord" value="">
<input type="submit" name="submit" value="gem">
</form>
<hr>
Cookie ord: <%=ord%>


Den eneste forskel i koden er, at i Lokal+online udgaven, loades en online version af side2.asp.

Ellers er al koden den samme.


Resultatet:

Eksempel 1: cookien kan aflæses af både hovedsiden ("index.asp") og iframe-siden ("side2.asp")

Eksempel 2: cookien kan KUN aflæses af iframe-siden, fordi det er forskellige domæner


Hvis du bruger browseren Opera, kan du faktisk og se, at de ligger under forskellige mapper.
I Opera: Tools > Advanced > Cookies


Hvad siger du til resultatet?
Avatar billede thomas_b Nybegynder
05. august 2007 - 01:49 #12
Sådan jeg ser det så for du en cookie oplysning over på et andet domæne... men det er ikke det der er mit problem... den bliver kun afviklet på side2.asp hvis jeg reeloader side2.asp sletter den cookie'n...
Avatar billede thesurfer Nybegynder
05. august 2007 - 01:50 #13
Så skal jeg se koden til side2.asp.

Som du kan se, ændrer jeg kun cookien, hvis man har skrevet noget.

Det er nok der din fejl er.

Vis mig lige koden til side2.asp
Avatar billede thesurfer Nybegynder
05. august 2007 - 01:51 #14
Jeg gætter på, at din variabel sidst_tal_count er tom/indeholder ikke noget

Men, koden tak.. så skal jeg kigge på det :-)
Avatar billede thomas_b Nybegynder
05. august 2007 - 01:59 #15
cookie_count = Request.Cookies("memy")("count")
%><script>alert('cookie_count:<%=cookie_count%>:')</script><%

if cookie_count = "" then

SQL = "SELECT top 1 * FROM nytabel2006_statastik_log WHERE ip='"& Request.ServerVariables("REMOTE_ADDR") &"' ORDER BY count desc"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn,1, 2
if rs.EOF=false then
sidst_tal_count = rs("count")+1
else
sidst_tal_count = "1"
end if

else

sidst_tal_count = cookie_count

end if


%><script>alert('sidst_tal_count:<%=sidst_tal_count%>:')</script><%

Response.Cookies("memy")("count") = sidst_tal_count
Response.Cookies("memy").Expires = Date() + 365

cookie_count = Request.Cookies("memy")("count")

%><script>alert('cookie_count1:<%=cookie_count%>:')</script><%
Avatar billede thomas_b Nybegynder
05. august 2007 - 02:00 #16
alert1 = ""
alert2 = "32"
alert3 = "32"

så reloader jeg og så viser den

alert1 = ""
alert2 = "33"
alert3 = "33"
Avatar billede thesurfer Nybegynder
05. august 2007 - 02:05 #17
Jeg kan se at du har et eller andet før:

cookie_count = Request.Cookies("memy")("count")
%>

1) Hvad er det?

2) Prøv at putte disse linier, som de første linier i din asp fil:

<%
option explicit ' alle variablerne SKAL nu defineres med: dim variabelnavn
response.buffer = true ' al udskrift bliver dannet, før udskriften sendes til browseren
%>

Og så resten af din kode


HUSK:
Der må IKKE stå noget foran de første linier, som jeg lige har skrevet at du skulle tilføje.. ikke engang tomt mellemrum / linieskift.

Filens første tegn skal være:  <
Avatar billede thesurfer Nybegynder
05. august 2007 - 02:06 #18
Hvornår og hvordan gemmer du værdien sidst_tal_count i databasen igen?
Avatar billede thomas_b Nybegynder
05. august 2007 - 02:18 #19
1. det er den der bestemmer en det ene eller det andet skal vises (if cookie_count = "" then)

2. det hjælper ikke...
Avatar billede thomas_b Nybegynder
05. august 2007 - 02:19 #20
jeg gemmer ikke værdien "sidst_tal_count" i DB jeg gemmer den igen den samme cookie...
Avatar billede thesurfer Nybegynder
05. august 2007 - 02:22 #21
Hvornår bruger du Response.Cookies("memy")("count") første gang?

Kan du ikke smide al indholdet fra filen, her ind?

Jeg er bange for, at der er noget du vurderer til at være "ikke-vigtigt" for situationen, men hvor det faktisk er meget vigtigt..

Sådan en fejl kan jeg umuligt fange..
Avatar billede thomas_b Nybegynder
05. august 2007 - 02:29 #22
Der er kun dem i der omhandler noget om cookie...
og  dem du ser der er de første jeg bruger...:

Response.Cookies("muleen")("count") = sidst_tal_count
Response.Cookies("muleen").Expires = Date() + 365

Den burde give ingenting første gang man loader siden... men de andre gange burde den loade fra cookie'n ikke ??
Avatar billede thesurfer Nybegynder
05. august 2007 - 02:33 #23
Jo, det er korrekt.. det er derfor jeg spurgte til kode før den første linie i 05/08-2007 01:59:03..
Avatar billede thomas_b Nybegynder
05. august 2007 - 02:35 #24
Jeg kan godt ASP... men har ikke arbejdet så meget på området omkring cookie... Men det er jo ret enkelt... troede jeg... derfor syntes jeg det lydder lidt underligt det den laver...!
Avatar billede thesurfer Nybegynder
06. august 2007 - 00:41 #25
Jeg kan ikke lige komme i tanke om andet..

Vent gerne på input fra andre brugere..
Avatar billede thomas_b Nybegynder
05. december 2007 - 09:25 #26
Da der ikke er kommet noget hjælpene svar, lukker vi...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester