2016-07-05 14 views
6

Tôi đang sử dụng các tập lệnh từ trang Hướng dẫn High Side Server Side cho mục đích của tôi. Tôi đã chỉnh sửa nó một chút nhưng nó không hoạt động. Giá trị không được tiết kiệm và tôi tiếp tục nhận được thông điệp này trong trang php:không thể kết nối sự thống nhất và mysql bằng cách sử dụng một php webservice

Notice: Undefined index: Tên trong C: \ xampp \ htdocs \ unitypb \ saveVerant.php trên dòng 6

Chú ý: Không xác định chỉ số: Giá trị trong C: \ xampp \ htdocs \ unitypb \ saveVerant.php trên dòng 7

Notice: Undefined index: băm trong C: \ xampp \ htdocs \ unitypb \ saveVerant.php trên dòng 8

Đây là mã php

<?php 
     $db = mysql_connect('localhost', 'root', '') or die('Could not connect: ' . mysql_error()); 
     mysql_select_db('unitypb') 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="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 verant VALUES (NULL, '$name', '$score');"; 
      $result = mysql_query($query) or die('Query failed: ' . mysql_error()); 
     } 
?> 

và đây là đoạn code C#:

using UnityEngine; 
using UnityEngine.UI; 
using System.Collections; 
using System.Collections.Generic; 

public class SQL_InputVS : MonoBehaviour { 

    private string secretKey = "mySecretKey"; // Edit this value and make sure it's the same as the one stored on the server 
    public string addScoreURL = "http://localhost/unitypb/saveVerant.php?"; //be sure to add a ? to your url 


    Text text; 

    void Awake(){ 
     text = transform.Find ("Text").GetComponent <Text>(); 
    } 


    public void sendDatabase() { 
     StartCoroutine (saveValue ("Verant-" + this.transform.name, text.text)); 
    } 


    IEnumerator saveValue (string name, string 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. 
     string hash = Md5Sum (name + score + secretKey); 

     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: " + 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'); 
    } 
} 
+7

** CẢNH BÁO **: Nếu bạn chỉ đang học PHP, vui lòng không sử dụng ['mysql_query'] (http://php.net/manual/en/function. mysql-query.php) giao diện. Thật khủng khiếp và nguy hiểm khi nó bị loại bỏ trong PHP 7. Một sự thay thế như [PDO không khó học được] (http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps -pdo-for-database-access /) và hướng dẫn như [PHP The Right Way] (http://www.phptherightway.com/) giải thích các phương pháp hay nhất. – tadman

+1

hoàn toàn là bản ghi, Spin. cho điểm số cao, bạn chỉ cần sử dụng GameCenter hoặc GooglePlayServices. nó hoàn toàn miễn phí. nó sẽ rất không thực tế để làm điều đó cho mình bằng tay những ngày này – Fattie

+0

PHP thông dịch viên nói với bạn rằng bạn không có trong GET tên, điểm số và chỉ số băm. Có thể thử sử dụng POST? –

Trả lời

-1

Trích dẫn từ bình luận Spiningit của.

Tôi đã thực hiện nó, tập lệnh chạy rất tốt ngay bây giờ. Dường như C# script là vấn đề. Tôi đã tìm kiếm và tìm thấy tập lệnh được sửa đổi bởi Appymole tại đây và nó hoạt động tốt cho ứng dụng của tôi. appymole.com/tutorial

Các vấn đề liên quan