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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

277閲覧

メールの送信完了画面では、値をSESSIONから取り出す理由は何でしょうか?

klgrhl

総合スコア13

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2023/05/30 02:33

編集2023/05/30 02:33

メールフォームを作成しているのですが、送信完了画面で値をSESSIONから取り出す記述を記載するようなのですが、その理由は何でしょうか?

自分なりに調べてみたのですが、以下のような解釈であっているでしょうか?
回答よろしくお願いいたします。

保存してある、値$nameをSESSIONから取り出して、そのSESSIONから取り出した$nameを$mail->Body .= "お名前:".$name."\n"; の$nameの部分に置き換えて出力して表示させるため。

php

1<?php 2session_start(); 3$name = $_SESSION['name']; 4$email = $_SESSION['email']; 5 6// メール本体 7$mail->Body .= "----------お申し込み内容----------\n"; 8$mail->Body .= "お名前:".$name."\n"; 9$mail->Body .= "メールアドレス:"."\n".$email."\n"; 10?>

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

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

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

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

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

maisumakun

2023/05/30 02:42

> その理由は何でしょうか? 逆に、$_SESSIONを使わずに同等の動作を実装する方法として、どのようなものを考えていますか?
klgrhl

2023/05/30 02:59

$name = $_SESSION['name']; $email = $_SESSION['email']; ↓ $name = $_POST["name"]; $email = $_POST["email"]; POSTを使う方法があるようです。
68user

2023/05/30 08:22

POST でやっても別によいですよ。 しかし前画面に戻る際など、あらゆる入力値 (氏名メールアドレス住所電話番号等すべて) を引き渡す必要があり面倒ではあります。$_SESSION を使うと各画面ごとに興味のある値のみを扱えばよいので楽、といえます。
guest

回答2

0

自己解決

入力画面から確認画面、そして送信画面でのPOSTやSESSEONの動きを理解したかったので、調べたら以下のようです。

ブラウザは 入力画面 を GET 要求
サーバーは利用者専用のセッション領域を確保
サーバーは 入力画面 のページを応答
ブラウザは応答内のセッション ID を記憶し、以降の要求に添加する

利用者は 入力画面 を操作してフォーム内 name に値入力

ブラウザは 確認画面 をフォーム内容込みで POST 要求
サーバーはセッション ID から領域を識別
サーバーはフォーム内容の name を読み取りセッションに格納
サーバーは 確認画面 のページを応答

利用者は 確認画面 を操作

ブラウザは 完了画面 を POST 要求
サーバーはセッション ID から領域を識別
サーバーはセッションから name を読み取り、何らかの処理を完了させる
サーバーは 完了画面 のページを応答

利用者は 完了画面 を確認

投稿2023/06/06 08:00

klgrhl

総合スコア13

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

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

0

ブラウザのリロードなどで二重処理が発生しないようにしていると推定されますが、ポリシーはサイトごとに違います。

フォームのデータは入力・送信後、バリデート・サニタイズします。
問題があれば再入力させる、もしくはエラー終了します。
問題がなければセッションにデータをいれて完了ページに移動します。
完了パージに移動することでリロードやページ戻りによるトラブルを減らせます。

投稿2023/05/30 02:58

yambejp

総合スコア114769

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

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

klgrhl

2023/05/30 03:07

回答ありがとうございます。リロードなどで二重処処理の対策も兼ねているようです。 SESSIONから取り出した値$nameはどこへ行くのでしょうか?取り出した値は、 $mail->Body .= "お名前:".$name."\n"; の$nameに代入されるのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問