Cookie aint retrieving when visiting happens from a backlink.

  • Thread starter Îίκος Αλεξόπουλος
  • Start date
Î

Îίκος Αλεξόπουλος

Hello i having the following code to try and retrieve the visitor's
saved cookie form the browser.

Code:
# initialize cookie and retrieve cookie from clients browser
try:
cookie = cookies.SimpleCookie( os.environ['HTTP_COOKIE'] )
cookieID = cookie['name'].value
except:
cookieID = 'visitor'

It works as expected except form the fact from when the visitor enters
my webpage(superhost.gr) by clicking a backlink of another webpage.

Then even if the cookie exists in his browser for some reason the try
fails and except take actions.

Can somebody explain why this is happening?

You can see this action yourself by hitting:

1. superhost.gr as a direct hit
2. by clicking superhost.gr's backlink from ypsilandio.gr/mythosweb.gr

You will see than in 2nd occasion another ebtry will appear in the
database here:

http://superhost.gr/?show=log&page=index.html
 
C

Chris Angelico

Can somebody explain why this is happening?

You can see this action yourself by hitting:

1. superhost.gr as a direct hit
2. by clicking superhost.gr's backlink from ypsilandio.gr/mythosweb.gr

You will see than in 2nd occasion another ebtry will appear in the database
here:

http://superhost.gr/?show=log&page=index.html

Issue closed, unable to replicate. Either something you're doing is
different from what you're describing, or your browser is behaving
differently. Look at the Set-Cookie headers coming back, and the
subsequent Cookie headers in requests, and see what you can learn.

ChrisA
 
Î

Îίκος Αλεξόπουλος

Στις 25/10/2013 10:32 πμ, ο/η Chris Angelico έγÏαψε:
Issue closed, unable to replicate. Either something you're doing is
different from what you're describing, or your browser is behaving
differently. Look at the Set-Cookie headers coming back, and the
subsequent Cookie headers in requests, and see what you can learn.

There is no set of cookie returned back when visitor comes from a referer.

Isn't this strange?
No matter if you visit a webpage as a direct hit or via a referer the
cookie on the visitor's browser should have been present.

But it can only can be found and retrieved as a direct hit and _not_
from a referrer backlink.

But thw browser is the same...
 
Î

Îίκος Αλεξόπουλος

Στις 25/10/2013 10:32 πμ, ο/η Chris Angelico έγÏαψε:
Issue closed, unable to replicate. Either something you're doing is
different from what you're describing, or your browser is behaving
differently. Look at the Set-Cookie headers coming back, and the
subsequent Cookie headers in requests, and see what you can learn.

There is no set of cookie returned back when visitor comes from a referer.

Isn't this strange?
No matter if you visit a webpage as a direct hit or via a referer the
cookie on the visitor's browser should have been present.

But it can only can be found and retrieved as a direct hit and _not_
from a referrer backlink.

But thw browser is the same...
Why would it matter how superhost.gr is called?
 
C

Chris Angelico

Isn't this strange?
No matter if you visit a webpage as a direct hit or via a referer the cookie
on the visitor's browser should have been present.

But it can only can be found and retrieved as a direct hit and _not_ froma
referrer backlink.

Trace your logs. You've been told this before; are you sure the
request is even getting to your server?

Fundamentally, you're caring about things that it's a LOT easier to
not care about. Just let things happen, and don't try to track people
so much. Not only will some people object to it (are you, for
instance, complying with EU regulations about cookies?), but you're
going to keep running into situations where you just *can't* track
people, no matter how hard you try.

ChrisA
 
Î

Îίκος Αλεξόπουλος

Στις 25/10/2013 11:33 πμ, ο/η Chris Angelico έγÏαψε:
Trace your logs. You've been told this before; are you sure the
request is even getting to your server?

Please be more detailed to what you want me to check.
Fundamentally, you're caring about things that it's a LOT easier to
not care about. Just let things happen, and don't try to track people
so much. Not only will some people object to it (are you, for
instance, complying with EU regulations about cookies?), but you're
going to keep running into situations where you just *can't* track
people, no matter how hard you try.

If an expert want to hide from my tracking of course he can use a proxy,
or a TOR service, or incognito Chrome mode or whatever to bypass cookie
tracking. But the usual visitors wont even know these things and their
browser will accept cookies.

I do this not as a way to track everybody, but to learn handling
cookies, database storing of cookies ans stuff like that.

But i cannot overcome this weird baclink referring visits that tend to
ignore cookies stored in the browser.

I need an explanation for that because it screwns my visitors databases.
 
N

Nick the Gr33k

Στις 25/10/2013 11:46 πμ, ο/η Îίκος Αλεξόπουλος έγÏαψε:
Trace your logs. You've been told this before; are you sure the
request is even getting to your server?

what do you mean by that Chris? please be more specific.
 
C

Chris Angelico

Óôéò 25/10/2013 11:46 ðì, ï/ç Íßêïò Áëåîüðïõëïò Ýãñáøå:



what do you mean by that Chris? please be more specific.

These are not Python questions. Google is your friend. Look at the web
development/debugging tools you have available, look into TCP tracing
(tcpdump, etc), look at your web server's logs, look at physics, look
at all you can think of. [1] That is as specific as I am going to be
on this list.

ChrisA

[1] Don't cry, or you won't be good for anything when the feast comes!
 
N

Nick the Gr33k

Στις 25/10/2013 1:51 μμ, ο/η Chris Angelico έγÏαψε:
Στις 25/10/2013 11:46 πμ, ο/η Îίκος Αλεξόπουλος έγÏαψε:



what do you mean by that Chris? please be more specific.

These are not Python questions. Google is your friend. Look at the web
development/debugging tools you have available, look into TCP tracing
(tcpdump, etc), look at your web server's logs, look at physics, look
at all you can think of. [1] That is as specific as I am going to be
on this list.

ChrisA

[1] Don't cry, or you won't be good for anything when the feast comes!
Can you reproduce this simple problem on your side to see if it behaves
the same way as in me?
 
C

Chris Angelico

Can you reproduce this simple problem on your side to see if it behaves the
same way as in me?

Like I said at the beginning, no it doesn't. Go forth and wield the Google.

ChrisA
 
N

Nick the Gr33k

Στις 25/10/2013 3:11 μμ, ο/η Chris Angelico έγÏαψε:
Like I said at the beginning, no it doesn't. Go forth and wield the Google.

ChrisA
Answer me in detail an stop pointing me at vague google searchs.
 
N

Nick the Gr33k

Στις 25/10/2013 5:21 μμ, ο/η Mark Lawrence έγÏαψε:
I'll be blunt and to the point. **** off. Oh, sorry for my lack of
manners, **** off please. Now have you finally got the message?

After you please, i insist!
 
S

Steven D'Aprano

Can somebody explain why this is happening?

Yes -- it's the same answer that was given the previous time you asked
this same question, 2-3 weeks ago, and it will be the same answer next
time you ask too.

Look back at the thread called "Cookie gets changed when hit comes from a
referrer". This is the same problem, and the answer remains the same.
 
D

Denis McMahon

Yes, don't be lazy.

You're the one who is too lazy to learn enough about tcp / ip and http to
understand what is happening with your cookie problem, and you are
calling other people lazy for not solving it.

I confirmed in an earlier thread that the problem you describe does not
happen on my system with my python cookie handling. Chris has confirmed
that it does not happen on his system, so it must be something specific
to what you are doing.

The obvious step is to use a tool like wireshark to capture the tcp/ip
exchanges between the server and the client, to analyse those exchanges,
and to see exactly what is being sent in each direction.

This is how you debug such problems. When you know what data is actually
being transferred, then you can go back to software and work out why the
data that you expect to be transferred isn't being transferred.

Using wireshark is beyond the scope of this newsgroup, as is analysing
the contents of tcp/ip packets and http requests and responses.

If the client is not sending the expected cookie to the server, then the
most likely problem is that the client does not associate that particular
cookie with the server url. If this is the case, then the problem is that
when you initially sent the cookie to the client, you did not define the
server url in the cookie in a manner that would cause the client to
associate the cookie with the url in the subsequent request. This is not
a python problem, it's an http cookies problem, and the answer lies in
the cookie you are creating.

Or you can extract the cookie from the cookie jar in the client (again
not a python issue, so don't ask how to do it here) and look for an http
forum where you can ask why cookie x isn't applied to server y. This is
not that forum.

Oh look, that's almost the same advice I gave you about 10 days ago!

So you've spent 10 days ignoring my advice, and then you call Chris lazy.
 
C

Chris Angelico

Yes -- it's the same answer that was given the previous time you asked
this same question, 2-3 weeks ago, and it will be the same answer next
time you ask too.

It's like an Augury or Divination.

http://www.dandwiki.com/wiki/SRD:Divination

"""As with augury, multiple divinations about the same topic by the
same caster use the same dice result as the first divination spell and
yield the same answer each time."""

ChrisA
 
N

Nick the Gr33k

Στις 25/10/2013 6:17 μμ, ο/η Denis McMahon έγÏαψε:
If the client is not sending the expected cookie to the server, then the
most likely problem is that the client does not associate that particular
cookie with the server url. If this is the case, then the problem is that
when you initially sent the cookie to the client, you did not define the
server url in the cookie in a manner that would cause the client to
associate the cookie with the url in the subsequent request. This is not
a python problem, it's an http cookies problem, and the answer lies in
the cookie you are creating.

Assiciate the cookie with the url?
You mean add a domain directive to the cookie like:

# initialize cookie and retrieve cookie from clients browser
try:
cookie = cookies.SimpleCookie( os.environ['HTTP_COOKIE'] )
cookieID = cookie['name'].value
except:
cookieID = random.randrange(0, 9999)
cookie['ID'] = cookieID
cookie['ID']['domain'] = "superhost.gr"
cookie['ID']['path'] = '/'
print( cookie )

If this is how you mean it does not solve anything, problem persits.
I googled lots of hours and days about this but this is not mentioned in
any thread and i', stuck.
 
C

Chris Angelico

Assiciate the cookie with the url?
You mean add a domain directive to the cookie like:

Do you understand:

1) what cookies are?
2) how the browser receives them?
3) how the server gets them back?
4) when #3 happens and when it does not?

If not, go to Wikipedia and start reading. If you get to the end of
Wikipedia without comprehending this, go back to the beginning and
start over.

ChrisA
 
J

Joel Goldstick

Do you understand:

1) what cookies are?
2) how the browser receives them?
3) how the server gets them back?
4) when #3 happens and when it does not?

If not, go to Wikipedia and start reading. If you get to the end of
Wikipedia without comprehending this, go back to the beginning and
start over.

ChrisA

Chris is too kind. Go to wikipedia. and then go for a walk.. don't
come back here
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,757
Messages
2,569,543
Members
45,026
Latest member
camilin05

Latest Threads

Top