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

質問編集履歴

2

削除の取り消し

2017/04/14 02:48

投稿

kurikara
kurikara

スコア7

title CHANGED
@@ -1,1 +1,1 @@
1
-
1
+ JavaScriptとPHPで500内部エラー
body CHANGED
@@ -1,1 +1,159 @@
1
+ ###前提・実現したいこと
2
+ 今、JavaScriptからPHPへ入力した情報を渡して、SQLに登録処理を行いたいのですが、500内部エラーを起こしてしまい、後にも先にも勧めなくなってしまいました。もしソースのことが分かるという方は教えて頂けると幸いです。
3
+
4
+ ###発生している問題・エラーメッセージ
5
+
6
+ ```
7
+ POST http://(URL)/common/escape\.php 500 \(Internal Server Error\)
8
+ ```
9
+
10
+ ###該当のソースコード
11
+ ```ここに言語を入力
12
+ js
13
+
14
+ var php_data = \[\] ;
15
+
16
+ php_data = {
17
+ worker_code : worker_code\.value
18
+ ,worker_name : worker_name\.value
19
+ ,worker_name_kana : worker_name_kana\.value
20
+ }
21
+
22
+ var params = {inputData: JSON\.stringify\(php_data\)} ;
23
+
24
+ common\.phpCall\(
25
+ 'insert\.php'
26
+ ,params
27
+ ,function\(jsondata\){
28
+ alert\(jsondata \+ '件、ユーザーの登録を行いました。' \) ;
29
+ alert\( 'ユーザーの登録が完了しました。画面を更新します。' \) ;
30
+ location\.reload\(\) ;
31
+ }
32
+ , function\(error\){
33
+ alert\( '500:Internal Server Error' \) ;
34
+ alert\( 'ユーザーの登録作業中にエラーが発生しました。\\nユーザーの登録作業を中止します。' \) ;
35
+ }
36
+ \)
37
+
38
+ common
39
+
40
+ const common = {
41
+ /\*\*
42
+ \* PHPを呼び出す
43
+ \* 戻り値をコールバック関数へ渡す
44
+ \*/
45
+ phpCall: function\(phpFile, params, callback, error\){
46
+ //引数チェック
47
+ var chk = \[params, callback,error\];
48
+ if\(!_common\.dataChk\(chk\)\)return false;
49
+ params = chk\[0\];
50
+ callback = chk\[1\];
51
+ error = chk\[2\];
52
+
53
+ var requestObj = _common\.createXMLHttpRequest\(\);
54
+ requestObj\.open\('POST', SYSTEM_FULL_LOCATION \+ '/common/escape\.php', true\);
55
+ requestObj\.setRequestHeader\( 'Content-Type', 'application/x-www-form-urlencoded' \);
56
+ requestObj\.setRequestHeader\( 'X-Requested-With','XMLHttpRequest' \);
57
+ requestObj\.send\('php='\+phpFile\+'&' \+ params\);
58
+ requestObj\.onreadystatechange = function\(\){
59
+ if \(requestObj\.readyState === 4 \) {
60
+ if\(requestObj\.status === 200\){
61
+ var jsonData = JSON\.parse\(requestObj\.responseText\);
62
+ callback\(jsonData\);
63
+ }else{
64
+ error\(requestObj\);
65
+ }
66
+ }
67
+ }
68
+ return true;
69
+ }
70
+
71
+
72
+ insert\.php
73
+
74
+ <\?php
75
+ # パラメータ退避
76
+ \$input = array_merge\(\$_GET , \$_POST\) ;
77
+
78
+ # JavaScriptから受け渡されたデータを配列に格納
79
+ # 素の状態の場合、JSON文字列として渡されるので、配列に直してあげる
80
+ \$array = json_decode\(\$input\["inputData"\], JSON_FORCE_OBJECT\) ;
81
+
82
+ # JSONに渡すためのパラメータ用配列を作成し、JavaScriptから受け渡されたデータ配列(\$array\)を格納
83
+ \$row = \$array ;
84
+ # 結果用の空配列作成
85
+ \$result = array\(\) ;
86
+
87
+ \$sql1 = dirname\(__FILE__\)\."/sql/staff_insert\.sql" ;#作成したSQL名
88
+ #staff_insertに必要なパラメータ
89
+ \$param1 = array\(
90
+ \$row\["worker_code"\] #パラメータ名
91
+ , \$row\["worker_name"\]
92
+ , \$row\["worker_name_kana"\]
93
+ , \$row\["sex"\]
94
+ , \$row\["birthday"\]
95
+ , \$row\["tel_1"\]
96
+ , \$row\["tel_2"\]
97
+ , \$row\["tel_3"\]
98
+ , \$row\["mobile_1"\]
99
+ , \$row\["mobile_2"\]
100
+ , \$row\["mobile_3"\]
101
+ , \$row\["emergency_1"\]
102
+ , \$row\["emergency_2"\]
103
+ , \$row\["emergency_3"\]
104
+ , \$row\["zipcode"\]
105
+ , \$row\["street_address"\]
106
+ , \$row\["mail_address"\]
107
+ , \$row\["part"\]
108
+ , \$row\["continuous_presence"\]
109
+ , \$row\["enter_date"\]
110
+ , \$row\["leave_date"\]
111
+ , \$row\["insurance_number"\]
112
+ , \$row\["suspension_flag"\]
113
+ \);
114
+
115
+ # SQLとパラメータをまとめ、SQLを発行する
116
+ # 第一引数:SQL名
117
+ # 第二引数:SQL用パラメータ
118
+ # 第三引数:結果用配列
119
+ if\( !updateSqlByFile\(\$sql1 , \$param1 , \$result\) \){
120
+ /\*
121
+ header\("HTTP/1\.0 Internal Server Error"\) ;
122
+ exit ;
123
+ \*/
124
+
125
+ // return false ;
126
+
127
+ // echo json_encode\(false\);
128
+ // exit;
129
+ /\*
130
+ header\('Content-Type: application/json'\);
131
+ echo json_encode\(false\);
132
+ exit;
133
+ \*/
134
+ header\("HTTP/1\.0 500 Internal Server Error"\);
135
+ exit;
136
+ }
137
+
138
+ # 結果をJSON形式で出力し、echoで結果を返す
139
+ // header\("Content-Type: application/json; charset=utf-8"\) ;
140
+ header\('Content-Type: application/json'\) ;
141
+ echo json_encode\(\$result\) ;
142
+ exit ;
143
+ \?>
144
+
145
+ ```
146
+
1
- …申し訳ありませんでした。質問を削除したいで、質問内容消しました。ごめんさい。
147
+ ###補足情報\(言語/FW/ツール等バージョンど\)
148
+ echo json_encode\(false\);
149
+ exit;
150
+
151
+
152
+ echoで false返却すると、false件登録というアラートが出る。SQLにはデータ登録なし。
153
+
154
+
155
+
156
+ header\("HTTP/1\.0 Internal Server Error"\) ;
157
+ exit ;
158
+
159
+ これだと、500エラーになる。

1

質問内容

2017/04/14 02:48

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- JavaScriptとPHPで500内部エラー
1
+
body CHANGED
@@ -1,159 +1,1 @@
1
- ###前提・実現したいこと
2
- 今、JavaScriptからPHPへ入力した情報を渡して、SQLに登録処理を行いたいのですが、500内部エラーを起こしてしまい、後にも先にも勧めなくなってしまいました。もしソースのことが分かるという方は教えて頂けると幸いです。
3
-
4
- ###発生している問題・エラーメッセージ
5
-
6
- ```
7
- POST http://(URL)/common/escape.php 500 (Internal Server Error)
8
- ```
9
-
10
- ###該当のソースコード
11
- ```ここに言語を入力
12
- js
13
-
14
- var php_data = [] ;
15
-
16
- php_data = {
17
- worker_code : worker_code.value
18
- ,worker_name : worker_name.value
19
- ,worker_name_kana : worker_name_kana.value
20
- }
21
-
22
- var params = {inputData: JSON.stringify(php_data)} ;
23
-
24
- common.phpCall(
25
- 'insert.php'
26
- ,params
27
- ,function(jsondata){
28
- alert(jsondata + '件、ユーザーの登録いました。' ) ;
1
+ …申し訳ありませんでした。質問削除したので、質問内容消しました。ごめんなさい。
29
- alert( 'ユーザーの登録が完了しました。画面を更新します。' ) ;
30
- location.reload() ;
31
- }
32
- , function(error){
33
- alert( '500:Internal Server Error' ) ;
34
- alert( 'ユーザーの登録作業中にエラーが発生しました。\nユーザーの登録作業を中止します。' ) ;
35
- }
36
- )
37
-
38
- common
39
-
40
- const common = {
41
- /**
42
- * PHPを呼び出す
43
- * 戻り値をコールバック関数へ渡す
44
- */
45
- phpCall: function(phpFile, params, callback, error){
46
- //引数チェック
47
- var chk = [params, callback,error];
48
- if(!_common.dataChk(chk))return false;
49
- params = chk[0];
50
- callback = chk[1];
51
- error = chk[2];
52
-
53
- var requestObj = _common.createXMLHttpRequest();
54
- requestObj.open('POST', SYSTEM_FULL_LOCATION + '/common/escape.php', true);
55
- requestObj.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
56
- requestObj.setRequestHeader( 'X-Requested-With','XMLHttpRequest' );
57
- requestObj.send('php='+phpFile+'&' + params);
58
- requestObj.onreadystatechange = function(){
59
- if (requestObj.readyState === 4 ) {
60
- if(requestObj.status === 200){
61
- var jsonData = JSON.parse(requestObj.responseText);
62
- callback(jsonData);
63
- }else{
64
- error(requestObj);
65
- }
66
- }
67
- }
68
- return true;
69
- }
70
-
71
-
72
- insert.php
73
-
74
- <?php
75
- # パラメータ退避
76
- $input = array_merge($_GET , $_POST) ;
77
-
78
- # JavaScriptから受け渡されたデータを配列に格納
79
- # 素の状態の場合、JSON文字列として渡されるので、配列に直してあげる
80
- $array = json_decode($input["inputData"], JSON_FORCE_OBJECT) ;
81
-
82
- # JSONに渡すためのパラメータ用配列を作成し、JavaScriptから受け渡されたデータ配列($array)を格納
83
- $row = $array ;
84
- # 結果用の空配列作成
85
- $result = array() ;
86
-
87
- $sql1 = dirname(__FILE__)."/sql/staff_insert.sql" ;#作成したSQL名
88
- #staff_insertに必要なパラメータ
89
- $param1 = array(
90
- $row["worker_code"] #パラメータ名
91
- , $row["worker_name"]
92
- , $row["worker_name_kana"]
93
- , $row["sex"]
94
- , $row["birthday"]
95
- , $row["tel_1"]
96
- , $row["tel_2"]
97
- , $row["tel_3"]
98
- , $row["mobile_1"]
99
- , $row["mobile_2"]
100
- , $row["mobile_3"]
101
- , $row["emergency_1"]
102
- , $row["emergency_2"]
103
- , $row["emergency_3"]
104
- , $row["zipcode"]
105
- , $row["street_address"]
106
- , $row["mail_address"]
107
- , $row["part"]
108
- , $row["continuous_presence"]
109
- , $row["enter_date"]
110
- , $row["leave_date"]
111
- , $row["insurance_number"]
112
- , $row["suspension_flag"]
113
- );
114
-
115
- # SQLとパラメータをまとめ、SQLを発行する
116
- # 第一引数:SQL名
117
- # 第二引数:SQL用パラメータ
118
- # 第三引数:結果用配列
119
- if( !updateSqlByFile($sql1 , $param1 , $result) ){
120
- /*
121
- header("HTTP/1.0 Internal Server Error") ;
122
- exit ;
123
- */
124
-
125
- // return false ;
126
-
127
- // echo json_encode(false);
128
- // exit;
129
- /*
130
- header('Content-Type: application/json');
131
- echo json_encode(false);
132
- exit;
133
- */
134
- header("HTTP/1.0 500 Internal Server Error");
135
- exit;
136
- }
137
-
138
- # 結果をJSON形式で出力し、echoで結果を返す
139
- // header("Content-Type: application/json; charset=utf-8") ;
140
- header('Content-Type: application/json') ;
141
- echo json_encode($result) ;
142
- exit ;
143
- ?>
144
-
145
- ```
146
-
147
- ###補足情報(言語/FW/ツール等のバージョンなど)
148
- echo json_encode(false);
149
- exit;
150
-
151
-
152
- echoで false返却すると、false件登録というアラートが出る。SQLにはデータ登録なし。
153
-
154
-
155
-
156
- header("HTTP/1.0 Internal Server Error") ;
157
- exit ;
158
-
159
- これだと、500エラーになる。