Select fails when cookie tried to get a numeric value

Νίκος Αλεξόπουλος nikos.gr33k at gmail.com
Sat Oct 5 11:52:47 EDT 2013


Στις 5/10/2013 6:12 μμ, ο/η Ned Batchelder έγραψε:
> On 10/5/13 10:40 AM, Νίκος Αλεξόπουλος wrote:
>> Στις 5/10/2013 4:53 μμ, ο/η Ned Batchelder έγραψε:
>>
>>>  From reading the bottom-most frame, you can see that the problem is
>>> that "val" is an http.cookies.Morsel object.  This means you probably
>>> tried to use a cookie object as data in your SQL query, and MySQL
>>> doesn't know what to do with that object.  You'll have to use a more
>>> primitive piece of data in your query.
>>
>> # initialize cookie
>> cookie = cookies.SimpleCookie( os.environ.get('HTTP_COOKIE') )
>> cookie.load( cookie )
>> cookieID = cookie.get('ID')
>>
>> # if browser cookie does not exist, set it
>> if not cookieID:
>>     cookie['ID'] = random.randrange(0, 10000)
>>     cookie['ID']['path'] = '/'
>>     cookie['ID']['expires'] = 60*60*24*365        #this cookie will
>> expire in a month
>>     cookieID = cookie.get('ID')
>>     print( cookie )
>>
>>
>> In the above code i try to retrive the cookie form the visitor's
>> browser and if it does nto exist i create one.
>>
>>
>>
>> For some reason i think CookieID nevers gets inserted itnot the
>> database that's why mysql's select statemnt fails.
>>
>> When i print CookieID i was under the impression i would see a random
>> number like '5369' but instead it display the follwong.
>>
>> Set-Cookie: ID="Set-Cookie: ID=5369"
>>
>> The mysql filed CookieID is of datatype's int(5) so it cannto store
>> this value.
>>
>> If iam correct and thi is trully the problem then how can i just get
>> the random number part out the whole string?
>>
>> Do you see something wrong?
>> Why cookie['ID'] retuned this string back and not just the number?
>>
>>
>
> Thanks for being patient.  Where you have this:
>
>      cookieID = cookie.get('ID')
>
> you actually want this:
>
>      cookieID = cookie.get('ID').value
>
> --Ned.


[Sat Oct 05 15:51:02 2013] [error] [client 108.162.229.114]   File 
"/home/nikos/public_html/cgi-bin/metrites.py", line 84, in <module>
[Sat Oct 05 15:51:02 2013] [error] [client 108.162.229.114]     cookieID 
= cookie.get('ID').value
[Sat Oct 05 15:51:02 2013] [error] [client 108.162.229.114] 
AttributeError: 'NoneType' object has no attribute 'value'

-- 
What is now proved was at first only imagined! & WebHost
<http://superhost.gr>



More information about the Python-list mailing list