質問編集履歴

2

削除の取り消し

2017/04/14 02:48

投稿

kurikara
kurikara

スコア7

test CHANGED
@@ -1 +1 @@
1
-
1
+ JavaScriptとPHPで500内部エラー
test CHANGED
@@ -1 +1,317 @@
1
+ ###前提・実現したいこと
2
+
3
+ 今、JavaScriptからPHPへ入力した情報を渡して、SQLに登録処理を行いたいのですが、500内部エラーを起こしてしまい、後にも先にも勧めなくなってしまいました。もしソースのことが分かるという方は教えて頂けると幸いです。
4
+
5
+
6
+
7
+ ###発生している問題・エラーメッセージ
8
+
9
+
10
+
11
+ ```
12
+
13
+ POST http://(URL)/common/escape\.php 500 \(Internal Server Error\)
14
+
15
+ ```
16
+
17
+
18
+
19
+ ###該当のソースコード
20
+
21
+ ```ここに言語を入力
22
+
23
+ js
24
+
25
+
26
+
27
+ var php_data = \[\] ;
28
+
29
+
30
+
31
+ php_data = {
32
+
33
+ worker_code : worker_code\.value
34
+
35
+ ,worker_name : worker_name\.value
36
+
37
+ ,worker_name_kana : worker_name_kana\.value
38
+
39
+ }
40
+
41
+
42
+
43
+ var params = {inputData: JSON\.stringify\(php_data\)} ;
44
+
45
+
46
+
47
+ common\.phpCall\(
48
+
49
+ 'insert\.php'
50
+
51
+ ,params
52
+
53
+ ,function\(jsondata\){
54
+
55
+ alert\(jsondata \+ '件、ユーザーの登録を行いました。' \) ;
56
+
57
+ alert\( 'ユーザーの登録が完了しました。画面を更新します。' \) ;
58
+
59
+ location\.reload\(\) ;
60
+
61
+ }
62
+
63
+ , function\(error\){
64
+
65
+ alert\( '500:Internal Server Error' \) ;
66
+
67
+ alert\( 'ユーザーの登録作業中にエラーが発生しました。\\nユーザーの登録作業を中止します。' \) ;
68
+
69
+ }
70
+
71
+ \)
72
+
73
+
74
+
75
+ common
76
+
77
+
78
+
79
+ const common = {
80
+
81
+ /\*\*
82
+
83
+ \* PHPを呼び出す
84
+
85
+ \* 戻り値をコールバック関数へ渡す
86
+
87
+ \*/
88
+
89
+ phpCall: function\(phpFile, params, callback, error\){
90
+
91
+ //引数チェック
92
+
93
+ var chk = \[params, callback,error\];
94
+
95
+ if\(!_common\.dataChk\(chk\)\)return false;
96
+
97
+ params = chk\[0\];
98
+
99
+ callback = chk\[1\];
100
+
101
+ error = chk\[2\];
102
+
103
+
104
+
105
+ var requestObj = _common\.createXMLHttpRequest\(\);
106
+
107
+ requestObj\.open\('POST', SYSTEM_FULL_LOCATION \+ '/common/escape\.php', true\);
108
+
109
+ requestObj\.setRequestHeader\( 'Content-Type', 'application/x-www-form-urlencoded' \);
110
+
111
+ requestObj\.setRequestHeader\( 'X-Requested-With','XMLHttpRequest' \);
112
+
113
+ requestObj\.send\('php='\+phpFile\+'&' \+ params\);
114
+
115
+ requestObj\.onreadystatechange = function\(\){
116
+
117
+ if \(requestObj\.readyState === 4 \) {
118
+
119
+ if\(requestObj\.status === 200\){
120
+
121
+ var jsonData = JSON\.parse\(requestObj\.responseText\);
122
+
123
+ callback\(jsonData\);
124
+
125
+ }else{
126
+
127
+ error\(requestObj\);
128
+
129
+ }
130
+
131
+ }
132
+
133
+ }
134
+
135
+ return true;
136
+
137
+ }
138
+
139
+
140
+
141
+
142
+
143
+ insert\.php
144
+
145
+
146
+
147
+ <\?php
148
+
149
+ # パラメータ退避
150
+
151
+ \$input = array_merge\(\$_GET , \$_POST\) ;
152
+
153
+
154
+
155
+ # JavaScriptから受け渡されたデータを配列に格納
156
+
157
+ # 素の状態の場合、JSON文字列として渡されるので、配列に直してあげる
158
+
159
+ \$array = json_decode\(\$input\["inputData"\], JSON_FORCE_OBJECT\) ;
160
+
161
+
162
+
163
+ # JSONに渡すためのパラメータ用配列を作成し、JavaScriptから受け渡されたデータ配列(\$array\)を格納
164
+
165
+ \$row = \$array ;
166
+
167
+ # 結果用の空配列作成
168
+
169
+ \$result = array\(\) ;
170
+
171
+
172
+
173
+ \$sql1 = dirname\(__FILE__\)\."/sql/staff_insert\.sql" ;#作成したSQL名
174
+
175
+ #staff_insertに必要なパラメータ
176
+
177
+ \$param1 = array\(
178
+
179
+ \$row\["worker_code"\] #パラメータ名
180
+
181
+ , \$row\["worker_name"\]
182
+
183
+ , \$row\["worker_name_kana"\]
184
+
185
+ , \$row\["sex"\]
186
+
187
+ , \$row\["birthday"\]
188
+
189
+ , \$row\["tel_1"\]
190
+
191
+ , \$row\["tel_2"\]
192
+
193
+ , \$row\["tel_3"\]
194
+
195
+ , \$row\["mobile_1"\]
196
+
197
+ , \$row\["mobile_2"\]
198
+
199
+ , \$row\["mobile_3"\]
200
+
201
+ , \$row\["emergency_1"\]
202
+
203
+ , \$row\["emergency_2"\]
204
+
205
+ , \$row\["emergency_3"\]
206
+
207
+ , \$row\["zipcode"\]
208
+
209
+ , \$row\["street_address"\]
210
+
211
+ , \$row\["mail_address"\]
212
+
213
+ , \$row\["part"\]
214
+
215
+ , \$row\["continuous_presence"\]
216
+
217
+ , \$row\["enter_date"\]
218
+
219
+ , \$row\["leave_date"\]
220
+
221
+ , \$row\["insurance_number"\]
222
+
223
+ , \$row\["suspension_flag"\]
224
+
225
+ \);
226
+
227
+
228
+
229
+ # SQLとパラメータをまとめ、SQLを発行する
230
+
231
+ # 第一引数:SQL名
232
+
233
+ # 第二引数:SQL用パラメータ
234
+
235
+ # 第三引数:結果用配列
236
+
237
+ if\( !updateSqlByFile\(\$sql1 , \$param1 , \$result\) \){
238
+
239
+ /\*
240
+
241
+ header\("HTTP/1\.0 Internal Server Error"\) ;
242
+
243
+ exit ;
244
+
245
+ \*/
246
+
247
+
248
+
249
+ // return false ;
250
+
251
+
252
+
253
+ // echo json_encode\(false\);
254
+
255
+ // exit;
256
+
257
+ /\*
258
+
259
+ header\('Content-Type: application/json'\);
260
+
261
+ echo json_encode\(false\);
262
+
263
+ exit;
264
+
265
+ \*/
266
+
267
+ header\("HTTP/1\.0 500 Internal Server Error"\);
268
+
269
+ exit;
270
+
271
+ }
272
+
273
+
274
+
275
+ # 結果をJSON形式で出力し、echoで結果を返す
276
+
277
+ // header\("Content-Type: application/json; charset=utf-8"\) ;
278
+
279
+ header\('Content-Type: application/json'\) ;
280
+
281
+ echo json_encode\(\$result\) ;
282
+
283
+ exit ;
284
+
285
+ \?>
286
+
287
+
288
+
289
+ ```
290
+
291
+
292
+
1
- …申し訳ありませんでした。質問を削除したいで、質問内容消しました。ごめんさい。
293
+ ###補足情報\(言語/FW/ツール等バージョンど\)
294
+
295
+ echo json_encode\(false\);
296
+
297
+ exit;
298
+
299
+
300
+
301
+
302
+
303
+ echoで false返却すると、false件登録というアラートが出る。SQLにはデータ登録なし。
304
+
305
+
306
+
307
+
308
+
309
+
310
+
311
+ header\("HTTP/1\.0 Internal Server Error"\) ;
312
+
313
+ exit ;
314
+
315
+
316
+
317
+ これだと、500エラーになる。

1

質問内容

2017/04/14 02:48

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- JavaScriptとPHPで500内部エラー
1
+
test CHANGED
@@ -1,317 +1 @@
1
- ###前提・実現したいこと
2
-
3
- 今、JavaScriptからPHPへ入力した情報を渡して、SQLに登録処理を行いたいのですが、500内部エラーを起こしてしまい、後にも先にも勧めなくなってしまいました。もしソースのことが分かるという方は教えて頂けると幸いです。
4
-
5
-
6
-
7
- ###発生している問題・エラーメッセージ
8
-
9
-
10
-
11
- ```
12
-
13
- POST http://(URL)/common/escape.php 500 (Internal Server Error)
14
-
15
- ```
16
-
17
-
18
-
19
- ###該当のソースコード
20
-
21
- ```ここに言語を入力
22
-
23
- js
24
-
25
-
26
-
27
- var php_data = [] ;
28
-
29
-
30
-
31
- php_data = {
32
-
33
- worker_code : worker_code.value
34
-
35
- ,worker_name : worker_name.value
36
-
37
- ,worker_name_kana : worker_name_kana.value
38
-
39
- }
40
-
41
-
42
-
43
- var params = {inputData: JSON.stringify(php_data)} ;
44
-
45
-
46
-
47
- common.phpCall(
48
-
49
- 'insert.php'
50
-
51
- ,params
52
-
53
- ,function(jsondata){
54
-
55
- alert(jsondata + '件、ユーザーの登録いました。' ) ;
1
+ …申し訳ありませんでした。質問削除したので、質問内容消しました。ごめんなさい。
56
-
57
- alert( 'ユーザーの登録が完了しました。画面を更新します。' ) ;
58
-
59
- location.reload() ;
60
-
61
- }
62
-
63
- , function(error){
64
-
65
- alert( '500:Internal Server Error' ) ;
66
-
67
- alert( 'ユーザーの登録作業中にエラーが発生しました。\nユーザーの登録作業を中止します。' ) ;
68
-
69
- }
70
-
71
- )
72
-
73
-
74
-
75
- common
76
-
77
-
78
-
79
- const common = {
80
-
81
- /**
82
-
83
- * PHPを呼び出す
84
-
85
- * 戻り値をコールバック関数へ渡す
86
-
87
- */
88
-
89
- phpCall: function(phpFile, params, callback, error){
90
-
91
- //引数チェック
92
-
93
- var chk = [params, callback,error];
94
-
95
- if(!_common.dataChk(chk))return false;
96
-
97
- params = chk[0];
98
-
99
- callback = chk[1];
100
-
101
- error = chk[2];
102
-
103
-
104
-
105
- var requestObj = _common.createXMLHttpRequest();
106
-
107
- requestObj.open('POST', SYSTEM_FULL_LOCATION + '/common/escape.php', true);
108
-
109
- requestObj.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
110
-
111
- requestObj.setRequestHeader( 'X-Requested-With','XMLHttpRequest' );
112
-
113
- requestObj.send('php='+phpFile+'&' + params);
114
-
115
- requestObj.onreadystatechange = function(){
116
-
117
- if (requestObj.readyState === 4 ) {
118
-
119
- if(requestObj.status === 200){
120
-
121
- var jsonData = JSON.parse(requestObj.responseText);
122
-
123
- callback(jsonData);
124
-
125
- }else{
126
-
127
- error(requestObj);
128
-
129
- }
130
-
131
- }
132
-
133
- }
134
-
135
- return true;
136
-
137
- }
138
-
139
-
140
-
141
-
142
-
143
- insert.php
144
-
145
-
146
-
147
- <?php
148
-
149
- # パラメータ退避
150
-
151
- $input = array_merge($_GET , $_POST) ;
152
-
153
-
154
-
155
- # JavaScriptから受け渡されたデータを配列に格納
156
-
157
- # 素の状態の場合、JSON文字列として渡されるので、配列に直してあげる
158
-
159
- $array = json_decode($input["inputData"], JSON_FORCE_OBJECT) ;
160
-
161
-
162
-
163
- # JSONに渡すためのパラメータ用配列を作成し、JavaScriptから受け渡されたデータ配列($array)を格納
164
-
165
- $row = $array ;
166
-
167
- # 結果用の空配列作成
168
-
169
- $result = array() ;
170
-
171
-
172
-
173
- $sql1 = dirname(__FILE__)."/sql/staff_insert.sql" ;#作成したSQL名
174
-
175
- #staff_insertに必要なパラメータ
176
-
177
- $param1 = array(
178
-
179
- $row["worker_code"] #パラメータ名
180
-
181
- , $row["worker_name"]
182
-
183
- , $row["worker_name_kana"]
184
-
185
- , $row["sex"]
186
-
187
- , $row["birthday"]
188
-
189
- , $row["tel_1"]
190
-
191
- , $row["tel_2"]
192
-
193
- , $row["tel_3"]
194
-
195
- , $row["mobile_1"]
196
-
197
- , $row["mobile_2"]
198
-
199
- , $row["mobile_3"]
200
-
201
- , $row["emergency_1"]
202
-
203
- , $row["emergency_2"]
204
-
205
- , $row["emergency_3"]
206
-
207
- , $row["zipcode"]
208
-
209
- , $row["street_address"]
210
-
211
- , $row["mail_address"]
212
-
213
- , $row["part"]
214
-
215
- , $row["continuous_presence"]
216
-
217
- , $row["enter_date"]
218
-
219
- , $row["leave_date"]
220
-
221
- , $row["insurance_number"]
222
-
223
- , $row["suspension_flag"]
224
-
225
- );
226
-
227
-
228
-
229
- # SQLとパラメータをまとめ、SQLを発行する
230
-
231
- # 第一引数:SQL名
232
-
233
- # 第二引数:SQL用パラメータ
234
-
235
- # 第三引数:結果用配列
236
-
237
- if( !updateSqlByFile($sql1 , $param1 , $result) ){
238
-
239
- /*
240
-
241
- header("HTTP/1.0 Internal Server Error") ;
242
-
243
- exit ;
244
-
245
- */
246
-
247
-
248
-
249
- // return false ;
250
-
251
-
252
-
253
- // echo json_encode(false);
254
-
255
- // exit;
256
-
257
- /*
258
-
259
- header('Content-Type: application/json');
260
-
261
- echo json_encode(false);
262
-
263
- exit;
264
-
265
- */
266
-
267
- header("HTTP/1.0 500 Internal Server Error");
268
-
269
- exit;
270
-
271
- }
272
-
273
-
274
-
275
- # 結果をJSON形式で出力し、echoで結果を返す
276
-
277
- // header("Content-Type: application/json; charset=utf-8") ;
278
-
279
- header('Content-Type: application/json') ;
280
-
281
- echo json_encode($result) ;
282
-
283
- exit ;
284
-
285
- ?>
286
-
287
-
288
-
289
- ```
290
-
291
-
292
-
293
- ###補足情報(言語/FW/ツール等のバージョンなど)
294
-
295
- echo json_encode(false);
296
-
297
- exit;
298
-
299
-
300
-
301
-
302
-
303
- echoで false返却すると、false件登録というアラートが出る。SQLにはデータ登録なし。
304
-
305
-
306
-
307
-
308
-
309
-
310
-
311
- header("HTTP/1.0 Internal Server Error") ;
312
-
313
- exit ;
314
-
315
-
316
-
317
- これだと、500エラーになる。