PHP + sqlite でリクエストフォームを作成しています。
データの入力 → 確認画面の表示 → 「送信」ボタン押下で、
1) name="email" 宛に確認メールを送る
2) 入力内容をデータベースに書き込む
上記 2 つの動作を同時に実行しようとしています。
確認画面からデータベースへの書き込み、
確認画面から name="email" 宛へのメール送信
の各動作は、個別に確認できていますが、
これらを同時に実行する方法がわかりません。
<form method="POST" action="*****.php"> では、
一方の処理しか指示できませんし、
JavaScript で対応しようとしましたが、上手く行きません。
どなたかお知恵を拝借できませんでしょうか。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
A.php=確認画面の表示
B.php=DB書き込み処理&メール送信処理
C.php=処理完了の表示
とすればスッキリするかと思います。
A.php内の
<form method="POST" action="*****.php">を
<form method="POST" action="B.php">とし、
B.phpの中でDBへの書き込みとメール送信の処理を行い、
B.phpの最後に
header("Location:C.php");
exit;
と書いてC.phpへ飛ばし、
C.phpで処理完了の旨を記述。
こうしておくとDB処理・メール処理のページと最後の表示ページが分かれているので、C.phpで何度F5キーを押されてもDB処理やメール送信処理を重複して行われるという事を防げるかと思います。
参考にしていただけたらと思います。
この回答への補足
早速回答いただき、ありがとうございます。
なるほど!
A.php で両方の処理をやらせようとしていました。
重複書き込み防止策までアドバイス頂いて、勉強になります。
早速試してみます。
まずはお礼まで。
完璧にできました!!!
本当にありがとうございました。
こんなに簡単にできるとは。
連休中、自宅で環境が再現できず、お礼が遅れて申し訳ありません。
No.1
- 回答日時:
> <form method="POST" action="*****.php">
"*****.php"の中で両方の処理が行なえませんか?
今、"*****.php"にはどんな風に書いてありますか?
この回答への補足
早速回答いただきありがとうございます。
なるほど!
確認画面で両方の処理を記述しようとしてました。
早速試してみます。
今は、それぞれ以下のように記述しています。
受領メール送信用のPHP:
<?php
mb_language('Japanese');
mb_internal_encoding("Shift-JIS");
$header_info="From: ".$_POST['email']."\nContent-Type: text/plain;charset=ISO-2022-JP\nX-Mailer: PHP/".phpversion();
$body="■■".$_POST['_subject']."■■\n\n";
foreach($_POST as $key=>$value){
if(!strstr($key,"_")){
$body.="[".$key."]".$value."\r\n";
}
}
mb_send_mail($_POST['email'],$_POST['_subject'],$body,$header_info);
header("Location: ".$_POST['_result']);
?>
----------------------
データベース書込み用PHP:
<?php
$db=sqlite_open("./data/test.dat",0666,$err);
$s_date=$_POST['year']."/".$_POST['month']."/".$_POST['day'];
sqlite_query($db,"INSERT INTO proofreq (
section,name,email,
---中略----
VALUES('".sqlite_escape_string($_POST['section'])."','".sqlite_escape_string($_POST['name'])."'");
sqlite_close($db);
header("Location: doc_check_request_query.php");
?>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
PHPが処理を途中でやめる。原因...
-
リンクのラベルを取得したい
-
入れ子になっているHTMLタグも...
-
インスタンス化に伴うメモリ消...
-
関数の前にアットマークが付く場合
-
System関数で変数を受け渡す方法
-
透過PNGが透過されない!!
-
CFileDialogの最初のディレクト...
-
【file_exists】ファイルが存在...
-
フォントの色を変えるには?
-
VB6にてメールを送信する方法
-
C# Excelファイルへの画像挿入。
-
フォームで戻った際に入力済み...
-
.htaccessにphp_valueが使用できな
-
別ファイルの変数を呼び出した...
-
3つ以上の論理積は利用可能なの...
-
onedrive にexcelファイルをア...
-
$_SESSION 有効期限をブラウザ...
-
リクエストメソッド
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
インスタンス化に伴うメモリ消...
-
PHPが処理を途中でやめる。原因...
-
PHPExcel処理速度が遅い
-
phpの処理中に画面表示ををする...
-
関数の前にアットマークが付く場合
-
Cronで同じ処理を複数同時に実...
-
PHPで偶数と奇数を判断するには
-
3の倍数の和
-
includeしたファイルに変数を持...
-
タイムアウト処理?となる
-
プログラム内で処理中断後も継...
-
入れ子になっているHTMLタグも...
-
条件分岐 if(elseif) switchの...
-
Smartyにて、文字検索
-
アクセスクライアントごとにタ...
-
VBAからPHPを実行(キック)したい
-
【PHP】URLがドメイン名...
-
DBへの書き込みとメール送信を...
-
GETリクエストでURLを渡す時
おすすめ情報