[PHP-users 26781] Re: サーバー間のデータ受け渡し

くらげ@lupo.jp php_user @ lupo.jp
2005年 9月 6日 (火) 10:09:33 JST


こんにちわ。くらげです。

> いつもお世話になっております。
> tkと申します。
>
> Aサーバーで受け取った空メールから、メールの送信者のアドレスを取得し、
> それをBサーバーのPHPスクリプトに渡して、DBに入れたいのですが、
> Aサーバーのデータを、BサーバーのPHPスクリプトに渡す方法が分かりません。
> (元々、Bサーバーでメールを受信して、データを取得すれば良いのですが、
> Bサーバーはレンタルサーバーで、受信したメールをPHP等に渡すことができませ
ん。)

メールを受け取ると言うことならPEARのPOP3で出来ますよ
http://pear.php.net/package/Net_POP3

> ソケットというものを使うようで、過去ログを検索したり、マニュアルサイトで
> 調べたり、書籍を読んだりしているのですが、どれも具体的に完全な形では書かれ
て
> おらず(私の理解力の所為とは思うのですが、)解決できておりません。
>
> また、ソケットというのは、「クライアントがサーバーにデータを取りに行く」よ
うに
> 思えるのですが、それで良いのでしょうか?
> 上記のAサーバーが「サーバー」で、Bサーバーが「クライアント」となるのであれ
ば、
> Bサーバーのクライアントをどうやって起動するのかも理解できません。
> 私の場合は、「クライアント(A)がサーバー(B)にデータを渡す」のように思え
> るのですが、
> 同じことなのでしょうか?

ソケットは、集合団地のをイメージするとわかりやすいかも
集合団地=サーバー群(IP)
○号室=ポート

AサーバーとBサーバー間に糸電話を引くように業者(PHPスクリプト)に
依頼するときにIPとポートを指定して糸張ってもらってから
手続きを踏んで注文する(HTTPなら、GET / HTTP/1.1 など)


> http://jp.php.net/manual/ja/ref.sockets.php
> にある「ソケットの例:簡易TCP/IPクライアント」のHOSTに
> www.b-server.comと入れると、www.b-server.comにアクセスはするのですが、
> www.b-server.com/cgi/receive.phpにはどうやって到達するのかも分かりません。


糸は張れてるが手続きをして連絡してない状態ですね

HTTPで↑をGETするなら
GET /cgi/receive.php HTTP/1.1
Host: www.b-server.com

ソケットを使ってデータ渡しは余計に難しいと思うのですが
私だけでしょうか?^^;

> www.a-server.com/cgi/mail_ad.php
> が、メールアドレスを取得し、(現在は、まだPerlでしか取得できていないのです
が、
> PHPで取得できるようにがんばります。Perl --> PHPってよけい複雑そうです
し。)
>
> www.b-server.com/cgi/receive.php
> で、そのデータを受け取るとして、
>
> それぞれ、どのように書けば良いのでしょうか?
> なにとぞよろしくお願い申し上げます。
> tk

ここ、よくわからないのでなんとも言えませんが
www.a-server.com/cgi/mail_ad.phpがアドレスを取れているのなら

header("Location:  www.b-server.com/cgi/receive.php?".$mail_addr);

でもわたせると思うのですが。勘違いでしたらすみません。



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