質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

2785閲覧

[WordPress]MW-WP-FORMでのPOST値を他のページで受け取る方法

ryorgyo

総合スコア2

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2022/11/02 01:22

編集2022/11/02 03:52

前提

こんにちは。wordpressのプラグインである「mw-wp-form」を使って、①フォームの作成と②確認画面の作成をしたいです。しかし、思うように値を取り出せないのでご質問させていただきます。

wordpressのmw-wp-formを利用して別ページでpost値の取得は可能でしょうか?フックの利用や変数への格納など、自分で試せる手法を試し切ったため、「mw-wp-formを利用したらpost値がリセットされる」などの機能が備わっているかどうかの質問です。

可能であれば、私のコードは①入力画面内のconfirm.phoまでのパスの指定方法②confirm.php内での出力方法で言ったらどちらがおかしいでしょうか?chrome devではformからの情報は問題なくconfirm.phpに受け渡されていました。しかし、post値で受け取ったconfirm.phpとget値で受け取ったconfirm.phpの二つが表示されており、get値で受け取ったconfirm.phpが表示されているため、pathが間違っているかもしれません。(説明上手くできませんでした)

実現したいこと

-ページA(入力画面)にフォームを埋め込む
-ページB(確認画面)でページAに入力された値を受け取る

ページA,ページBはデザインが異なるページなので、A、Bと名前を当てました。

該当のソースコード

入力画面
mw-wp-formで作成

html

1<div id="mw_wp_form_mw-wp-form-31" class="mw_wp_form mw_wp_form_input "> 2 <form method="post" action="" enctype="multipart/form-data"><p> <main class='main'></p> 3<h2 class='main-title'>入力内容の確認</h2> 4<div class='main-textbox'> 5<div class='main-textbox_content'> 6<p>お名前</p> 7<p> 8<input type="text" name="namae" size="60" value="" /> 9 10 </p></div> 11<div class='main-textbox_content'> 12<p>メールアドレス</p> 13<p> 14<input type="text" name="mail" size="60" value="" /> 15 16 </p></div> 17 18 19<div class='checkbox'> 20<p> 21<input type="submit" name="submitConfirm" value="確認画面へ" /> 22</div> 23</p></div> 24<p> </main></p> 25<input type="hidden" id="mw_wp_form_token" name="mw_wp_form_token" value="c49553de2e" /><input type="hidden" name="_wp_http_referer" value="/wordpress/?page_id=41&amp;preview=true" /><input type="hidden" name="mw-wp-form-form-id" value="31" /><input type="hidden" name="mw-wp-form-form-verify-token" value="80d8eb03cca2cec987c5743c6dbbe72915bea831" /></form> 26 <!-- end .mw_wp_form --></div>

確認画面

html

1<!-- 2Template Name: confirm 3--> 4 5<?php 6get_header(); 7?> 8 9 10 <main class='main'> 11 <h2 class='main-title'>入力内容の確認</h2> 12 <div class='main-textbox'> 13 <div class='main-textbox_content'> 14 <p>お名前</p> 15 <?php 16 $mail = $_POST['mail']; 17 ecbo $_POST; 18 ?> 19 <?php 20 echo $arrForm['mail']; 21 ?> 22 </div> 23 <div class='main-textbox_content'> 24 <p>メールアドレス</p> 25 </div> 26 27 28 <div class='checkbox'> 29 <div class='checkbox-content'> 30 <input id='agree' type="checkbox" class='checkbox-content_btn' name='agree'> 31 <label for='agree' class='checkbox-content_txt'> 32 <span class='checkmark'>プライバシーポリシーに同意する。</span> 33 </label> 34 </div> 35 </div> 36 <a href="<?php echo get_template_directory_uri(); ?>/page-thanks.php" class='comfirm-button'> 37 <button type="button"> 38 <img src="<?php echo get_template_directory_uri(); ?>/assets/img/common/sp/submit_btn.png" alt="" class='comfirm-button_img'> 39 </button> 40 </a> 41 </div> 42 </main> 43 44 45 46<?php 47get_footer(); 48?> 49

試したこと

formタグ内のaction属性が空白ということに気づきfunctions.phpに

php

1function my_do_shortcode_tag( $output, $tag, $attr ) { 2 if ( 'mwform_formkey' == $tag 3 // && isset( $attr["31"] ) && '1234' == $attr["31"] 4 ) { 5 $permalink = get_permalink(19); 6 // $permalink = get_template_directory_uri()."/function.php"; 7 $post = '"post"'; 8 $enctype = '"multipart/form-data"'; 9 $siq_id = '"autopick_xxxx"'; 10 $output = str_replace( 11 '<form method="post" action="" enctype="multipart/form-data">', 12 "<form method={$post} action={$permalink} enctype={$enctype} siq_id={$siq_id}>", 13 $output 14 ); 15 } 16 return $output; 17} 18add_filter( 'do_shortcode_tag', 'my_do_shortcode_tag' ,10, 3 );

を記入しました。action属性は追加でき、「mw-wp-form」の設定画面下の確認画面URLを設定せずともconfirmに飛ぶことはできましたが、POST値は取り出せなかったため、現在はコメントアウトしております。(なので、入力画面のコードにはaction属性追加されておりません)

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

wordpressのmw-wp-formを利用して別ページでpost値の取得は可能でしょうか?フックの利用や変数への格納など、自分で試せる手法を試し切ったため、「mw-wp-formを利用したらpost値がリセットされる」などの機能が備わっているかどうかの質問です。

formタグ内のaction属性が空白ということに気づきfunctions.phpに

通常の利用では、functions.php 等で遷移先ページを記載する必要はないと思います。

MW WP FORM のフォーム編集画面の下の方に「URL設定」がありますが、各 URL はどのような値を入力されているでしょうか。

固定ページで、

入力画面 ( /contact ) page-contact.php テンプレートファイル
確認画面 ( /confirm ) page-confirm.php テンプレートファイル
サンクスページ ( /thanks ) page-thanks.php テンプレートファイル

を作成して、各固定ページに 該当するフォームのMW WP FORM のショートコード [mwform_formkey key="xxxxx"] を入れて作成する。
各画面の固定ページの URL を「URL設定」に入力すれば、URLに応じて「入力」、「確認」、「サンクスページ}と分けて処理されると思います。

イメージ説明

投稿2022/11/02 06:25

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryorgyo

2022/11/02 06:42

ご回答ありがとうございます。色々調べ、action属性を指定しないほうがセキュリティ的に優れていると見たため、現在は消しております。 また、mw-wp-formのURL設定にはCHERRYさんが送ってくださった画面のように、それぞれ/form、/confirm/、/thanks/と記述しております。問題なく画面の遷移は行える状態です。 form、confirm、thanksの固定ページそれぞれにショートコードを挿入すれば、確認画面や完了画面が作成できると思うのですが、私がやりたいのは「すでに作成済みの確認画面」に対してフォームで入力した値を出力する、というものです。なので入力画面と確認画面のデザインは全く異なるもので、同じ値を出力させる方法が知りたいです。 説明が下手で申し訳ございません。 postで送っているため、「すでに作成済みの確認画面」に対して<?php echo $_POST; ?>としたら出力されると思っているのですが、上手くいきませんでした。 CHERRYさんはmw-wp-formを利用して、フォーム画面とは別のページにpost値を渡す方法をご存知でしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問