2016-05-28 11 views
-3

文字列 'SUCCESS'にHTTP 200レスポンスを送る必要がありますが、私のPHPサーバのバージョンは5.2.17です!レスポンスを送信するPHPのHTTP 200 SUCCESS

私の場合、webhookはnotification.phpというファイルにデータをキャプチャして送信します。コンテンツを読み込んでデータベースに保存し、レスポンスを送信する必要がありますが、これを行う方法はわかりません。

誰かがこれをPHP 5.2.17で行う方法を知っていますか?

// error 1 
header("Content-Type: text/plain"); 
echo "SUCCESS"; 

// error 2 
$httpStatusCode = 200; 
$httpStatusMsg = 'SUCCESS'; 
$protocol = isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0'; 
header($protocol.' '.$httpStatusCode.' '.$httpStatusMsg); 

// error 3 
header("200 SUCCESS"); 
return "200 SUCCESS"; 

// error 4 
header('Content-Type: application/json'); 
echo 'SUCCESS'; 

// error 5 
header('Content-Type: application/json'); 
return 'SUCCESS'; 

//error 6 
header('Content-Type: application/json'); 
header('SUCCESS'); 

///error 7 
header('Content-Type: application/json'); 
$success =json_encode('SUCCESS'); 
header($success); 


///error 8 
header("HTTP/1.1 200 SUCCESS"); 
header("Content-Type:application/json; charset=utf-8"); 

///error 9 
header("HTTP/1.1 200"); 
header("Content-Type:application/json; charset=utf-8"); 
result 'SUCCESS'; 

//error 10 
header("Content-Type:application/json;"); 
header('HTTP/1.0 200 SUCCESS'); 

// error 11 
$code = 200; 
$text = 'OK'; 
$protocol = (isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0'); 
header($protocol . ' ' . $code . ' ' . $text); 
$GLOBALS['http_response_code'] = $code; 
echo 'SUCCESS'; 

マイPhpCode

<?php 
$src_data = $_REQUEST["data"];   
$une_data = stripslashes($src_data); 
$data = json_decode($une_data); 

//get payment data 
$id_cob = $data->payment->id; 
$id_cus = $data->payment->customer; 
$status = $data->payment->status; 
$dtsts = date("Y-m-d"); 

if ($data->event == 'PAYMENT_RECEIVED') { 
// post client 
include('dbconnection.php'); 
$qryn = "UPDATE PAYMENTS SET STATUS='$status', DATASTATUS='$dtsts' WHERE ID_COB_ASAAS='$id_cob' AND ID_CLI_ASAAS='$id_cus'"; 
    mysql_query($qryn,$cnx); 
} 

// webhook return 
// my solution was: 
header('HTTP/1.1 200 OK'); 
echo 'SUCCESS'; 
return; 

?> 
+2

ヘッダー機能は長時間変更されていません。それにもかかわらず、実際には6年間のセキュリティアップデートを受けていないソフトウェアを実行するための駆け引きはありません。 – PeeHaa

+0

PHP 5.2は2011年に廃止されました。これは非常に危険で、実行するのは危険です。アップグレードする時間。 – ceejayoz

+0

ceejayoz:残念ながら、これは共有ホスティングです。クライアントとして、ホスティングサーバーによって異なります。 – prmas

答えて

-5

試してみてください:

$code = 200; 
$text = 'OK'; 
$protocol = (isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0'); 
header($protocol . ' ' . $code . ' ' . $text); 
$GLOBALS['http_response_code'] = $code; 
echo 'SUCCESS'; 
+0

これは非常に複雑すぎるアプローチです。 – ceejayoz

+0

変数の使用のために意味ですか? –

+0

ありがとうございました。 – prmas

5

200は、標準的なリターンコードです

は、私は成功せず、次の方法を試してみました。

ので

<?php 
echo 'SUCCESS'; 

は基本的には十分なはずです。

+0

ありがとうアレックス、私は成功しませんでした。私は使用しているPHPコードを含めると、役立つ可能性があります。 – prmas

関連する問題