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

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

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

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

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

Q&A

解決済

2回答

1541閲覧

session_start()について(PHP)

退会済みユーザー

退会済みユーザー

総合スコア0

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

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

0グッド

1クリップ

投稿2020/07/20 11:23

よろしくお願いいたします。

PHPリファレンス内で名前空間を学んでいるときに出てきた定義済み関数でsession_start()というものがありました。

以下のページにてなんのために使用されているのか不明だったので、ご質問させていただけますと幸いです。

https://www.php.net/manual/ja/language.namespaces.definitionmultiple.php

<?php declare(encoding='UTF-8'); namespace MyProject { const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } } namespace { // global code session_start(); $a = MyProject\connect(); echo MyProject\Connection::start(); } ?>

こちらでnamespaceを同ファイル内で使用し、
固有名namespaceが無いグローバルエリアでnamespace{}書き出しの後に
すぐsession_start()を行なっております。

session_startの説明を見ると

session_start — 新しいセッションを開始、あるいは既存のセッションを再開する

とありましたが、セッションとはなんなのでしょうか。

他の説明で

session_start() は、セッションを作成します。 もしくは、リクエスト上で GET, POST またはクッキーにより渡されたセッション ID に基づき現在のセッションを復帰します。

とありましたが、webページなどにアクセスした際に生成されるクッキーデータのような
再度ページに来訪した際に前回のアクセス元と紐付けができるようにする仕組みと同じようなものなのでしょうか。

ただ、どのような場合に有効なものなのかまるで見当がつきません。

アドバイスなどいただけますと幸いです。

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

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

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

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

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

m.ts10806

2020/07/20 21:40

学習の順番逆ではないでしょうか。 セッション理解できて名前空間理解できてないなら分かるのですけど。
guest

回答2

0

ベストアンサー

webシステムは基本的に一問一答となります。
その前後でどんなやりとりがあったのかは感知できません。
その制限に対応するためにいくつかの方法があるのですが
セッションという考え方もその一つです。

サーバー側ではセッションIDをキーにセッションとして
指定された情報をファイルに保存します。
別のページにいっても、セッションIDさえわかれば
保存されたものから参照が可能となります。

それらを実現するためのものが session_start() をはじめとする機能です。
$_POST や $_GET と同じように $_SESSION を使います。
ちなみに、名前空間とは密接な関係は無いように思います。

投稿2020/07/20 12:42

takasima20

総合スコア7458

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

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

m.ts10806

2020/07/20 21:42

>名前空間とは密接な関係は無いように思います。 本質的には全く関連性はないですね。
退会済みユーザー

退会済みユーザー

2020/07/21 09:32

ご回答のほど、ありがとうございます。 やはり、仕組みの部分をもう少し学習していく必要がありそうです。勉強不足でした..! 自身でもう少し調べてみます。
guest

0

ページ間でデータを引き継ぐための仕組みです。
ご指摘のページでセッションを利用しているかわかりませんが、
なんらかの意図があるとは思います

投稿2020/07/20 11:35

yambejp

総合スコア114829

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

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

退会済みユーザー

退会済みユーザー

2020/07/21 09:32

ご回答いただきまして、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問