旅インプットファイナンス時事ネタその他GRAYCODEについてお問い合わせプライバシーポリシーサイトポリシーPHPプログラミングfacebookTweethatenaline2019.06.10ワークショップひと言掲示板を作る(14)セッションで表示名の入力を省略する「ひと言掲示板」にセッションを導入して、書き込みの入力を便利にするための機能をつけていきます。この記事のポイントセッションに入力データの一部を保存するセッションは再アクセスすると有効期限が自動的に延長される目次セッションを導入するセッションについて表示名をセッションに保存するセッションを導入する前回は今までに作成したコードを整理しました。今回からはセッションを導入して、掲示板の利便性を改善していきます。「ひと言掲示板を作る」の概要については「ひと言掲示板を作る」をご覧ください。デモはこちら前回までに作成したコードはこちら:Githubセッションについてセッションはサーバーで管理&保持されます。データを一時的に保存する場所として使用することができます。ある使い方としては、ユーザーのログイン状態をセッションに保存しておいて、ログイン情報があったら会員用ページを表示し、反対にログインしていない場合はログインページや会員登録ページを表示する判定部分です。セッションに似た機能を提供するものに「Cookie(クッキー)」がありますが、セッションはサーバー上に存在するのに対して、Cookieはサイトの閲覧者が使うパソコン上に保存されるという点が大きく異なります。Cookieはユーザーの環境によってそもそも使用できない(許可しない)こともあるため、ログイン情報などシステムとリアルタイムで連携するデータを保持したい場合はセッションを使うことが一般的です。セッションの有効期限ですが、こちらはphpinfo関数から確認することができます。「session」項目の「session.gc_maxlifetime」に「秒」単位で数値が表示されます。上の出力例のように「1440」と表示されている場合は有効期限が「1440秒」となり、ちょうど24分になります。セッションが保持された状態で再アクセスがあると、そのセッションは自動的に有効期限が延長されます。24分が経過してもセッションが絶対に消えるとは限りません。セッションは破棄するものがある程度溜まってから削除を行うため、セッションが1つしかなかったりするとガベージコレクションがなかなか実行されず、有効期限が過ぎていてもセッションが残ってしまうことはよくあります。セッションについてザックリと見てきたところで、ひと言掲示板にもセッションを導入してみましょう。表示名をセッションに保存する今回はセッションに掲示板で入力された「表示名」を保存し、掲示板によく書き込みを行う方の入力を少なくできるようにしていきます。次のようにsession_start関数を追記してください。--この関数はセッションの使用を開始するために実行します。続いて、掲示板に書き込みを行うタイミングで「表示名」の入力があるときにセッションへ保存を行います。'表示名を入力してください。--連想配列に値を代入するのと同じ形でセッションにデータを保存できます。値を取り出すときも「$_SESSION[‘view_name’]」を参照する形になります。最後に、セッションに「表示名」があったら入力された状態になるように設定します。表示名のinput要素のvalue属性に、次の赤いコードの部分を追記してください。--empty関数を使って表示名のセッションに値が入っているか確認し、値があったら出力する処理を加えています。以上で設定は終了です。ブラウザでひと言掲示板を開いてセッションがうまく動くか確認してみましょう。書き込んだ後も、次のように表示名は入力したものがそのまま表示されます。セッションの有効期限内であれば、ブラウザを一回閉じて後で開いてみても、同じように表示名は以前に入力したものが表示されます。次回からは掲示板の書き込み内容を編集・削除することができる管理ページを作成していきます。今回作成したコード:Githubこちらの記事は役に立ちましたか?GoodBadありがとうございます。よろしければ、あわせてフィードバックや要望などをご入力ください。コメント送信コメントありがとうございます!運営の参考にさせていただきます。)PHP2019-11-16フォームの基本構造を作成するPHP2019-11-16はしご高など旧字体漢字の文字化けを防ぐRECOMMEND遅いインターネット評論家の宇野常寛の新著。2018年頃から提唱されている「インターネットによって失った未来をインターネットによって取り戻す」をテーマにした本書が、いよいよ2月20日から書店に並びます。宇野さんがずっと温めてきた構想が詰まった1冊なので、個人的に非常に楽しみにしている一冊です。