2011-11-11 17 views
0

私は誰かのColdFusion Webアプリケーションを変更しています。私は様々なタスクを行うPHP処理ページを追加しています。今まで私はPHPページを呼び出し、URL経由で変数を渡してWebアプリケーションとやりとりしています。JSONをPHP処理からpublic coldfusionページに送信する

現在の使用状況:

public.cfm calls processing.php?id=69 

そして、それはあまりにも、そして最終的に持っているものでしょう処理:

header("Location: $publichome?id=$id&importantstuff=$stuff"); 
exit(); 

をそして、それはあまりにも有している場合、Webアプリケーションをピックアップします。しかし、私のスクリプトの1つでは、単純な変数の代わりにJSONオブジェクトを返す必要があります。私はこれをどうやってやるのか分からない。私はcURLを使ってポストをやってみましたが、それは引き継がれたColdFusionページを公開する必要があり、PHPスクリプトにカールが戻ってくる必要があるため動作しませんでした(私はカール結果の本文をエコーすることができますが、私がしたくないスクリプトドメイン)。上記のヘッダーの場所を実行し、オブジェクトを送信する方法はありますか?それは私が必要とするものです - 停止するPHPスクリプトと、オブジェクトを扱うColdFusionページです。

PHPでJSONサービスを作成しなければならないのですか?ColdFusionページが結果を取得すると呼びますか?私はまた、私が望むようにcoldfusionのページを変更することができます。

+0

私はDBにJSONを格納することを考えましたが、何千もの項目が含まれていて恐ろしいアイデアのようです。 – bMon

答えて

0

単純な文字列を渡すのと同じように、json文字列をURL変数として渡すことができるはずです。あなたはまだそれをしていない場合は、PHPでオブジェクトをjsonシリアル化のいくつかの手段が必要になります。おそらくjsonライブラリが利用可能です。

CFから

、PHPコードに< cfhttpの>要求、cfhttpタグ内の引数としてPHPに必要なものは何でもパラメータ渡しを行います

編集 は、より多くの情報に基づいて、私は今より良い提案を持っています。 PHPからは、JSONをレスポンス本体として単に出力します。 CFHTTP呼び出しがCFに戻ると、cfhttp.fileContent変数を介してJSONにアクセスできます。この変数を使用してDeserializeJSONを実行すると、実際のオブジェクトを取得できます。ここでは、いくつかのサンプルCFコード:

<cfhttp url="processing.php?id=69" method="get"></cfhttp> 
<cfset importantStuff=DeserializeJSON(cfhttp.fileContent)> 
+0

私のJSONオブジェクトには何千ものアイテムがあるかもしれません。いくつかのコードを提供できますか? – bMon

+0

ああ、その場合、いいえ。 cfコードを変更するアクセス権がありますか? jsonはポストデータ(フォームスコープ)として送信する必要があります。これはブラウザ(json値を持つ隠しフィールドを持つフォームを含むプロセスの新しいページを導入する)か、PHPから行うことができます。 PHPからの場合は、あなたの場所のリダイレクトの前にjsonを含むcfへの呼び出しを含めることができます。ただし、特定のユーザーのセッションに関連付けられたjsonを維持する必要性に応じて、これは難しい場合があります。それが事実なら、私に知らせて、私は詳しく説明することができます。 –

+0

はい私はcoldfusionのページを好きなように変更できます。すべての私のセッション管理はCF側で行われます。基本的に私はCFで始まり、適切な処理のためにurl内のいくつかのユーザデータでPHP処理ページを呼び出します。その後、PHPはJSONを生成し、私はそのデータでCFに直面している公衆に戻らなければなりません。詳しく教えてください。 – bMon

関連する問題