Allright, working :)

Thank you all!
Dhruv Adhia
http://thirdimension.com



On Thu, Oct 22, 2009 at 4:09 PM, Dhruv Adhia <druf...@gmail.com> wrote:

> Just ignore past messages. I got successful posting of data from unity to
> django localhost server. Now I am creating POST request from unity thats why
> I am doing request.POST if condition.
>
> I could see that through print statements inside this code
>
>  if request.POST:
>        name = request.POST['name']
>        print name
>        score = request.POST['score']
>        print score
>        hash = request.POST['hash']
>        print hash
>
> before there was no output. So now I am sure that I am getting values.
>
> Can anybody help in storing name and score into database?
>
> i have models setup as follows.
>
> from django.db import models
> # Create your models here.
>
> class Scores(models.Model):
>     name = models.CharField(max_length=100)
>     score = models.IntegerField()
>
>     class Meta:
>         verbose_name_plural ="Scores"
>
> Thanks a ton!
>
> Dhruv Adhia
> http://thirdimension.com
>
>
>
> On Thu, Oct 22, 2009 at 2:54 PM, Dhruv Adhia <druf...@gmail.com> wrote:
>
>> here is the version I thought should have worked, but its not quite there
>>
>> def add_score(request):
>>    #response_dict ={}
>>    secret_key = "asdf789as7df89asdf87ds89a8f7sfd8"
>>     name =""
>>     score=0
>>     hash=""
>>
>> # getting the posted data
>>    if request.GET:
>>        name = request.POST['name']
>>        print name
>>        score = request.POST['score']
>>        print score
>>        hash = request.POST['hash']
>>        print hash
>>        #leaderboard = {'name': name, 'score': score, 'hash': hash}
>>
>>  #hashlib stuff for encryption
>>    m = hashlib.md5()
>>    m.update(name+str(score)+secret_key)
>>    real_hash = m.hexdigest()
>>
>>   #storing it into database
>>    if real_hash == hash:
>>        # store the name and score into the database
>>        leaderboard = Scores(name = request.POST['name'] ,score =
>> request.POST['score'])
>>        leaderboard.save
>>
>>    leaderboard = Scores.objects.all()
>>    return render_to_response('add_score.html', {'leaderboard':
>> leaderboard})
>>
>>
>> This version does not do what i wanted it do. which is 1) Read the posted
>> data 2) Store it into database
>>
>> Any help would be appreciated.
>>
>> Thanks
>>
>> Dhruv Adhia
>> http://thirdimension.com
>>
>>
>>
>> On Thu, Oct 22, 2009 at 1:05 PM, Dhruv Adhia <druf...@gmail.com> wrote:
>>
>>> Allright, I get that part.
>>>
>>> the url is coming from unity
>>>
>>> javascript part inside unity
>>>
>>> the part in bold is doing the post data.
>>>
>>> private var secretKey="mySecretKey";
>>> function postScore(name, score) {
>>>     //This connects to a server side php script that will add the name
>>> and score to a MySQL DB.
>>>     // Supply it with a string representing the players name and the
>>> players score.
>>>     var hash=Md5.Md5Sum(name +""+ score + ""+ secretKey);
>>>
>>>     *var highscore_url = addScoreUrl + "name=" + WWW.EscapeURL(name) +
>>> "&score=" + score + "&hash=" + hash;
>>>
>>>     // Post the URL to the site and create a download object to get the
>>> result.
>>>     hs_post = WWW(highscore_url);*
>>>     yield hs_post; // Wait until the download is done
>>>     if(hs_post.error) {
>>>         print("There was an error posting the high score: " +
>>> hs_post.error);
>>>     }
>>> }
>>>
>>>
>>> <?php
>>>
>>>         $db = mysql_connect('mysql_host', 'mysql_user', 'mysql_password'
>>> ) or die <http://www.perldoc.com/perl5.6/pod/func/die.html>('Could not
>>> connect: ' . mysql_error());
>>>         mysql_select_db('my_database') or 
>>> die<http://www.perldoc.com/perl5.6/pod/func/die.html>
>>> ('Could not select database');
>>>
>>>         // Strings must be escaped to prevent SQL injection attack.
>>>         $name = mysql_real_escape_string($_GET['name'], $db);
>>>         $score = mysql_real_escape_string($_GET['score'], $db);
>>>         $hash = $_GET['hash'];
>>>
>>>         $secretKey="mySecretKey"; # Change this value to match the value
>>> stored in the client javascript below
>>>
>>>         $real_hash = md5($name . $score . $secretKey);
>>>         if($real_hash == $hash) {
>>>             // Send variables for the MySQL database class.
>>>             $query = "insert into scores values (NULL, '$name',
>>> '$score');";
>>>             $result = mysql_query($query) or 
>>> die<http://www.perldoc.com/perl5.6/pod/func/die.html>
>>> ('Query failed: ' . mysql_error());
>>>         }
>>>  ?>
>>>
>>> This is the php side of things that I found online. Basically I am trying
>>> to convert that to python code as you can see.
>>>
>>> I wrote the getting part of the data and the rest is what I am working on
>>> right now.
>>>
>>> It would be nice,
>>>
>>> if I could read values sent by unity(which is fine) and store them into
>>> database rather than just displaying.
>>>
>>> Thanks Karen.
>>>
>>> Dhruv Adhia
>>> http://thirdimension.com
>>>
>>>
>>>
>>> On Thu, Oct 22, 2009 at 12:46 PM, Karen Tracey <kmtra...@gmail.com>wrote:
>>>
>>>> On Thu, Oct 22, 2009 at 3:25 PM, Dhruv Adhia <druf...@gmail.com> wrote:
>>>>
>>>>> Yep and sorry I am bit new to this stuff, I mistook 69 for 200. This
>>>>> explained it
>>>>> http://cwiki.apache.org/GMOxSAMPLES/using-asynchronous-http-client.data/s200.log
>>>>>
>>>>> so for '?' then should my url pattern for add_Score look like this
>>>>>   (r'^add_score/?', 'carbon_chaos.highscore.views.add_score'),
>>>>>
>>>>>
>>>>>
>>>> No, query strings don't play any part in the url matching.  You might
>>>> want to add a $ to the end of your existing pattern, to indicate that the
>>>> inbound URL path must end after the slash after add_score...as it is your
>>>> requested URL is only matching because that $ is missing from your pattern,
>>>> allowing any URL path that starts with add_score/ to get routed to your
>>>> add_score view, even if there is more after the add_score/ element of the
>>>> URL path.
>>>>
>>>> What you need to do to be able to access the query string values from
>>>> the request.GET dictionary is change whatever is generating that URL to
>>>> generate it properly, with the ? separating the URL path from the query
>>>> string.  But near as I can tell you have not said anything about where that
>>>> URL is coming from, so I don't know what to tell you tot fix.  You need the
>>>> request coming in to the server to have the ? in its proper place, you do
>>>> not need the ? in the pattern.
>>>>
>>>> Karen
>>>>
>>>> >>>>
>>>>
>>>
>>
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to