質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1175閲覧

CakePHPのHttpSocketでPOSTリクエストされたCGIから結果を返したい

退会済みユーザー

退会済みユーザー

総合スコア0

CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2021/10/10 03:19

前提・実現したいこと

CakePHPのHttpSocketでPOSTリクエストされたCGIから0:失敗、1:成功のような処理結果を返したいのですが、出来ません。

発生している問題・エラーメッセージ

下記のPHP側処理の$resultsの値を確認したところ

<!DOCTYPE html>

という文字列が入っているだけで意図した結果が返ってきませんでした。

該当のソースコード

PHP

1$url = 'http://example.com/test.cgi'; 2$data = array( 3 'username' => "yourename", 4 'pass' => "パスワード", 5); 6 7App::uses('HttpSocket', 'Network/Http'); 8$HttpSocket = new HttpSocket(); 9$results = $HttpSocket->post($url, $data);

試したこと

とりあえずCGIから意図した結果を返すだけを確認したかったので、以下のコードで確認しました。
PHP側の$resultsに1を返したい場合、これだけでは処理が不足しているのでしょうか。

CGI

1#!/usr/bin/perl 2echo "1"

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

とりあえず...

$response->code$response->headers (または $response->raw )の結果は、どうなっていますか。

200以外が帰っている場合、Web ブラウザで http://example.com/test.cgi にアクセスすると何が表示されますか?

投稿2021/10/12 06:01

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/10/12 15:11

ご回答ありがとうございます。 print "Content-Type: text/plain¥n¥n"; print "1"; で出来ました。echoで何故、駄目なのかは分かりませんが、目的は果たせたので、クローズします。
CHERRY

2021/10/13 03:45

perl って、 echo あるんでしたっけ?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問