Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by DMCH · Oct 29, 2013 at 07:30 PM · serverhighscores

Help with Server Side HighScores

Hi,

I'm trying to get the post score function working on this script I've already tried setting it up on my webhost to no avail, so I thought I'd try setting up a local host on Wampserver.

Edit: Now working on localhost, was referencing a string called userName, instead of name. Still not working on webhost.

Here is the c# script which should pass the values to addscorelocal.php

 using UnityEngine;
 using System.Collections;
 
 public class ScoreSceneGUI : MonoBehaviour 
 {
 // FIELDS
     
     // SCORE FIELDS
     private string name = "Test";
     private string difficulty = "Normal";
     private int score = 123;
     
     // SERVER DETAILS
     private string key = "1dYujOp";
     private string addScoreURL = "http://localhost/addscorelocal.php?";
     
     
 // MONO METHODS
     
     // Use this for initialization
     void Start () 
     {
     
     }
     
     // Handles Drawing of GUI
     void OnGUI()
     {
         // Button To Submit and Exit
         if(GUI.Button(new Rect(labelXOffset, labelYOffset + 5 * (spacing + labelHeight), labelWidth, labelHeight), "Submit Score"))
         {
             StartCoroutine(PostScores());    
         }
     }
     
 // CLASS METHODS
     
     // Post Score
     IEnumerator PostScores()
     {
          //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.
         print ("ScoreSceneGUI.PostScores: method called");
         
         string hash = Md5Sum(name + score + key);
  
         string post_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.
         WWW hs_post = new WWW(post_url);
         yield return hs_post; // Wait until the download is done
  
         if (hs_post.error != null)
         {
             print("There was an error posting the high score: " + hs_post.error);
         }
         
     }
     
     public string Md5Sum(string strToEncrypt)
     {    
         System.Text.UTF8Encoding ue = new System.Text.UTF8Encoding();
         byte[] bytes = ue.GetBytes(strToEncrypt);
      
         // encrypt bytes
         System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
         byte[] hashBytes = md5.ComputeHash(bytes);
      
         // Convert the encrypted bytes back to a string (base 16)
         string hashString = "";
      
         for (int i = 0; i < hashBytes.Length; i++)
         {
             hashString += System.Convert.ToString(hashBytes[i], 16).PadLeft(2, '0');
         }
      
         return hashString.PadLeft(32, '0');
     }
 }

And here is the addscorelocal.php, which is in the www directory of wamp

 <?php
 
 $db = mysql_connect('localhost', 'root', 'root') or die('Could not connect: ' . mysql_error()); 
         mysql_select_db('localscores') or die('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="1dYujOp"; # 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');";  // scores 
             $result = mysql_query($query) or die('Query failed: ' . mysql_error()); 
         } 
 
 ?>
 

I tried adding an entry, and check the database. No luck. Help would be greatly appreciated.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by DMCH · Oct 30, 2013 at 03:02 PM

Got it working. The error seems to have been in setting up the table in the database.

 CREATE TABLE `scores` (
    `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `name` VARCHAR(15) NOT NULL DEFAULT 'anonymous',
    `score` INT(10) UNSIGNED NOT NULL DEFAULT '0'
 )
 TYPE=MyISAM; 

// TYPE=MYISAM was the problem. It says on the site to use ENGINE=MYISAM if TYPE throws an error. It didn't for me, but when I made a new database and changed to ENGINE, it worked.

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

15 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

postScore Server Side Highscores tutorial 1 Answer

Error on HSController.js 1 Answer

MD5 Implementation - Server Side High Score Problems 1 Answer

Retrieving online highscores (following a guide) 1 Answer

Unity networking tutorial? 6 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges