teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

進捗状況と行き詰りの追加

2016/08/28 09:50

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -9,4 +9,98 @@
9
9
 
10
10
  初めての利用、質問であるため、拙い文章ですみません…
11
11
  まだUnityやMySQLは使い始めたばかりの初心者なので、至らない点ばかりですが、お力をお借りできないでしょうか。
12
+ よろしくお願いします。
13
+
14
+
15
+
16
+ 後日、sakura_hanaさんからの回答を参考に挑戦してみましたが、Unityから送ったデータとMySQLに登録したデータとの照合を終えた後の処理で行き詰ってしまいました。そこまでのソースを以下に示しますので、間違い等あれば、ご教授お願いできないでしょうか。
17
+
18
+
19
+ 1.Unity:InputFieldに入力した値をPHPにPOSTする
20
+
21
+ ```C# Unity側
22
+ using UnityEngine;
23
+ using System.Collections;
24
+ using UnityEngine.UI;
25
+
26
+ public class SubmitManager : MonoBehaviour
27
+ {
28
+ string str1;
29
+ string str2;
30
+ public InputField inputField1;
31
+ public InputField inputField2;
32
+
33
+ public void OnClickButton()
34
+ {
35
+ StartCoroutine(Connect());
36
+ }
37
+ private IEnumerator Connect()
38
+ {
39
+ string url = "http://localhost/unity/unity_text.php";
40
+ str1 = inputField1.text;//入力されたユーザ名を格納
41
+ str2 = inputField2.text;//入力されたパスワードを格納
42
+ WWWForm form = new WWWForm();
43
+ form.AddField("Text1", str1);
44
+ form.AddField("Text2", str2);
45
+ WWW www = new WWW(url, form);
46
+ yield return www;
47
+
48
+ if (www.error == null)
49
+ {
50
+ Debug.Log("WWW Submit Ok!: " + www.text);
51
+ }
52
+ else
53
+ {
54
+ Debug.Log("WWW Submit Error: " + www.error);
55
+ }
56
+
57
+ }
58
+ }
59
+ ```
60
+
61
+ 2.PHP:POSTされたデータを元にデータベースを照合する
62
+
63
+ ```PHP
64
+ <?php
65
+ // 接続情報
66
+ $servername = "localhost";
67
+ $username = "root";
68
+ $password = "hogehoge";
69
+ $dbname = "example";
70
+ // インプット値
71
+ $i_name = (string)filter_input(INPUT_POST, 'Text1');
72
+ $i_pass = (string)filter_input(INPUT_POST, 'Text2');
73
+
74
+ try {
75
+ // DB接続
76
+ $pdo = new PDO("mysql:host=$servername;dbname=$dbname;charset=utf8", $username, $password);
77
+ $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
78
+ $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
79
+ // SQL発行
80
+ $stmt = $pdo->prepare("SELECT * FROM userdata WHERE name = ? AND password = ?");
81
+ $stmt->bindValue(1, $i_name);
82
+ $stmt->bindValue(2, $i_pass);
83
+ $stmt->execute();
84
+ // 結果の取得
85
+ if($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
86
+ echo $row['name'] . " collation is complete!";
87
+ }else{
88
+ echo "no user or no password";
89
+ }
90
+ }
91
+ catch(PDOException $e) {
92
+ echo "Connection failed: " . $e->getMessage();
93
+ }
94
+ // DB切断
95
+ $pdo = null;
96
+ ?>
97
+ ```
98
+
99
+ ここまでのコードにより、UnityのInputFieldに入力した値がMySQLのデータと照合して、合っていたらUnityのログに、WWW Submit Ok!: (ユーザ名) collation complete!表示されます。
100
+
101
+ ユーザ名とパスワードが照合できた場合、Unityでは次の画面に遷移し、できなった場合は画面の遷移をしないという処理を行いたいのですが、どのようなソースコードを書けばいいのかわかりません。
102
+ (参考サイトをみると、JSONで値を返すという記事を見つけたので、JSON形式で値を返す場合は、MINIJsonを用いようかと考えています。)
103
+
104
+ 説明が分かりづらく、すみません…
105
+ ご協力お願いできないでしょうか。
12
106
  よろしくお願いします。

1

誤字

2016/08/28 09:50

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -7,6 +7,6 @@
7
7
 
8
8
  作るうえで分からないことは、InputFieldに入力した値をMySQLにあるユーザデータとどのように照合するのかということです。
9
9
 
10
- 初めての利用、質問であるため、拙い文章ですみません…
10
+ 初めての利用、質問であるため、拙い文章ですみません…
11
11
  まだUnityやMySQLは使い始めたばかりの初心者なので、至らない点ばかりですが、お力をお借りできないでしょうか。
12
12
  よろしくお願いします。