Problem checking an existing browser cookie
MRAB
python at mrabarnett.plus.com
Mon Aug 30 13:53:05 EDT 2010
On 30/08/2010 18:36, Nik the Greek wrote:
> On 30 Αύγ, 19:41, MRAB<pyt... at mrabarnett.plus.com> wrote:
>> On 30/08/2010 04:33, Nik the Greek wrote:
>>
>>
>>
>>
>>
>>
>>
>>> On 30 Αύγ, 06:12, MRAB<pyt... at mrabarnett.plus.com> wrote:
>>
>>>> This part:
>>
>>>> ( not mycookie or mycookie.value != 'nikos' )
>>
>>>> is false but this part:
>>
>>>> re.search( r'(msn|yandex|13448|spider|crawl)', host ) is None
>>
>>>> is true because host doesn't contain any of those substrings.
>>
>>> So, the if code does executed because one of the condition is true?
>>
>>> How should i write it?
>>
>>> I cannot think clearly on this at all.
>>
>>> I just wan to tell it to get executed ONLY IF
>>
>>> the cookie values is not 'nikos'
>>
>>> or ( don't knwo if i have to use and or 'or' here)
>>
>>> host does not contain any of the substrings.
>>
>>> What am i doign wrong?!
>>
>> It might be clearer if you reverse the condition and say:
>>
>> me_visiting = ...
>> if not me_visiting:
>> ...
>
>
> # initialize cookie
> cookie = SimpleCookie()
> cookie.load( os.environ.get('HTTP_COOKIE', '') )
> visitor = cookie.get('visitor')
>
> This statement
>
> if (visitor.value != 'nikos') and re.search( r'(msn|yandex|13448|
> spider|crawl)', host ) is None:
>
> produces the following error:
>
> /home/webville/public_html/cgi-bin/counter.py
> 93 # do not increment the counter if a Cookie is set to the
> visitors browser already
> 94 #
> =================================================================================================================
> 95 if (visitor.value != 'nikos') and re.search( r'(msn|yandex|13448|
> spider|crawl)', host ) is None:
> 96
> 97 print visitor
> visitor = None, visitor.value undefined, re =<module 're' from '/usr/
> lib64/python2.4/re.pyc'>, re.search =<function search>, host =
> '178-128-217.dynamic.cyta.gr', builtin None = None
>
> Why visitor.value is undefined?
Because visitor is None. It's not seeing any cookie.
More information about the Python-list
mailing list