-PR-
回答
受付中

JavaScriptとPHPで500内部エラー

  • 困ってます
  • 質問No.9295088
  • 閲覧数23
  • ありがとう数0
  • 気になる数0
  • 回答数1

お礼率 2% (1/43)

今、JavaScriptからPHPへ入力した情報を渡して、SQLに登録処理を行いたいのですが、500内部エラーを起こしてしまい、後にも先にも勧めなくなってしまいました。もしソースのことが分かるという方は教えて頂けると幸いです。


js

var php_data = [] ;

php_data = {
worker_code : worker_code.value
,worker_name : worker_name.value
,worker_name_kana : worker_name_kana.value
}

var params = {inputData: JSON.stringify(php_data)} ;

common.phpCall(
'insert.php'
,params
,function(jsondata){
alert(jsondata + '件、ユーザーの登録を行いました。' ) ;
alert( 'ユーザーの登録が完了しました。画面を更新します。' ) ;
location.reload() ;
}
, function(error){
alert( '500:Internal Server Error' ) ;
alert( 'ユーザーの登録作業中にエラーが発生しました。\nユーザーの登録作業を中止します。' ) ;
  }
)

common

const common = {
/**
* PHPを呼び出す
* 戻り値をコールバック関数へ渡す
*/
phpCall: function(phpFile, params, callback, error){
//引数チェック
var chk = [params, callback,error];
if(!_common.dataChk(chk))return false;
params = chk[0];
callback = chk[1];
error = chk[2];

var requestObj = _common.createXMLHttpRequest();
requestObj.open('POST', SYSTEM_FULL_LOCATION + '/common/escape.php', true);
requestObj.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
requestObj.setRequestHeader( 'X-Requested-With','XMLHttpRequest' );
requestObj.send('php='+phpFile+'&' + params);
requestObj.onreadystatechange = function(){
if (requestObj.readyState === 4 ) {
if(requestObj.status === 200){
var jsonData = JSON.parse(requestObj.responseText);
callback(jsonData);
}else{
error(requestObj);
}
}
}
return true;
}


insert.php

<?php
# パラメータ退避
$input = array_merge($_GET , $_POST) ;

# JavaScriptから受け渡されたデータを配列に格納
# 素の状態の場合、JSON文字列として渡されるので、配列に直してあげる
$array = json_decode($input["inputData"], JSON_FORCE_OBJECT) ;

# JSONに渡すためのパラメータ用配列を作成し、JavaScriptから受け渡されたデータ配列($array)を格納
$row = $array ;
# 結果用の空配列作成
$result = array() ;

$sql1 = dirname(__FILE__)."/sql/staff_insert.sql" ;#作成したSQL名
#staff_insertに必要なパラメータ
$param1 = array(
$row["worker_code"] #パラメータ名
, $row["worker_name"]
, $row["worker_name_kana"]
, $row["sex"]
, $row["birthday"]
, $row["tel_1"]
, $row["tel_2"]
, $row["tel_3"]
, $row["mobile_1"]
, $row["mobile_2"]
, $row["mobile_3"]
, $row["emergency_1"]
, $row["emergency_2"]
, $row["emergency_3"]
, $row["zipcode"]
, $row["street_address"]
, $row["mail_address"]
, $row["part"]
, $row["continuous_presence"]
, $row["enter_date"]
, $row["leave_date"]
, $row["insurance_number"]
, $row["suspension_flag"]
);

# SQLとパラメータをまとめ、SQLを発行する
# 第一引数:SQL名
# 第二引数:SQL用パラメータ
# 第三引数:結果用配列
if( !updateSqlByFile($sql1 , $param1 , $result) ){
/*
header("HTTP/1.0 Internal Server Error") ;
exit ;
*/

//return false ;

// echo json_encode(false);
// exit;
/*
header('Content-Type: application/json');
echo json_encode(false);
exit;
*/
header("HTTP/1.0 500 Internal Server Error");
exit;
}

# 結果をJSON形式で出力し、echoで結果を返す
// header("Content-Type: application/json; charset=utf-8") ;
header('Content-Type: application/json') ;
echo json_encode($result) ;
exit ;
?>

echo json_encode(false);
exit;


echoでfalse返却すると、false件登録というアラートが出る。SQLにはデータ登録なし。



header("HTTP/1.0 Internal Server Error") ;
exit ;

これだと、500エラーになる。

PHPかSQLに問題あるのかがよくわかりません。教えて下さい。
通報する
  • 回答数1

回答 (全1件)

  • 回答No.1
レベル10

ベストアンサー率 56% (86/151)

updateSqlByFile という関数はどこかに定義されていますか? それが無いせいだと思います。
updateSqlByFile という関数はどこかに定義されていますか?
それが無いせいだと思います。
関連するQ&A
  • 回答数1
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ