• ベストアンサー

JavaからPHPへの値の受け渡し

失礼致します。 最近梅雨でじめじめしており嫌ですね。 よろしくお願いいたします。m(__)m お尋ねしたいことは上記のとおりです。 今Javaを使ってDB管理システムを作成しています。 が、もうすでに出来上がったPHPのDBシステムも存在するのです。違った機能を持たすため両方必要なのですが、両者間で値の共有をしたいです。作成中のシステムから現行のシステムへデータを送るにはどのようにすればいいのでしょうか? 以上、簡単ではございますがよろしくお願いします。

  • Java
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
noname#49664
noname#49664
回答No.1

最近、PHPの案件ばかりが続き、すっかりJavaから疎遠になってる者です。何度かありました。「データを共有」というのとちょっと違いますが、要するにPHP側からサーブレットにデータを送信したり、その逆をしたりして両者で必要なデータを受け渡せればいいわけですね。 一番手っ取り早いのは、URLにクエリー文字で送信したい情報をつけてしまう方法でしょう。 http://xxx.php?a=aaa&b=bbb こんな感じで送信先のPHPのURLを用意しリダイレクトしてしまえばいいわけです。日本語の場合はURLエンコードしておきます。 ただし、URL丸見えで渡されるのは気持ち悪いという人は多いと思いますので、URLConnectionを使ってPOST送信するほうがいいかもしれませんね。 try { URL url = new URL( PHPのURLを指定 ); URLConnection uc = url.openConnection(); uc.setDoOutput(true); //POST可能に // 以下、ヘッダを設定 uc.setRequestProperty("User-Agent", "Sample-Agent"); uc.setRequestProperty("Accept-Language", "ja"); // 以下、パラメータを送信 OutputStream os = uc.getOutputStream(); String data = "a=aaa&b=bbb"; // 送信するパラメータ PrintStream ps = new PrintStream(os); ps.print(data); ps.close(); //POSTした結果を取得 InputStream is = uc.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); while ((s = br.readLine()) != null) { // 適当に処理 } br.close(); } catch以下略 こんな感じで指定のPHPにPOSTでデータを送信できます。こうやってデータをやり取りしながら処理していくわけです。 PHPで作成している場合、データベースアクセスに必要な情報はまず間違いなくGET/POSTで受けとっているはずですから、これでうまくいかないことはあまりないと思います。また、PHPから結果を受け取る場合は、どういう方式で送られているかわからないとなんともいえません。(HTMLで出力しているか、URLに付加しているか、ヘッダー情報に含めているかなどいろいろ考えられますので)

javatea_1985
質問者

お礼

ご回答ありがとうございました。 そうですサーブレットからPHPに値を受け渡したいのです。 教えていただいた方法で受け渡しを試してみます。 ありがとうございます。m(__)m

その他の回答 (1)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.2

>両者間で値の共有をしたいです 共有したいデータの大きさや目的は何でしょうか? パラメータやCookieを使ったり、データ共有用のシステムやデータベースなどを作ったりすることで解決出来ると思いますが、データ共有の目的やデータの大きさなどによって最適解が変わってくると思います。

javatea_1985
質問者

お礼

パラメータを使う方法で解決しようと思います。 ありがとうございました。

関連するQ&A

  • Flash→PHP→MySQLへの値の受け渡しについて

    現在、Flashのフォームで受け取った値をPHP経由でMySQLへデータを格納するシステムを作成しています。 現在、詰まっている点とは、Flashで送信したデータがMySQLまで到達できないというところです。 少し分析してみたところ、PHPを単独でブラウザにて開くと "フィールドが取得できません。" と出力されていました。 これは、 ----- <?php $setsuzoku = mysql_connect("localhost", "*****", "*****"); if (! $setsuzoku) { die ("データベースに接続できません"); } if (! mysql_select_db ("test")) { die ("データベースが取得できません"); } mysql_query("INSERT INTO rank VALUES('".$HTTP_GET_VARS['nickname']."', ".$HTTP_GET_VARS['score']); if (!$fd) { die ("フィールドが取得できません。"); } // 処理が終わったことを知らせる print('OK'); ----- というプログラムで動かしていまして、『mysql_select_db ("test")』まで動作しているのではないかと思われます。 ですので、もしかしたらFlash以前にPHPとSQLの連携がうまくいっていないような気がするのですが…どうでしょうか? Flashからの情報を送信するシステムである以上、PHPで表示すると必ずこのような形になるのでしょうか? ちなみにMySQLには、必要なDatabaseとテーブルを作成しました。 問題の切り分けは一応してみましたが、間違っているかもしれません。何かご教授頂ければ幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • Javascript→PHPに値の渡し方について

    Javascriptで処理した値をPHPでも参照したいのですがどうすればよろしいですか? やりたいこと  Javascriptである値を処理して、その処理した値を  DB(MySQL)の登録する。(PHPで作成) 簡単な文章で申し訳ありませんがよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPで値を保持する方法

    PHPで、リクエストをまたいで値を保持する方法を教えてください。というかサーバー起動時に1回処理をし、その情報を使い続ける方法といった方が適切かもしれません。「リクエストをまたいで」といってしまうと、反射的に「セッションに保存」といいたくなると思いますが、そういう話ではありません。 画面上に検索条件でSELECTリストを表示します。この情報を今は、画面表示のたびに毎回DBにアクセスしデータを取得しています。 しかしサーバーが起動している間程度の期間ではめったに変更することはない値なので、リクエストのたびにDBにとりに行くのがあまりにも無駄なので、これをやめたいと思っています。かといって年に何回かは変更があってもおかしくない値なので、そのたびにプログラムを変更するのではなく、あくまでもDBのデータの変更だけで済ませたいと思っています。 つまり、リクエストのたびにDBにとりに行くのではなく、PHPのプログラムファイルにハードコーディングするのでもなく、Webサーバーが起動したときに1回だけDBから読み込み、変数に保持しておき何度も使いまわしたいと思っています。 で、ためしにclassのstatic変数に値を設定してみたのですが、リクエストのたびに値が初期化されてしまいました。$GLOBALSに値を設定してもリクエストのたびに値が初期化されてしまいました。 Javaなどの言語では、当たり前に行う処理ですがPHPで実現する方法が分かりません。 PHPで、リクエストをまたいで値を保持する方法を教えてください。 もしかするとPHPでは、値を保持することはできないのでしょうか? もしそうだとすると、PHPでは同じ値をDBから何度も取得するケースではどのように対処しているのでしょうか?(DBのキャッシュ機能頼み?そもそもPHPは小規模しか扱わないから気にしない?) この点について教えてください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPでjavaの呼び出し

    PHPのプログラム上でjavaを呼び出したいと思っています。 system()を用いて以下のようにしましたが javaで出力されるものが表示されません。 $system = "java HelloWorld"; $a = system($system); echo $a; javaはEclipseで作成しています。 類似した質問もありましたが少々理解が難しかったため 質問させていただきました。 初歩的な質問かと思いますが ご回答宜しくお願いします。

    • 締切済み
    • PHP
  • php→Ajax→php値の受け渡し

    こんばんは。 今phpで画像を紹介するホームページを作っています。 現在、簡易コメント欄を作成していて、 イメージではyoutubeのコメント欄のような実装をしようと 今試みているところです。 読み出したphpにてDBからセレクトしたもので 二次元の連想配列を作成し、smartyでテンプレ側にてforeachで そのまま展開してコメント、名前、投稿日時を出しています。 そこで入力フォーム表示のon/offをJavaScriptで制御していて、 もしコメントを入れたらそのままコメントを追記して 即反映させたいんですが、かなり難しくて全く出来ておりません。 現時点では読み込んでるPHP側から javascriptで別のデータベースにインサート、 セレクトするphpを読み出す→ またJavaScriptに取れた値を渡す→元のPHPに値を返して表示 とするのかなと思っていますが… 元のPHPで読み出ししたコメントと どの様にしたら切り分け出来るのか、 またこういうことは実装できるのか想像もつかないのですが… これはどの様にしていけばいいのでしょうか? 少し細かく説明し難い所もあり、文章がザックリ過ぎる、 意味がわかり難いと思いますが、 教示いただけたらありがたいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPとJavaでSHA256の結果を同じにしたい

    PHPから JavaServletにアクセスするシステムを作っています。 その際にパラメーターの改ざん対策にハッシュを渡すようにしたいのですが PHPでSHA-256でハッシュ化した値と JavaでSHA-256でハッシュかした値が異なってしまいます。 PHPだとハッシュ化する際の秘密鍵を指定する項目がありますが Javaでは見つかりませんでしたので この項目が違うために結果が違うのだと予想していますが Javaが内部的に使っている秘密鍵はどこか取得できるのでしょうか? やりたいこととしてはPHPとJavaで同じハッシュが取得できるようにしたいのですが 良い案とかやり方あったら教えてください。 ◆php string hash_hmac ( string $algo , string $data , string $key [, bool $raw_output = false ] ) ◆Java DigestUtils.sha256Hex(string data) わかる方いましたら教えてください。よろしくお願いいたします。

    • ベストアンサー
    • Java
  • JavaとPHPの違いを教えてください。

    このたび、Web開発系の営業をすることになりました。 最近はPHP技術者の技術料が下がっていまして、うちはJava中心なので価格的に折り合わないことがあるようです。 Webシステム開発でPHPとJAVAのどちらを使用するかという話になった場合、営業的な側面でお客様にどう説明したらいいのか悩みます。 JavaとPHPの違いと両方の優位性を教えてください。

  • PHPにコネクションプールってあるんですか?

    JAVAを使ったwebシステムではDBのコネクションをプールする方法が一般的に用いられますが、PHPでも同じような方法はあるのでしょうか?

    • ベストアンサー
    • PHP
  • PHP入門本

    お世話になります。 社内備品管理システムなどをPHPを使用して 作成することになりました。 PHPは初心者です。 勉強始めにあたりお勧めの本があれば回答ください。 目標:DB連携のアプリケーション作成 経験:VB2年 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 現在php(php5)とDB(MySQL)の勉強として情報管理システム

    現在php(php5)とDB(MySQL)の勉強として情報管理システムを作成しているのですが, 認証機能でつまづいています. 私が認証機能を使いたいのは以下の場面です. ? 利用者がログインする場合  ただし,利用者側と管理者側を区別できるようにする ? パスワードを変更したい時,パスワード変更画面へログインする場合 ?は,PearのAuth_HTTPモジュールを利用して,DBに登録してあるidとパスワードを組み合わせてBasic認証をするところまでできました.(管理者側のみ) これで出来たと思ったのですが・・・ Basic認証はwebブラウザを閉じるまでログイン状態が続いてしまうので,他に認証を使いたい場面で認証の意味がなくなってしまいました; (すでにログイン状態なので簡単に入れてしまうんです;) 1度ログインした状態で,さらに認証機能をつけるにはどうすればよいでしょうか? 現状をうまく説明できていなかったらすいません. php,DBともに初心者なので単純な質問かもしれません; よろしくお願いします.

    • ベストアンサー
    • PHP

専門家に質問してみよう