On 30/08/2010 03:07, Nik the Greek wrote:
On 30 Αύγ, 04:51, MRAB<pyt...@mrabarnett.plus.com> wrote:
On 30/08/2010 02:14, Νίκος wrote:
On 29 Αύγ, 21:44, MRAB<pyt...@mrabarnett.plus.com> wrote:
On 29/08/2010 06:34, Νίκος wrote:
On 28 Αύγ, 23:15, MRAB<pyt...@mrabarnett.plus.com> wrote:
On 28/08/2010 20:37, Íßêïò wrote:
On 22 Áýã, 10:27, Íßêïò<nikos.the.gr...@gmail.com> wrote:
On 16 Áýã, 14:31, Peter Otten<__pete...@web.de> wrote:
Íßêïò wrote:
# initializecookie
cookie=Cookie.SimpleCookie()
cookie.load( os.environ.get('HTTP_COOKIE', '') )
mycookie =cookie.get('visitor')
if ( mycookie and mycookie.value != 'nikos' ) or re.search( r'(cyta|
yandex|13448|spider|crawl)', host ) is None:
blabla...
========================
I checked and Chrome has acookienames visitor with a value ofnikos
within.
So, i have to ask why the if fails?
Maybe it's because != != ==
Iwant ti if code block to be executed only if the browsercookienames
visitor fetched doesnt cotnain the vbalue of 'nikos'
Is there somethign wrong with the way i wrote it?
Please do help me with this too becaus eif i dont solve this my
website keeps count my each visit like iam a guest visitor!
Print out mycookie, repr(mycookie.value) (unless mycookie is None) and
repr(host). Then follow the code yourself to see whether the condition
is True.
print mycookie outputs 'None'
Thts weird because i check with the browser and the cookie is there!
Just because you can see it doesn't mean your code can.
print repr(host) outputs '78-236-176.adsl.cyta.gr'
repr(mycookie.value) (unless mycookie is None)
and also
print mycookie.value gives an error too. Maybe there is not a value
method?
If mycookie is None, then it's not surprising that doesn't have 'value'.
In summary, mycookie is None, so:
mycookie and mycookie.value != 'nikos'
is false (actually None, which is treated as false).
host == '78-236-176.adsl.cyta.gr', so:
re.search(r'(cyta|yandex|13448|spider|crawl)', host)
finds 'cyta' and the search returns a match.
false or false == false
blabla... isn't executed.
Lets forget the 2nd or argument, ill put it off
so we have this now
if ( mycookie and mycookie.value != 'nikos' ):
#do stuff as long as there ins't a cookie names visitor with a
value of nikos in the broswer
What does it mean practically that the mycookie equals to None?
That mycookie doesnt exist?
How should i write this if block to mkake sure it checks whether or
not the cookie exists?
Under what conditions do you want to execute the block?
This:
mycookie and mycookie.value != 'nikos'
will be true if:
there _is_ a cookie, but its value isn't 'nikos'
I think that you want is to execute the block if someone else is
visiting. Correct?
Yes that exactyl right!
To make sure a cookie is set i have a script names koukos.py
containing this:
==============================
#!/usr/bin/python
# -*- coding: utf-8 -*-
import cgitb; cgitb.enable()
import cgi, os, Cookie
# initialize cookie
cookie = Cookie.SimpleCookie()
cookie.load( os.environ.get('HTTP_COOKIE', '') )
mycookie = cookie.get('visitor')
htmlBody = []
# if visitor cookie does exist
if ( mycookie and mycookie.value == 'nikos' ):
htmlBody.append('ΑΠΟ ΤΗΝ ΕΠΟΜΕΝΗ ΕΠΙΣΚΕΨΗ ΣΟΥ ΘΑ ΣΕ ΥΠΟΛΟΓΙΖΩ ΩΣ
ΕΠΙΣΚΕΠΤΗ ΑΥΞΑΝΟΝΤΑΣ ΤΟΝ ΜΕΤΡΗΤΗ!')
cookie['visitor'] = 'nikos'
cookie['visitor']['expires'] = -1 #this cookie will expire
now
else:
htmlBody.append('ΑΠΟ ΔΩ ΚΑΙ ΣΤΟ ΕΞΗΣ ΔΕΝ ΣΕ ΕΙΔΑ, ΔΕΝ ΣΕ ΞΕΡΩ, ΔΕΝ
ΣΕ ΑΚΟΥΣΑ! ΘΑ ΕΙΣΑΙ ΠΛΕΟΝ Ο ΑΟΡΑΤΟΣ ΕΠΙΣΚΕΠΤΗΣ!!')
cookie['visitor'] = 'nikos'
cookie['visitor']['expires'] = 60*60*24*30*12
htmlBody.insert(0, 'Content-type: text/html; charset=UTF-8\n')
print(cookie)
print('\n'.join(htmlBody))
=============================
Which i seicth on and off according to my desire if i want to be
counted or not!
How do you know when it _is_ you? There'll be a cookie which says it's
you?
If so, then you want to execute the block if there isn't any cookie, or
if there's a cookie but it doesn't say it's you:
not mycookie or mycookie.value != 'nikos'
i tried this as you suggested:
if ( not mycookie or mycookie.value != 'nikos' ) or re.search( r'(msn|
yandex|13448|spider|crawl)', host ) is None:
but the counter keeps increasing although the cookie named visitor on
my browser exist and also has the valuie of 'nikos'.
Why it keeps increasing? Doesn't the if code "sees" that the cookie
with a value of "nikos" is present!?!!
Previously your regex was r'(cyta|yandex|13448|spider|crawl)' and you
said that host was '78-236-176.adsl.cyta.gr', so it matched.
Now your regex is r'(msn|yandex|13448|spider|crawl)'. If host is still
'78-236-176.adsl.cyta.gr' then of course it doesn't match, so the
condition is true.
--
http://mail.python.org/mailman/listinfo/python-list