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

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

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

phpPgAdminは、PHPで作成された複数のPostgreSQLデータベースをブラウザから簡単に管理・操作できるツール。テーブルの作成や参照を始め、データのバックアップやリストアといった操作が可能になります。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

PHP

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

4回答

2781閲覧

問い合わせフォームの「送信ボタン」を押した時のみ、PostgreSQL にログインをして、入力データをDBに書き込む。(php)

ichigob

総合スコア27

phpPgAdmin

phpPgAdminは、PHPで作成された複数のPostgreSQLデータベースをブラウザから簡単に管理・操作できるツール。テーブルの作成や参照を始め、データのバックアップやリストアといった操作が可能になります。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

PHP

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2019/10/17 05:05

編集2019/10/17 05:59

現在は、問い合わせフォームを開くとPostgreSQL にログインをして、DBに「空」のデータが入ってしまいます。

###1、下記の送信ボタンを押す

<input type="submit" value="送信">

###2、押した時のみ下記のようにPostgreSQLに書き込みする。

<?php $db = pg_connect("host='localhost' dbname='hoge' user='hoge' password='hoge'"); if(!$db){ print "DBへの接続に失敗しました!\n"; exit; } ......

説明不足の部分があるかと思います。

ご質問いただければと思います。

どうぞよろしくお願いいたします。

##【追記】 m.ts10806様のご質問の返信データが入る処理もないので。

はじめは、この処理を別ページのサンクスページに入れていました。

この動作はきちんと動いています。

ですが、サンクスページのURLを叩くと空のデータが入ってしまいました。

そこで、問い合わせフォームの方にこの処理を移して、送信ボタンを押した時だけ動かそうと考えました。

ですので、下記のプログラムは動くので記載が不要かと考えてしまいました。

下記にブログラムを追加します。

<?php $db = pg_connect("host='localhost' dbname='hoge' user='hoge' password='hoge'"); if(!$db){ print "DBへの接続に失敗しました!\n"; exit; } $created_at_date = $_POST["created_at_date"]; $form_kind = $_POST["form_kind"]; $seat_kind = $_POST["seat_kind"]; $facility_name = $_POST["facility_name"]; $seat = $_POST["seat"]; $application_type = $_POST["application_type"]; $member_type = $_POST["member_type"]; $organization = $_POST["organization"]; $address = $_POST["address"]; $number = $_POST["number"]; $email = $_POST["email"]; $person_name = $_POST["person_name"]; $purpose = $_POST["purpose"]; $summary = $_POST["summary"]; $turnover = $_POST["turnover"]; $capital = $_POST["capital"]; $employee = $_POST["employee"]; $establishment = $_POST["establishment"]; $url = $_POST["url"]; $company = $_POST["company"]; $first_name = $_POST["first_name"]; $last_name = $_POST["last_name"]; $first_name_kana = $_POST["first_name_kana"]; $last_name_kana = $_POST["last_name_kana"]; $tel_kind = $_POST["tel_kind"]; $day = $_POST["day"]; $time = $_POST["time"]; $policy = $_POST["policy"]; $inquiry = $_POST["inquiry"]; $visitors_time = $_POST["visitors_time"]; $sign = $_POST["sign"]; //カンファレンス用 $space = $_POST["space"]; $company_kind = $_POST["company_kind"]; $introduce = $_POST["introduce"]; $matching = $_POST["matching"]; $gutaiteki = $_POST["gutaiteki"]; $tokutyou = $_POST["tokutyou"]; $name1 = $_POST["name1"]; $age1 = $_POST["age1"]; $name2 = $_POST["name2"]; $age2 = $_POST["age2"]; $name3 = $_POST["name3"]; $age3 = $_POST["age3"]; $name4 = $_POST["name4"]; $age4 = $_POST["age4"]; $name5 = $_POST["name5"]; $age5 = $_POST["age5"]; $month = $_POST["month"]; $bikou = $_POST["bikou"]; $sex = $_POST["sex"]; $birthday = $_POST["birthday"]; $join_date = $_POST["join_date"]; //One Day Pass $facility_name = $_POST["facility_name"]; $date_of_use = $_POST["date_of_use"]; $full_name = $_POST["full_name"]; $full_name_kana = $_POST["full_name_kana"]; $persons = $_POST['persons']; $invite_company = $_POST['invite_company']; $seminar_date = $_POST['seminar_date']; $business = $_POST['business']; $businessConcept = $_POST['businessConcept']; $customer = $_POST['customer']; $origin = $_POST['origin']; $profit = $_POST['profit']; $jigyou = $_POST['jigyou']; $uriage = $_POST['uriage']; ####################################################### ## 数値の最大値を取得 ####################################################### $query = "SELECT max(f_id) FROM form_table" ; //$encoding = pg_set_client_encoding($db, "UTF-8"); $result = pg_query($db, $query); if($result === FALSE){echo "クエリ失敗\n";exit();} $get = pg_fetch_row($result); $max = $get[0]; if($max == ''){$max = 0;} $max++; $f_id = $max; ####################################################### ## データを追加する処理 ####################################################### $queryr = "INSERT INTO form_table ( f_id, created_at_date, updated_at_date, form_kind, seat_kind, facility_name, seat, application_type, member_type, organization, address, number, email, person_name, purpose, summary, turnover, capital, employee, establishment, url, company, first_name, last_name, first_name_kana, last_name_kana, tel_kind, day, time, policy, inquiry, space, company_kind, introduce, matching, gutaiteki, tokutyou, name1, age1, name2, age2, name3, age3, name4, age4, name5, age5, sex, birthday, join_date, date_of_use, full_name, full_name_kana, persons, invite_company, seminar_date, visitors_time, month, bikou ) VALUES ( '$f_id', '$created_at_date', '$updated_at_date', '$form_kind', '$seat_kind', '$facility_name', '$seat', '$application_type', '$member_type', '$organization', '$address', '$number', '$email', '$person_name', '$purpose', '$summary', '$turnover', '$capital', '$employee', '$establishment', '$url', '$company', '$first_name', '$last_name', '$first_name_kana', '$last_name_kana', '$tel_kind', '$day', '$time', '$policy', '$inquiry', '$space', '$company_kind', '$introduce', '$matching', '$gutaiteki', '$tokutyou', '$name1', '$age1', '$name2', '$age2', '$name3', '$age3', '$name4', '$age4', '$name5', '$age5', '$sex', '$birthday', '$join_date', '$date_of_use', '$full_name', '$full_name_kana', '$persons', '$invite_company', '$seminar_date', '$visitors_time', '$month', '$bikou' )"; $resultr = pg_query($db, $queryr); if (!$resultr) {echo "データベースへの登録でエラーが発生しました<BR>";exit;} //言語設定、内部エンコーディングを指定する mb_language("japanese"); mb_internal_encoding("UTF-8"); $ShiftJIS = $_POST; //文字コードを変えるので、専用の配列を作成してコピー mb_convert_variables('Shift_JIS', 'UTF-8', $ShiftJIS); //文字コードをUTF-8からShiftJISに変更 $to = "${email}"; if($form_kind == "席予約"){ $query = "SELECT sign FROM facility_info WHERE facility_name = '$facility_name' "; $encoding = pg_set_client_encoding($db, "UTF-8"); $result = pg_query($db, $query); if($result === FALSE){echo "クエリ失敗\n";exit();} $get = pg_fetch_assoc($result); @extract($get); $subject = "hoge". $facility_name ."のメール"; $body = "${organization}様 hoge". $facility_name ."への入居申込をいただきありがとうございます。 入力された下記情報にて、受付いたしました。 事務局より詳細確認のメールをお送りいたしますのでお待ちください。 お申込み日:${created_at_date} 施設名:${facility_name} 席種別:${seat_kind} お名前:${organization} 電話番号:${number} メールアドレス:${email} ${sign}"; include('mail-system.php'); }

【追記】 yoorwm様のご返信。 送信ボタンだけでは送信するデータが無いですよね

送信するデータは、テストしておりますので、きちんと動いておりますので割愛しておりました。

1、お問い合わせフォームのデータ

2、自動返信メールまでのデータ

など全ての一連の内容が必要でしょうか?

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

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

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

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

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

kei344

2019/10/17 05:11

phpPgAdmin は管理ツールで、DB自体の名前はPostgreSQLです。タイトル、質問タグ、本文の修正をお勧めします。
ichigob

2019/10/17 05:18

ありがとうございます。 修正いたします。
ichigob

2019/10/17 05:20

変更いたしました。
m.ts10806

2019/10/17 05:23

コードこれだけでは誰も再現確認できませんよ
m.ts10806

2019/10/17 05:23

データが入る処理もないので。
yoorwm

2019/10/17 05:42

送信ボタンだけでは送信するデータが無いですよね
ichigob

2019/10/17 05:42

追記を記載いたしました。 いかがでしょうか。
ichigob

2019/10/17 06:00

yoorwm 様  返信内容を上記に記載いたしました。
ichigob

2019/10/17 06:00

ご確認お願い申し上げます。
guest

回答4

0

実務っぽく見えるのですが、実務としてみると全部ダメです。。。
ちゃんと基礎学習してから応用に移ったほうが良いですよ。

ざっとですが、以下の点を見直してください。
・バリデーション
・SQL インジェクション対策
・(文字コード)

多分ですが、以下も
・XSS 対策
・自動返信メール全般

他にも気になる記述が多くあります。
サーバ公開してしまうと登録者に迷惑をかける状況なので、業者に任せたほうが良いかと。

投稿2019/10/17 09:33

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ボタンを押したかどうかの判定を入れてなので空データが入ってしまうと思われます。
まずフォーム部分を以下に変更

HTML

1<input type="submit" name="submit" value="送信">

受ける方で以下の判定を入れればよいかと。

PHP

1$submit=filter_input(INPUT_POST,'submit'); 2 3if ( isset($submit) ) { 4 // DB接続&insertなど 5}

まとめるとこんな感じでしょうか?

php

1<!-- 各種入力フォーム --> 2<form action="<?= $_SERVER['REQUEST_URI'] ?>" method="post"> 3<input type="text" name="created_at_date"> 4・・・・ 5・・・・ 6・・ 7<input type="submit" name="submit" value="送信"> 8</form> 9 10 11<?php 12 13$submit=filter_input(INPUT_POST,'submit'); 14 15if ( isset($submit) ) { 16 // ボタンが押されたら実行したい処理 17 //echo "ボタン押したよ"; 18 include('sendmail.php'); 19} 20?>

投稿2019/10/17 06:25

編集2019/10/18 07:52
mayoi_maimai

総合スコア1583

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

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

ichigob

2019/10/17 06:30

いつもありがとうございます。 テストしてみます! ^_^
ichigob

2019/10/17 06:35

sendmail.phpに データベースの接続に関する情報が入っている場合は下記の方法であっておりますでしょうか? <?php $submit=filter_input(INPUT_POST,'submit'); if ( isset($submit) ) { // DB接続&insertなど include('sendmail.php'); } ?>
ichigob

2019/10/17 06:47

もしくは、 こんな感じでいかがでしょうか <input type="submit" value="送信" $submit=filter_input(INPUT_POST,'submit'); if ( isset($submit) ) { include('sendmail.php'); } >
mayoi_maimai

2019/10/17 06:52

sendmail.phpの中身がご提示いただいた内容でしたら以下で大丈夫だと思いますよ。 <?php $submit=filter_input(INPUT_POST,'submit'); if ( isset($submit) ) { // DB接続&insertなど include('sendmail.php'); } ?>
ichigob

2019/10/17 07:08

こちらで試しましたが、「送信ボタン」が出てこないのですがどうしたらよろしいでしょうか。
mayoi_maimai

2019/10/17 07:53 編集

sendmail.phpに全ての記述があるのであればsendmail.php内で先程の判定を入れれば大丈夫かと。 中身がわからないので推測ですが、以下みたいな感じでしょうか。 <input type="submit" name="submit" value="送信"> <?php $submit=filter_input(INPUT_POST,'submit'); if ( isset($submit) ) { // DB接続&insertなど $db = pg_connect("host='localhost' dbname='hoge' user='hoge' password='hoge'"); if(!$db){ print "DBへの接続に失敗しました!\n"; exit; } // 以下省略 } <?
ichigob

2019/10/17 07:37

これでボタンは出ましたが、sendmail.phpの中身が読まれていない感じがします。 <input type="submit" value="送信" class="sub-btn sub-btn-last"> <?php $submit=filter_input(INPUT_POST,'submit'); if ( isset($submit) ) { // DB接続&insertなど include('sendmail.php'); } ?>
mayoi_maimai

2019/10/17 07:43

上記はボタンを押したときにsendmail.phpを読み込むので、フォーム部分がsendmail.php内にあれば当然表示はされません。 回答にまとめた部分を追記しました。 sendmail.php内が見えないので推測で書いています。 ボタンを押したときに処理したいこと、ボタンを押す前で表示させるものを分けて調整してみてください。
ichigob

2019/10/17 07:47

フォーム部分はsendmail.php内にはありません。 自動返信とDBに書き込むもののみです。
mayoi_maimai

2019/10/17 07:51 編集

じゃ、これかな?nameを取ってしまうと判定できませんよ。 <input type="submit" value="送信" class="sub-btn sub-btn-last"> ↓ <input type="submit" name="submit" value="送信" class="sub-btn sub-btn-last">
ichigob

2019/10/17 08:28

こちらで試しましたが、DBに保存されず、自動返信も帰ってきませんでした。 <input type="submit" name="submit" value="送信" class="sub-btn sub-btn-last"> <?php $submit=filter_input(INPUT_POST,'submit'); if ( isset($submit) ) { // DB接続&insertなど include('sendmail.php'); } ?>
mayoi_maimai

2019/10/17 08:48

該当ファイルを質問に追加できますか? さすがにこれだとわかりかねます(^^;;
ichigob

2019/10/17 09:03

該当ファイルとは、 sendmail.php の中身全部でしょうか?
mayoi_maimai

2019/10/17 09:51

先ほど試していただいたファイルとsendmail.phpgあると助かります。
ichigob

2019/10/18 07:37

sendmail.phpをお送りします。 <?php $db = pg_connect("host='localhost' dbname='hoge' user='hoge' password='hoge'"); if(!$db){ print "DBへの接続に失敗しました!\n"; exit; } $created_at_date = $_POST["created_at_date"]; $form_kind = $_POST["form_kind"]; $seat_kind = $_POST["seat_kind"]; $facility_name = $_POST["facility_name"]; $seat = $_POST["seat"]; $application_type = $_POST["application_type"]; $member_type = $_POST["member_type"]; $organization = $_POST["organization"]; $address = $_POST["address"]; $number = $_POST["number"]; $email = $_POST["email"]; $person_name = $_POST["person_name"]; $purpose = $_POST["purpose"]; $summary = $_POST["summary"]; $turnover = $_POST["turnover"]; $capital = $_POST["capital"]; $employee = $_POST["employee"]; $establishment = $_POST["establishment"]; $url = $_POST["url"]; $company = $_POST["company"]; $first_name = $_POST["first_name"]; $last_name = $_POST["last_name"]; $first_name_kana = $_POST["first_name_kana"]; $last_name_kana = $_POST["last_name_kana"]; $tel_kind = $_POST["tel_kind"]; $day = $_POST["day"]; $time = $_POST["time"]; $policy = $_POST["policy"]; $inquiry = $_POST["inquiry"]; $visitors_time = $_POST["visitors_time"]; $sign = $_POST["sign"]; ####################################################### ## データを追加する処理 ####################################################### $queryr = "INSERT INTO form_table ( f_id, created_at_date, updated_at_date, form_kind, seat_kind, facility_name, seat, application_type, member_type, organization, address, number, email, person_name, purpose, summary, turnover, capital, employee, establishment, url, company, first_name, last_name, first_name_kana, last_name_kana, tel_kind, day, time, policy, inquiry, space, company_kind, introduce, matching, gutaiteki, tokutyou, name1, age1, name2, age2, name3, age3, name4, age4, name5, age5, sex, birthday, join_date, date_of_use, full_name, full_name_kana, persons, invite_company, seminar_date, visitors_time, month, bikou ) VALUES ( '$f_id', '$created_at_date', '$updated_at_date', '$form_kind', '$seat_kind', '$facility_name', '$seat', '$application_type', '$member_type', '$organization', '$address', '$number', '$email', '$person_name', '$purpose', '$summary', '$turnover', '$capital', '$employee', '$establishment', '$url', '$company', '$first_name', '$last_name', '$first_name_kana', '$last_name_kana', '$tel_kind', '$day', '$time', '$policy', '$inquiry', '$space', '$company_kind', '$introduce', '$matching', '$gutaiteki', '$tokutyou', '$name1', '$age1', '$name2', '$age2', '$name3', '$age3', '$name4', '$age4', '$name5', '$age5', '$sex', '$birthday', '$join_date', '$date_of_use', '$full_name', '$full_name_kana', '$persons', '$invite_company', '$seminar_date', '$visitors_time', '$month', '$bikou' )"; $resultr = pg_query($db, $queryr); if (!$resultr) {echo "データベースへの登録でエラーが発生しました<BR>";exit;} $ShiftJIS = $_POST; //文字コードを変えるので、専用の配列を作成してコピー mb_convert_variables('Shift_JIS', 'UTF-8', $ShiftJIS); //文字コードをUTF-8からShiftJISに変更 // 英文のスペース追加 if (ctype_alpha(substr($facility_name , 0, 1))) { $facility_name = ' '.$facility_name; } //日本語メール送信 $to = "${email}"; if($form_kind == "席予約"){ $query = "SELECT sign FROM facility_info WHERE facility_name = '$facility_name' "; $encoding = pg_set_client_encoding($db, "UTF-8"); $result = pg_query($db, $query); if($result === FALSE){echo "クエリ失敗\n";exit();} $get = pg_fetch_assoc($result); @extract($get); // 英文のスペース追加 //"hoge". $facility_name ."テキスト" $subject = "hoge". $facility_name ."のメール"; $body = "${organization}様 hoge". $facility_name ."への申込をいただきありがとうございます。入力された下記情報にて、受付いたしました。 事務局より詳細確認のメールをお送りいたしますのでお待ちください。 お申込み日:${created_at_date} 施設名:${facility_name} 席種別:${seat_kind} お名前:${organization} 電話番号:${number} メールアドレス:${email} ${sign}"; // 英文のスペース追加の空白戻し $facility_name = ltrim($facility_name); // 英文のスペース追加の空白戻し if($facility_name == "hoge"){ $from = mb_encode_mimeheader(mb_convert_encoding("hoge","JIS","UTF-8"))."<info@hoge.co.jp>"; mb_send_mail($to,$subject,$body,"From:".$from,"info@hoge.co.jp"); } elseif($facility_name == "hote"){ $from = mb_encode_mimeheader(mb_convert_encoding("hoge","JIS","UTF-8"))."<info@hoge.co.jp>"; mb_send_mail($to,$subject,$body,"From:".$from,"info@hoge.co.jp"); } } ?>
mayoi_maimai

2019/10/18 07:56

入力フォーム部分が不明なので回答の最後にそれっぽく書いて修正したので適宜調整してみてください。 ボタンを押したかどうかの判定がうまくいっているかを確認し、それでも動かない場合はsendmail.phpが怪しいです。 sendmail.phpの頭にini_set('display_errors', true);を追加してエラー内容を確認してみてください。
ichigob

2019/10/18 09:08

ini_set('display_errors', true); を入れましたがエラーが出ませんでした。
ichigob

2019/10/18 09:08

フォームはこちらです。 <?php require_once( '../wp-blog-header.php'); ?> <!-- success --> <form method="POST" enctype="multipart/form-data" action="success-maafae-test.php" name="seat_reserve"> <!-- success --> <input type="text" name="created_at_date"> <input type="hidden" name="form_kind" value="予約"> <!-- フォーム --> <div class="container formpcpad"> <div class="row no-gutters"> <div class="col-12 col-md-3"> <div class="wrapper"> <div class="element titless">施設選択</div> <div class="element mustmust">必須</div> </div> </div><!-- col-12 col-md-4 --> <div class="col-12 col-md-9"> <select name="facility_name" id="favorite" class="select" required> <?php // お問い合わせフォーム・入居申込 施設見学予約 その他問い合わせ 加藤 $name_facility = "hoge"; include('common/form_option.php'); ?> </select> <div class="favorite-pad"> <br> <?php echo $favorite_content; ?> </div> </div><!-- col-12 col-md-8 --> </div><!-- row no-gutters --> </div><!-- container --> <!-- フォーム --> <!-- フォーム --> <div class="container formpcpad"> <div class="row no-gutters"> <div class="col-12 col-md-3"> <div class="wrapper-top"> <div class="element titless">お名前</div> <div class="element mustmust">必須</div> </div> </div><!-- col-12 col-md-4 --> <div class="col-12 col-md-9"> <input class="box" type="text" name="organization" value="" size="40" class="" aria-required="true" aria-invalid="false" placeholder="お名前" required> </div><!-- col-12 col-md-8 --> </div><!-- row no-gutters --> </div><!-- container --> <!-- フォーム --> <div class="container formpcpad"> <div class="row no-gutters"> <div class="col-12 col-md-3"> <div class="wrapper"> <div class="element titless">電話番号</div> <div class="element mustmust pull-right">必須</div> </div> </div><!-- col-12 col-md-4 --> <div class="col-12 col-md-9"> <input class="box" type="text" name="number" value="" size="40" class="" aria-required="true" aria-invalid="false" placeholder="000-0000-0000" required> </div><!-- col-12 col-md-8 --> </div><!-- row no-gutters --> </div><!-- container --> <!-- フォーム --> <div class="container formpcpad"> <div class="row no-gutters"> <div class="col-12 col-md-3"> <div class="wrapper"> <div class="element titless">メールアドレス</div> <div class="element mustmust">必須</div> </div> </div><!-- col-12 col-md-4 --> <div class="col-12 col-md-9"> <input class="box" type="text" name="email" value="" size="40" class="" aria-required="true" aria-invalid="false" placeholder="sample@hoge.co.jp" required> </div><!-- col-12 col-md-8 --> </div><!-- row no-gutters --> </div><!-- container --> <!-- フォーム --> <div class="container formpcpad"> <div class="row no-gutters"> <div class="col-12 col-md-3"> <div class="wrapper"> <div class="element titless">希望日</div> <div class="element mustmust">必須</div> </div> </div><!-- col-12 col-md-4 --> <div class="col-12 col-md-9"> <input class="box" type="date" name="day" value="" size="40" class="" aria-required="true" aria-invalid="false" placeholder="年/月/日" required> </div><!-- col-12 col-md-8 --> </div><!-- row no-gutters --> </div><!-- container --> <!-- フォーム --> <div class="container formpcpad"> <div class="row no-gutters"> <div class="col-12 col-md-3"> <div class="wrapper"> <div class="element titless">希望時間</div> <div class="element mustmust">必須</div> </div> </div><!-- col-12 col-md-4 --> <div class="col-12 col-md-9"> <?php include('common/form_input_time.php'); ?> </div><!-- col-12 col-md-8 --> </div><!-- row no-gutters --> </div><!-- container --> <!-- フォーム --> <div class="policy-waku"> <p align="center"><input type="checkbox" name="policy" class="checkbox-input" required id="policy"><label for="policy" class="checkbox-parts" ><a href="/privacy-policy/" target="blank">個人情報の取扱について確認し、同意します</a></label></p> <!-- <input type="submit" value="送信" class="sub-btn sub-btn-last"> --> <input type="submit" name="submit" value="送信"> </form> <?php $submit=filter_input(INPUT_POST,'submit'); if ( isset($submit) ) { // ボタンが押されたら実行したい処理 //echo "ボタン押したよ"; include('sendmail.php'); } ?> </div> <?php include('common/wp-form-footer.php'); ?>
mayoi_maimai

2019/10/18 12:35

以下だと出力されますか?? $submit=filter_input(INPUT_POST,'submit'); if ( isset($submit) ) { // ボタンが押されたら実行したい処理 echo "ボタン押したよ"; exit; include('sendmail.php'); } ?>
guest

0

送信されたときに処理するif文です

if ($_SERVER['REQUEST_METHOD'] == 'POST') { //送信されたら処理をする内容を入れる } else { //送信されなかったら処理をしない内容を書く }

みたいな感じです

投稿2019/10/17 11:39

編集2019/10/17 11:41
siratama_neko

総合スコア72

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

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

0

直接叩く

これだとリクエストはGETになります。
POSTにはなにもないので、全てNULLが投入されます。

おそらく

$created_at_date = $_POST["created_at_date"];

の時点でundefined indexのWarningが出ていると思います。
エラー表示はONにしておきましょう。

直接アクセス対策には$_SEVEREのREQUEST_METHODを確認する方法もよく使われますが、
filter_input()でnull確認するやり方がベターです。

DB接続のコードも今回のケースはクエリ投げる直前の方が良いと思います。
使われない分岐もあるのに接続を保持するのは無駄コストですので。


デバッグしましょう。
コードがどこまで想定通り動いているのか確認してください。

  • POSTは全て想定した値がきているのか
  • ifで入れている分岐はどこを通っているのか
  • $queryrに想定通りのSQLができあがっているのか
  • そのSQLはDBに対して直接実行して想定通りの結果が得られるのか(むしろこれが最初)

今現在のコードだとメール送信に関係する処理も入ってきているようですし、「データのinsert」とは直接関係ない処理は除いて、そこだけテストするなどして問題の切り分けを行ってください

投稿2019/10/17 06:05

編集2019/10/17 06:26
m.ts10806

総合スコア80842

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

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

ichigob

2019/10/17 06:12

今までは、サンクスページに到達するとDBにデータを入れていました。 これはうまくいっています。 サンクスページに行くとデータがきちんと入ります。 ですが、サンクスページ単体で開くと空のデータが入ってしまう現象がありました。 そこで、問い合わせフォームの方にデータベースに書き込む処理を書いて、送信ボタンを押すと動き出すようにしたいと考えました。 この部分を書いていませんでしたので、データの受け渡しができないように伝わってしまった可能性があります。
ichigob

2019/10/17 06:13

もしかすると、質問を別に作り直して、一からご説明した方が良いのかもしれません。 部分的に対処しようと考えてしまい、一部のみの説明になってしまいました。
m.ts10806

2019/10/17 06:19

質問読めてない部分がありましたので、冒頭に追記しました。 後半になった部分は一応覚えておくべき問題解決手法として認識はしておいてください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問