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

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

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

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

Q&A

解決済

3回答

1726閲覧

PHPのSESSION変数の有効期限とPOST変数について教えてください。

satoshi501

総合スコア60

PHP

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

0グッド

1クリップ

投稿2021/07/23 00:51

編集2021/07/23 02:27

お世話になります
PHPのSESSION変数を使用すると、画面遷移をしても使用できるのですが、有効期限があり、ある程度触っていないと変数の中身がなくなると聞いております(設定を変更できるそうですが、今回はデフォルトとしてお願いします。)

教えていただきたいことは、
では逆に、各ページの移動を全てPOSTで渡し、全てのページでPOSTで受け取っている場合、
そのページで数日おいたり、一旦閉じたりしてから再度そのページを読み込んだ場合、最後のPOSTを読み込んでそのページから開始できるものなのでしょうか?

ご教示お願いいたします。

ご回答ありがとうございます
すいません質問の仕方が悪かったです。

補足です
DB自体で行えることは存じておりますし、実際DBを使用して行っております

今回はただの質問でして、どうやったらデータを残せますかではなく、
POSTに入れて受け渡ししたページをそのページのまま放置した際、再読み込みした時、POSTの値がわからなくなる期限などはあるのでしょうか?
(一旦閉じた場合はダメですね)

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

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

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

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

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

guest

回答3

0

ベストアンサー

>POSTに入れて受け渡ししたページをそのページのまま放置した際、再読み込みした時、POSTの値がわからなくなる期限などはあるのでしょうか?

例えば次のようなページを設置したとします。

HTML

1<?php 2$posted_id = $_POST['id']; 3?> 4<html> 5<body> 6<form method="POST"> 7<input type="hidden" name="id" value="<?php echo $posted_id;?>"> 8<input type="submit" value="次のページへ"> 9</form> 10</body> 11</html>

このように、postされた値を、放置しておく画面側でinput type="hidden"等で持っておけば、ウインドウを閉じない限りその値は放置後に送信ボタンを押しても引き継がれていきます。

あくまでもHTML上に(hiddenではあるけど)保持しているだけで、$_POSTそのものが永続しているわけではない点には注意が必要です。
($_POST自体は、上記のページの出力が終わった段階でもう利用できません)
また、ブラウザでソースを覗けばこの値は簡単にユーザー側で見ることが可能なので、秘匿性が求められるもの(本来SESSIONを使うべきもの)をこの方法で代用することはお勧めできません。
他の回答にもあるように素直にDB等を使うべきです。

投稿2021/07/23 04:24

編集2021/07/23 04:30
F_I_A

総合スコア104

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

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

0

♯ セッションに有効期限があることを初めて知りました…

答えというより、他の方の補足のような立ち位置です。

えーっと、今回の場合、現実世界に置き換えるとわかりやすいですよ。

人間は基本的に『記憶は苦手』のようです。
一時的に記憶したりすることはできますが、基本的には忘れやすいです。

一旦パスワードとかのようなデータを記憶し、翌日にもそのデータを使う場合、
どうしますか?

私なら『ノートかなんかに記録しておく』ですね。

パスワードならパスワード管理ソフトとかを使うとか。

そうすればその都度、データを取り出していけばいいですね。

この『パスワード管理ソフト』とかのようなデータを保存しておく場所が必要ですね。

この場所の代わりにデータベース(DB)です。
MySQLとかです。

セッションはあくまで一時的なものです。

投稿2021/07/23 02:04

BeatStar

総合スコア4958

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

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

0

DBに進捗を保存してれば可能です。

投稿2021/07/23 01:04

m.ts10806

総合スコア80861

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問