質問編集履歴

2

文言の修正をしました。

2020/09/02 01:40

投稿

nkrchan
nkrchan

スコア12

test CHANGED
@@ -1 +1 @@
1
- Codeigniter+Xdebug+Eclipse POSTデータを受け取ったときのデバックにつ
1
+ Codeigniter+Xdebug+Eclipse POSTデータを受け取ったコントローラのデバックがした
test CHANGED
@@ -4,9 +4,17 @@
4
4
 
5
5
  ### 前提・実現したいこと
6
6
 
7
+ 【環境】
8
+
9
+ codeigniter
10
+
11
+ Eclipse
12
+
13
+ Xdebug
7
14
 
8
15
 
16
+
9
- POSTする側のコントローラからデバックを開始し、そ流れでデータを受け取った側のコントローラにデバッガ遷移し、Xdebugで1行ずつデバックしたいです。
17
+ コントローラからのコントローラにデータPOST送信し、Xdebugで追いたいです。
10
18
 
11
19
 
12
20
 
@@ -16,7 +24,7 @@
16
24
 
17
25
  下記のソースでいうと、post_receive.phpの処理をデバックしたいです。
18
26
 
19
- ただ今の状況だとpost_submit.phpからデバックを始めて、POST送信してそのまま処理が終了し(post_receive.phpにデバッガが遷移してくれない)、ブラウザにpost_receive.phpからのレスポンスが表示されます。
27
+ 今の状況だとpost_submit.phpからデバックを始めて、POST送信してそのまま処理が終了し(post_receive.phpにデバッガが遷移してくれない)、ブラウザにpost_receive.phpからのレスポンスが表示されます。
20
28
 
21
29
 
22
30
 

1

ソースを追加し、文言を修正しました。

2020/09/02 01:40

投稿

nkrchan
nkrchan

スコア12

test CHANGED
@@ -1 +1 @@
1
- Xdebug+Eclipse JSONを受け取ったときのデバックについて
1
+ Codeigniter+Xdebug+Eclipse POSTデータを受け取ったときのデバックについて
test CHANGED
@@ -6,27 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- CodeigniterのコントローラからJSON形式のデータをPOSTする→別のコントローラで受け取り、Xdebugで1行ずつデバックしたいです。
9
+ POSTする側のコントローラからデバックを開始し、そ流れでデータを受け取った側のコントローラにデバッガを遷移し、Xdebugで1行ずつデバックしたいです。
10
-
11
-
12
-
13
- (状況)
14
-
15
- http://localhost/post_submit/xxx(JSON形式のデータをPOSTするコントローラ)
16
-
17
-
18
-
19
- file_get_contents を使って JSON を送信
20
-
21
-
22
-
23
- http://localhost/post_receive/xxx(JSON形式のデータを受け取るコントローラ)←Xdebugでデバックしたい
24
-
25
-
26
-
27
- post_receiveコントローラ単体ではXdebugでデバッガできるのですが、
28
-
29
- post_submitからPOSTでデータを受け取り、そのデータで処理を行う過程をデバックしたいです。
30
10
 
31
11
 
32
12
 
@@ -34,6 +14,156 @@
34
14
 
35
15
 
36
16
 
37
- JSON形式POST、レスポンスを受け取るところはできですが、
17
+ 下記スでいうと、post_receive.phpの処理デバックしたです
38
18
 
19
+ ただ今の状況だとpost_submit.phpからデバックを始めて、POST送信してそのまま処理が終了し(post_receive.phpにデバッガが遷移してくれない)、ブラウザにpost_receive.phpからのレスポンスが表示されます。
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+ ### POSTする側のコントローラ
28
+
29
+
30
+
31
+ ```php
32
+
33
+ //post_submit.php
34
+
35
+
36
+
37
+ class Post_submit extends CI_Controller
38
+
39
+ {
40
+
41
+ public function __construct() {
42
+
43
+
44
+
45
+ parent::__construct();
46
+
47
+
48
+
49
+ }
50
+
51
+
52
+
53
+ public function index() {
54
+
55
+
56
+
57
+ // 送信データ
58
+
59
+ $data = array(
60
+
61
+ 'greeting' => 'hello',
62
+
63
+ );
64
+
65
+
66
+
67
+ // JSON形式に変換
68
+
69
+ $data = json_encode($data);
70
+
71
+
72
+
73
+ // ストリームコンテキストのオプションを作成
74
+
75
+ $options = array(
76
+
77
+ // HTTPコンテキストオプションをセット
78
+
79
+ 'http' => array(
80
+
81
+ 'method'=> 'POST',
82
+
83
+ 'header'=> 'Content-type: application/json; charset=UTF-8', //JSON形式で表示
84
+
85
+ 'content' => $data
86
+
87
+ )
88
+
89
+ );
90
+
91
+
92
+
93
+ // ストリームコンテキストの作成
94
+
95
+ $context = stream_context_create($options);
96
+
97
+
98
+
99
+ // POST送信
100
+
101
+ $contents = file_get_contents('http://localhost/post_receive/index', false, $context);
102
+
103
+
104
+
105
+ //レスポンスを表示
106
+
107
+ echo $contents;
108
+
109
+
110
+
111
+ }
112
+
113
+ }
114
+
115
+ ```
116
+
117
+ ### POSTされたデータを受け取る側のコントローラ
118
+
119
+
120
+
121
+ ```php
122
+
123
+ //post_receive.php
124
+
125
+
126
+
127
+ class Post_receive extends CI_Controller
128
+
129
+ {
130
+
131
+ public function __construct() {
132
+
133
+
134
+
135
+ parent::__construct();
136
+
137
+
138
+
139
+ }
140
+
141
+
142
+
143
+ public function index() {
144
+
145
+
146
+
147
+ // POST の生データの読み込む
148
+
149
+ $json_string = file_get_contents('php://input');
150
+
151
+
152
+
153
+ // JSON エンコードされた文字列を PHP の変数に変換
154
+
39
- データを受け取った側のコントローラの処理過程をxdebugで確認する方法はありますでしょうか。
155
+ $contents = json_decode($json_string, true);
156
+
157
+
158
+
159
+          //レスポンスを表示
160
+
161
+          print_r($contents);
162
+
163
+
164
+
165
+ }
166
+
167
+ }
168
+
169
+ ```