- 締切済み
PHPのソケット通信について
PHPにおいてのソケット通信についての質問です。マイページ機能をもたせたシステムの構築をしています。 マイページで認証を行い、そのユーザのユーザIDと乱数を一緒にデータベースに認証成功時に格納しています。 そして、マイページから別サーバへリンクしたときにPOSTしてこのユーザIDと乱数を送ります。 ユーザがマイページを経由して別サーバにアクセスしてきているかどうかということを確認するために、別サーバからこのマイページを運用するサーバに対してユーザIDと乱数をソケット通信によって送り、データベースに登録されているかどうかを別サーバ上のページを遷移するたびに確認したいのです。 データベースに登録されているユーザなら、マイぺージを経由してアクセスしてきているということでページを表示させて、登録されていないなら、マイページのログインページを表示させるようにしたいです。 Socket通信について調べてみたもののわかりにくいものが多くて、理解しかねますので、よろしくお願いします。 サンプルのコードをのせていただくと、なお嬉しいです。 開発環境は OS windows vista 言語 PHP5 サーバ Apache DBMS MYSQL です。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Gaffgarion
- ベストアンサー率45% (45/99)
> 今、システム内でのdbへのアクセスへは > $db=mysql_connect("localhost","root","パスワード") > としております。 > これは、別サーバからもアクセス可能なのでしょうか? > それはphpからのアクセス方法ですね。 アクセス可能かどうかはデータベース側の設定によります。 mysqlならば以下が参考になるでしょう。 http://www.dbonline.jp/mysql/user/index6.html http://d.hatena.ne.jp/uriyuri/20081024/1224798772
- Gaffgarion
- ベストアンサー率45% (45/99)
「サーバ間でのセッション共有」がしたいんですね(セッションは使ってないようですが)。 別サーバからデータベースへは直接アクセスできないんですか? 質問のソケット通信については、以下でまとめられていました。 http://www.programming-magic.com/20080226023511/ 自分がするなら、fsocketはhttpヘッダやPOSTデータを扱うのが面倒そうなので、 http_requestやhttp_clientといったクラスを使うと思います。 質問からは大きく外れますがMQ使ってるのならMQ使うのも良いですね。
補足
迅速な解答ありがとうございます。 その通りです。セッションの共有がしたいのです。言葉足らずでした。 今、システム内でのdbへのアクセスへは $db=mysql_connect("localhost","root","パスワード") としております。 これは、別サーバからもアクセス可能なのでしょうか? 知識不足ですいません。
補足
なるほど。データベースによって権限を設定してあげたらいいのですね。 この場合、select文による検索でそのタプルがあるかどうかがわかればいいので アクセスしてくるサーバ?でいいのかな? に対してselect文の権限をつけて、後の権限はつけないって感じでしょうか??