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

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

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

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

Q&A

2回答

1550閲覧

SESSIONは使うページで全て記載が必要ですか?

yukina00235

総合スコア62

PHP

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

0グッド

1クリップ

投稿2020/05/14 08:46

編集2020/05/14 08:48

SESSIONの利用方法について教えてください。

正常の流れ: index.php → check.php → thanks.php

一度チェックで戻る: index.php → check.php → index.php → thanks.php

フォームを想定しています。
check.php で index.php からのPOSTを取得して各$_SESSION にしまいます。

PHP

1session_start(); 2 $_SESSION["name"] = $_POST["name"]; 3 $_SESSION["email"] = $_POST["email"];

その際、index.php や thanks.phpでもsessionを使って名前などの表示を行う際は、同様の記述をそれぞれのページに設定するという認識で大丈夫でしょうか?

あと、inex.php には 常に

Notice: Undefined index: name in …
Notice: Undefined index: email in …

というエラーが表示されます、$_SESSIONを書いている部分です。
これはどういった判断でissetとかを指定すると良いでしょうか?
isset を使ってif の判定の指示を出す基準が理解できません…。

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

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

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

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

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

guest

回答2

0

その際、index.php や thanks.phpでもsessionを使って名前などの表示を行う際は、同様の記述をそれぞれのページに設定するという認識で大丈夫でしょうか?

コードの意味を考えてください。

session_start();はセッションを有効にするために必要ですが、$_SESSION["name"] = $_POST["name"];は、「POSTされたデータをセッションに入れる」ということです。index.phpにはふつうにGETで入るでしょうし、POSTデータはないので「常にエラーが出る」ような事態となります。

投稿2020/05/14 09:06

maisumakun

総合スコア145184

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

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

yukina00235

2020/05/14 09:28

有難うございます。 なるほどです、ご指摘の通り、index.phpに $_SESSION["name"] = $_POST["name"]; $_SESSION["email"] = $_POST["email"]; の記述を行っていました。 index.phpには単純に session_start(); $_SESSION["name"] ; $_SESSION["email"] ; の記述でよいのでしょうか? 何だか混乱してまいりました、index.phpとthanks.phpのsessionの対応をアドバイスお願いできますでしょうか。宜しくお願いいたします。
maisumakun

2020/05/14 09:30

> $_SESSION["name"] ; エラーを発生させるだけで何の意味もない記述になります。不要です。
yukina00235

2020/05/14 09:38

アドバイス有難うございます。 index.phpとthanks.phpにはsession_start(); の記述だけでよいのでしょうか? ただ、エラーは表示されたままです。 <input type="text" name="name" value='<?php print $_SESSION["name"]; ?>'> この辺りの記述も間違っていますでしょうか?
maisumakun

2020/05/14 09:47

> この辺りの記述も間違っていますでしょうか? はい、最初はセッションに値が存在しません。
yukina00235

2020/05/14 09:55

有難うございます、もう少し調べて色々と試してみたいと思います。
guest

0

SESSIONは使うページで全て記載が必要ですか?

ここだけに答えると、「違います」

「セッションを利用するスクリプトの冒頭出力処理が書かれる前に書く」です。
そもそもが「ページ」ではないですからね。

「全てのファイル」でないことにも注意してください。
あくまで「一連の流れ」を「1つのスクリプト」と捉えます。

投稿2020/05/14 09:59

編集2020/05/14 21:42
m.ts10806

総合スコア80850

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

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

m.ts10806

2020/05/14 10:28

この低評価は何かな。
yukina00235

2020/05/14 21:38

すみません、これは私が押したのでしょうか? 「この機能は開放されていません」と表示されなにも出来ないのですが…。 もし私の方で行ったのであれば取り消したいのですがどうすれば良いのでしょうか? アドバイスには感謝申し上げます。mm
m.ts10806

2020/05/14 21:40

「低評価」のボタンが青くなってなければそのユーザーがしたものではないです。
m.ts10806

2020/05/14 21:49

であれば大丈夫です。 基準は明確になっていませんが、それなりに活動してないとできないはずです。 ちょっと思うところあったので調整しました(表現に語弊があった) ただ、誤りがあるならそう指摘してもらいたいものです。 ふざけた質問や回答ではないのに無言で低評価は非常に卑怯な行為。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問