Select fails when cookie tried to get a numeric value

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


Στις 5/10/2013 7:08 μμ, ο/η Ned Batchelder έγραψε:
>
> On 10/5/13 11:52 AM, Νίκος Αλεξόπουλος wrote:
>> Στις 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'
>>
>
> Nikos: you know enough to understand what is going on here.
>
> This list will not serve you well if you take every error message and
> paste it into an email without trying to get to the bottom of it
> yourself.  At the very least, a Google search on, "AttributeError:
> 'NoneType' object has no attribute 'value'" will find you some answers.
>
> I've said it before, I'll say it again:  slow down.
>
> --Ned.


cookieID = cookie.get('ID').value

is not returning what you said it will return

and if cookie.get('ID') doenst exist it returns the error 
AttributeError: 'NoneType' object has no attribute 'value'

These are 2 problem.

value aint being returned thw ehole Set-Cookie: ID=some_number is being 
returned instead as tou cna see at http://superhost.gr/

and the second problem is

that if the cookie dosnt exist i get the error of: AttributeError: 
'NoneType' object has no attribute 'value'

whne this line is tryign to be executed:
cookieID = cookie.get('ID').value

How can i deal with thse 2 problems?

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



More information about the Python-list mailing list