Path: csiph.com!usenet.pasdenom.info!aioe.org!news.stack.nl!newsfeed.xs4all.nl!newsfeed1.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.002 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'attribute': 0.07; 'initialize': 0.07; 'string': 0.09; 'cookie': 0.09; 'exist,': 0.09; 'inserted': 0.09; 'cc:addr:python-list': 0.11; 'random': 0.14; '#this': 0.16; "'/'": 0.16; 'bottom-most': 0.16; 'fails.': 0.16; 'frame,': 0.16; 'number?': 0.16; 'query,': 0.16; 'subject:fails': 0.16; 'subject:when': 0.16; 'sender:addr:gmail.com': 0.17; 'wrote:': 0.18; 'trying': 0.19; 'value.': 0.19; '>>>': 0.22; 'select': 0.22; 'cc:addr:python.org': 0.22; 'print': 0.22; 'header:User-Agent:1': 0.23; 'error': 0.23; 'cc:2**0': 0.24; 'cc:no real name:2**0': 0.24; "i've": 0.25; 'skip:" 40': 0.26; 'this:': 0.26; 'gets': 0.27; 'header:In-Reply- To:1': 0.27; 'tried': 0.27; 'correct': 0.29; 'on,': 0.29; 'am,': 0.29; "doesn't": 0.30; 'code': 0.31; 'serve': 0.31; '>>>>': 0.31; 'expire': 0.31; 'filed': 0.31; 'object.': 0.31; 'piece': 0.31; 'yourself.': 0.31; 'file': 0.32; 'probably': 0.32; 'problem': 0.35; 'display': 0.35; 'something': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'google': 0.35; 'impression': 0.36; 'thanks': 0.36; "i'll": 0.36; 'list': 0.37; 'being': 0.38; 'skip:o 20': 0.38; 'does': 0.39; 'enough': 0.39; 'how': 0.40; 'browser': 0.61; 'back': 0.62; "you'll": 0.62; 'more': 0.64; 'to:addr:gmail.com': 0.65; 'bottom': 0.67; '8bit%:92': 0.71; '8bit%:100': 0.72; 'subject:get': 0.81; 'batchelder': 0.84 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=AEm+P1G8/VJSPQNod7gPdK9Tne+X2hHPh+6hinOfkBU=; b=f5vytVc3GBUTYBeJqX6tOhfuYaexpcwoLGqmXrpgNl44TIABLqhmNfnwCyhidC1qm1 cr3m226I6nY308Z9XLjYnbfPWTZI77aehqxsUtJmqvPz/H0a6R/xw8cHXB3gXJ1oK5qx lxyAZZf01mCPXh3+a1P2SLf02m78A5MBhUndmu1dnFeFYG87vtAsC4sBDGiKA7Ar6oDQ 83W6T3HPhknXJ/P9lhOFmsQNkSlveM7hSr1p+k5Oz+yl70SdAKvQ+Cn0pRiYBEyOWi99 Zr8g0Kq4X8AiXp7qXIQ4oEBzNahuxPNW9oZjL6lz+gnrMFtA84MpVmUKahW+ftQ8cvJr ReDA== X-Received: by 10.49.96.225 with SMTP id dv1mr2202218qeb.89.1380989304131; Sat, 05 Oct 2013 09:08:24 -0700 (PDT) Sender: Ned Batchelder Date: Sat, 05 Oct 2013 12:08:22 -0400 From: Ned Batchelder User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/20130801 Thunderbird/17.0.8 MIME-Version: 1.0 To: =?UTF-8?B?zp3Or866zr/PgiDOkc67zrXOvs+Mz4DOv8+FzrvOv8+C?= Subject: Re: Select fails when cookie tried to get a numeric value References: In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Cc: python-list@python.org X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 80 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1380989312 news.xs4all.nl 15896 [2001:888:2000:d::a6]:44932 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:56201 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 > [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.