質問編集履歴
2
進捗状況と行き詰りの追加
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
誤字
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
|
よろしくお願いします。
|