[PHP-users 33692] Re: httpsのページに対して、POST送信をし、結果ページをテキストで取得したい

tanig108 @ edogawa.home.ne.jp tanig108 @ edogawa.home.ne.jp
2008年 6月 24日 (火) 11:11:24 JST


tyです。

回答ありがとうございます。
> 鈴木です。
>
> > 考えられる問題点1:もしかしたら、サーバー
(https://www.aaaa.bbbbb.cccc.jp)の
> > アクセス権限が存在しないかもしれません。
> > 事実、接続してみると、「Error 403--Forbidden」と表示されます。
> > この場合、どのような実装を行えばよいのでしょうか?
>
> 一般的な話をすると、403 を出力しているのは相手の Web サーバなので、その
> URL へのアクセスが必要ならば、相手に接続許可設定をして貰うしかありません。
そうですか。。。
ただ、実行結果の$err_num,$err_msgは、0,nullなので接続できているのかと思って
いました。


> ただし、、、
>
>
> > ☆ソース内容:GetHttps.php
> > 「
> > <?php
> > $fp =
fsockopen('ssl://www.deal.matsui.co.jp',443,&$err_num,&$err_msg,30);
> > $data = "var1=xx&var2=yy";
> > $header = "POST ${PATH} HTTPS/1.0 \r\n" .
> > 	"Host: ' . 'www.aaaa.bbbbb.cccc.jp \r\n" .
> > 	"Accept: text/plain,text/html \r\n" .
> > 	"User-Agent: php-client \r\n" .
> > 	"Content-Type: application/x-www-form-urlencoded \r\n" .
> > 	"Content-Length: ". strlen($data) . " \r\n" .
> > 	"\r\n";
> > if(!$fp){
> >     die('Sorry, the server is not currently available!');
> > }
> > // Send everything
> > fputs($fp, $header . $data . " \r\n");
> > $response = "";
> > // Get the response
> > while(!feof($fp)){
> >     $response .= fgets($fp,4096);
> > }
> > echo "★\n$err_num\n$err_msg\n";
> > $fs = fopen("c:\a.out", "w");
> > fputs($fs, $response);
> > fclose($fs);
> > ?>
>
> このソースでは、いくつか意図が分からない部分があります。
>
> 1. 接続先のサーバ www.deal.matsui.co.jp (名前出していいのかな?)では
>    www.aaaa.bbbbb.cccc.jp という名前でサービス提供しているのでしょうか?
接続先サーバ名は間違いで、ここでは、 www.aaaa.bbbbb.cccc.jp で統一していただ
きたいです。

> 2. 取得したい URL は https://www.aaaa.bbbbb.cccc.jp/          ですか?
>    それとも          https://www.aaaa.bbbbb.cccc.jp/zzzz.html ですか?
>    上のソースでは、$PATH が定義されていないようなので、前者へのリクエス
>    トとなっています。
所得したいURLは、 https://www.aaaa.bbbbb.cccc.jp/zzzz.html になります。
$PATHは、 https://www.aaaa.bbbbb.cccc.jp/zzzz.html に設定してあります。


> あと細かいですが、HTTPS/1.0 というプロトコルは無いような?
> HTTP/1.0 か HTTP/1.1 でしょう。
そちらは修正して実行しなおしましたが、結果は同じでした。

もし何かお分かりになりましたら、返信よろしくお願いいたします。
以上よろしくお願いいたします。



PHP-users メーリングリストの案内