0

javascript 関数に変数を送信して PHP スクリプトから javascript 関数を実行しようとすると、応答が返されます。PHP スクリプトが javascript 関数からの応答のみをエコーアウトするようにしたいので、クライアントが私の php ファイルのソース コードを表示すると、javascript ソース コードではなく、javascript 関数からの応答のみが表示されます。

例えば、

validate() という JavaScript 関数と、check.php という PHP ファイルがあります。クライアントはこのように GET メソッドを使用して関数を呼び出します。

www.myserver.com/check.php?value=test

次に、check.php で変数 $value を JavaScript 関数の validate() に送信して、次の処理を実行します。

応答=検証($値)

次に、JavaScript が値の応答を PHP スクリプトに返し、それを変数 $response に格納すると、$response がエコーされます。そのため、ソースを表示すると、変数 answer 内のコンテンツのみが表示されます。

これを行う簡単な方法が見つかりません:S。AJAX を使用する場合、HTML 内で div を使用する必要がありますが、ソース コード内に $response の内容のみが表示されることが重要ですか?

誰かが私が使用すべきPHP関数を教えてもらえますか? ありがとうございました!

4

2 に答える 2

2

PHP は通常サーバー側で実行され、Javascript は通常クライアント側 (ブラウザー内) で実行されます。

通常のモデルでは、クライアントがサーバーにリクエストを送信し、サーバーが応答します。この場合、PHP コードが Javascript 関数を直接「呼び出す」ことはできません。

それで、あなたの問題の解決策は何ですか?

優先順:

  1. validate()最初の最良のオプションは、 PHP 内からJavaScript 関数を呼び出す必要がないように再構築することです。たとえば、Javascript ロジックを PHP に移植します。

  2. 移植できない場合は、サーバー側で Javascript を実行してください。Node.js は、Linux および Windows のサーバー側で実行されます。Windows/IIS を使用している場合、より簡単なオプションは、ASP クラシックを介して Javascript を提供することです。これは、現在の Windows サーバーで引き続き利用できます。PHP プログラムは、おそらく curl を介して、単純にローカル Javascript リソースを要求できます。サーバーはロジックを呼び出し、結果を返します。一般に、Javascript は同じサーバー上で実行する必要はありません。

  3. 最後に、それができない場合は、ブラウザvalidate()にサーバーの代わりに実行させることができます。PHP は、検証関数を JavaScript スクリプト ブロックでブラウザに送信できます。PHP は、検証が必要なもの (データ パケットなど) を発行することもできます。ブラウザはvalidate()そのオブジェクトに対して、AJAX を介してメッセージを PHP に送信し、結果を報告できます。ただし、ここにはセキュリティ上の問題があります。クライアントは制御できないことに注意してください。そのため、誰かがクライアント側の検証ロジックを破壊し、クライアントが誤った結果を PHP サーバーに報告する可能性があります。あなたはこれに頼ることはできません。

したがって、何らかのデータ整合性チェックをトランザクションに埋め込む必要があります。クライアント側の JavaScript が変更されていないことを保証できる方法です。これは難しいでしょう。

于 2012-07-17T01:59:18.423 に答える
0

あなたはどんな機能も訴えるべきではありません:P

ただし、検証を行うには恐ろしい方法のように見えますが、次のことを行うことができます。

  • javascript を HTML ファイルに出力します。(見つけやすい場所に置いてください)
  • js 関数によって取得される URL 内のパラメーターを使用fopenして URL を開くために使用します。
  • PHP 関数で出力用の HTML ファイル (以前fopenに取得したもの) を解析し、必要な特定の出力を検索します。

実際には、PHP スクリプト自体で検証を行う必要があります。何かを変更したい場合は、はるかに安全で、はるかに簡単で、後で作業するのがはるかに簡単です。

于 2012-07-17T01:37:57.493 に答える