質問編集履歴

2

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

2016/08/28 09:50

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -21,3 +21,191 @@
21
21
  まだUnityやMySQLは使い始めたばかりの初心者なので、至らない点ばかりですが、お力をお借りできないでしょうか。
22
22
 
23
23
  よろしくお願いします。
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+ 後日、sakura_hanaさんからの回答を参考に挑戦してみましたが、Unityから送ったデータとMySQLに登録したデータとの照合を終えた後の処理で行き詰ってしまいました。そこまでのソースを以下に示しますので、間違い等あれば、ご教授お願いできないでしょうか。
32
+
33
+
34
+
35
+
36
+
37
+ 1.Unity:InputFieldに入力した値をPHPにPOSTする
38
+
39
+
40
+
41
+ ```C# Unity側
42
+
43
+ using UnityEngine;
44
+
45
+ using System.Collections;
46
+
47
+ using UnityEngine.UI;
48
+
49
+
50
+
51
+ public class SubmitManager : MonoBehaviour
52
+
53
+ {
54
+
55
+ string str1;
56
+
57
+ string str2;
58
+
59
+ public InputField inputField1;
60
+
61
+ public InputField inputField2;
62
+
63
+
64
+
65
+ public void OnClickButton()
66
+
67
+ {
68
+
69
+ StartCoroutine(Connect());
70
+
71
+ }
72
+
73
+ private IEnumerator Connect()
74
+
75
+ {
76
+
77
+ string url = "http://localhost/unity/unity_text.php";
78
+
79
+ str1 = inputField1.text;//入力されたユーザ名を格納
80
+
81
+ str2 = inputField2.text;//入力されたパスワードを格納
82
+
83
+ WWWForm form = new WWWForm();
84
+
85
+ form.AddField("Text1", str1);
86
+
87
+ form.AddField("Text2", str2);
88
+
89
+ WWW www = new WWW(url, form);
90
+
91
+ yield return www;
92
+
93
+
94
+
95
+ if (www.error == null)
96
+
97
+ {
98
+
99
+ Debug.Log("WWW Submit Ok!: " + www.text);
100
+
101
+ }
102
+
103
+ else
104
+
105
+ {
106
+
107
+ Debug.Log("WWW Submit Error: " + www.error);
108
+
109
+ }
110
+
111
+
112
+
113
+ }
114
+
115
+ }
116
+
117
+ ```
118
+
119
+
120
+
121
+ 2.PHP:POSTされたデータを元にデータベースを照合する
122
+
123
+
124
+
125
+ ```PHP
126
+
127
+ <?php
128
+
129
+ // 接続情報
130
+
131
+ $servername = "localhost";
132
+
133
+ $username = "root";
134
+
135
+ $password = "hogehoge";
136
+
137
+ $dbname = "example";
138
+
139
+ // インプット値
140
+
141
+ $i_name = (string)filter_input(INPUT_POST, 'Text1');
142
+
143
+ $i_pass = (string)filter_input(INPUT_POST, 'Text2');
144
+
145
+
146
+
147
+ try {
148
+
149
+ // DB接続
150
+
151
+ $pdo = new PDO("mysql:host=$servername;dbname=$dbname;charset=utf8", $username, $password);
152
+
153
+ $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
154
+
155
+ $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
156
+
157
+ // SQL発行
158
+
159
+ $stmt = $pdo->prepare("SELECT * FROM userdata WHERE name = ? AND password = ?");
160
+
161
+ $stmt->bindValue(1, $i_name);
162
+
163
+ $stmt->bindValue(2, $i_pass);
164
+
165
+ $stmt->execute();
166
+
167
+ // 結果の取得
168
+
169
+ if($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
170
+
171
+ echo $row['name'] . " collation is complete!";
172
+
173
+ }else{
174
+
175
+ echo "no user or no password";
176
+
177
+ }
178
+
179
+ }
180
+
181
+ catch(PDOException $e) {
182
+
183
+ echo "Connection failed: " . $e->getMessage();
184
+
185
+ }
186
+
187
+ // DB切断
188
+
189
+ $pdo = null;
190
+
191
+ ?>
192
+
193
+ ```
194
+
195
+
196
+
197
+ ここまでのコードにより、UnityのInputFieldに入力した値がMySQLのデータと照合して、合っていたらUnityのログに、WWW Submit Ok!: (ユーザ名) collation complete!表示されます。
198
+
199
+
200
+
201
+ ユーザ名とパスワードが照合できた場合、Unityでは次の画面に遷移し、できなった場合は画面の遷移をしないという処理を行いたいのですが、どのようなソースコードを書けばいいのかわかりません。
202
+
203
+ (参考サイトをみると、JSONで値を返すという記事を見つけたので、JSON形式で値を返す場合は、MINIJsonを用いようかと考えています。)
204
+
205
+
206
+
207
+ 説明が分かりづらく、すみません…
208
+
209
+ ご協力お願いできないでしょうか。
210
+
211
+ よろしくお願いします。

1

誤字

2016/08/28 09:50

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- 初めての利用、質問であるため、拙い文章ですみません…
19
+ 初めての利用、質問であるため、拙い文章ですみません…
20
20
 
21
21
  まだUnityやMySQLは使い始めたばかりの初心者なので、至らない点ばかりですが、お力をお借りできないでしょうか。
22
22