
同一ページで入力→確認→送信と行いたいのですが、Wordpressのセキュリティ対策上Javascriptとphpの間ではデータを送信することができません。この時点でA jaxを使えないことが分かっているのですが、そのほかの方法で実装する方法を調べても良い方法が見つかりませんでした。
何か良い方法はありますでしょうか?
※現在のコード
https://wandbox.org/permlink/JGyiJSeIbExI3IRA
No.3ベストアンサー
- 回答日時:
WordPressのセキュリティ対策上、JavascriptとPHPの間ではデータを送信することができません。
そのため、AJAXを使用できません。AJAXを使用できない場合、JavascriptとPHPの間のデータのやり取りを行うには、次の方法があります。
* フォームを使用します。
* XMLHttpRequestを使用します。
* FormDataを使用します。
フォームを使用する場合は、フォームのaction属性にPHPファイルのURLを指定します。また、method属性にPOSTを指定します。
XMLHttpRequestを使用する場合は、openメソッドでリクエストのメソッドをPOSTに設定し、sendメソッドでデータを送信します。
FormDataを使用する場合は、FormDataオブジェクトを作成してデータを追加し、submitメソッドでデータを送信します。
あなたのコードを見ると、フォームを使用しているようです。しかし、フォームのaction属性にPHPファイルのURLが指定されていません。そのため、フォームからデータが送信されません。
フォームのaction属性にPHPファイルのURLを指定することで、フォームからデータが送信されるようになります。
Q.フォームを使用する場合は、フォームのaction属性にPHPファイルのURLを指定します。また、method属性にPOSTを指定します。
フォームのaction属性にPHPファイルのURLを指定することで、フォームからデータが送信されるようになります。
A.アドバイスありがとうございます、以前別の方に教えて頂いた際に「フロントを通してはダメです。STDINという標準入力をWordPressが破壊してしまう為、動作しません。」 と教わったので正しい情報か分からないのですが、調べたところ admin-ajax.php をリクエスト先に設定すれば可能なようです。Wordpressのサポートフォーラムにもセキュリティ対策上データの通信は行えないとの回答を目にしていた為完全にそうだとばかり思いこんでおりました。
※参考サイト
https://agohack.com/ajax-on-wordpress/
フォームのaction属性にファイルのurlを指定して自分自身に送信して画面遷移する方法でしょうか、やはり A jax か XML は使う事になりそうですね…
詳しい設計が分からなかったので勉強になります。作成してみて分からない際は質問いたしますのでアドバイス頂けると助かります、宜しくお願い致します。
No.4
- 回答日時:
こんばんは
>Wordpressのセキュリティ対策上Javascriptとphpの
>間ではデータを送信することができません
特殊な制約下で、組み立てなければならないってことでしょうか?
ご提示のファイルの構成を見ただけで、内容は見ていませんけれど・・
PHP側でそれぞれの処理を行う仕組みのように見えますけれど、Ajaxを何の目的で使う必要があるのでしょうか?
普通にFormから送信して、PHPでレスポンスを返す仕組みなら何の問題もないのでは?
ページ遷移して見えるのが嫌なら、iframeを使うなどの方法もあると思います。
Q.特殊な制約下で、組み立てなければならないってことでしょうか?
PHP側でそれぞれの処理を行う仕組みのように見えますけれど、Ajaxを何の目的で使う必要があるのでしょうか?
普通にFormから送信して、PHPでレスポンスを返す仕組みなら何の問題もないのでは?
ページ遷移して見えるのが嫌なら、iframeを使うなどの方法もあると思います。
A.回答ありがとうございます。制約などは特にないのですが、Ajaxはヤフー知恵袋の回答機能を見て一部のみ切り替わっておりましたので、同じように作成するためにはAjaxが必須ではないかと思っておりました。
入力→確認→送信をそれぞれ還移させるものですが、ヤフー知恵袋のような質問機能は作成済みです。そちらが※現在のコードになります。
iframeというのは埋め込み型の機能だと思うのですが、入力→確認→送信を還移せずに実行するコードは作成できるのでしょうか?
No.2
- 回答日時:
>>STDINを乗っ取り独自APIをWordpressにかぶせる必要があるようで、使うのはかなり困難だと思われます。
PHPでなく、他の言語で作っても、STDINなんて普通は使えないと思うよ。
なんか勘違いしている気がする。
回答ありがとうございます、STDINという標準入力をWordPressが
破壊してしまう為、動作しないと教えて頂いたのと、WordpressのサポートフォーラムでA jaxなどのデータ通信は原則禁止されているという記述がありましたので、使えないものだとばかり思っておりました。
下記のサイトを見ると、admin-ajax.phpを使えば問題なく動作するようですね…
※参考サイト
https://agohack.com/ajax-on-wordpress/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GASでチェックボックスを一括of...
-
タグを教えてください。
-
React と Electron でデスクト...
-
Adobe acrobat proでフォームを...
-
イラストレーター、縦中横のシ...
-
スマホ上で、左右スワイプで次...
-
階層別の組織図の自動作成について
-
jsonテキストデータの並び替え...
-
ラジオボタンを複数選択したと...
-
jsで質問です。 formをsubmitし...
-
2025年相性がいい人のサイトの...
-
CookieをWebStoeageに変える
-
Outlookのアカウントがあるとメ...
-
jqueryのselect2で検索欄の文字...
-
<tr>指定した表の行要素をボ...
-
食材の期限を管理するためにGAS...
-
ビデオのJSについて
-
鍵盤アプリで、スマホの画面に...
-
<div>のタッチ状態を維持したま...
-
jQueryでシンセサイザーを作っ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メニューを外部から呼び出したい
-
会員向けページ アクセス制限
-
Webサイト設計 データの記録
-
HTML5で下記は実現可能でしょう...
-
特定のURLからのアクセスがあっ...
-
教えてください
-
Perl LINE(チャット) 仕組み
-
FlashLiteで通信ゲームを作れま...
-
i-modeページで使用可能ですか?
-
CGIとJavascriptの違いについて
-
数学のjavascript
-
JSONの中でDate.UTCは使えない?
-
最強のオセロ、リバーシ!
-
仮アップ?
-
PHPができればJavaScriptは...
-
Session切れ前にWarningメッセージ
-
ajaxを使用した場合にPHP出力文...
-
javascriptで大きなデータを扱う
-
プログラムの時間を計りたい!!
-
webの文字データの取得
おすすめ情報