プロが教えるわが家の防犯対策術!

現在お問い合わせフォームを作る中で疑問に思ったので質問させて頂きました。
お詳しい方アドバイスを頂けないでしょうか?

フォームの入力内容や送信時間を取得して現在は、SESSIONで情報を保持しています。
そこで思ったのですが、このSESSIONを利用すれば、同じことをCookieを使わずに実現できると思うのですが、この場合のCookieの使いどころといいますか、使い方はどういった場面になりますでしょうか?ログインやショッピングカートの情報などもSESSIONで対応できると思いますし…。

Cookieでなければ駄目な場合といいますかあればお願いいたします。

なお、条件としては負荷分散とかでサーバーが異なる場合がある、などは無視して頂きあくまで同じサーバー上でsessionではなく、Cookieである必要がありましたらお願いいたします。

質問者からの補足コメント

  • すみません、タイトルが…。
    正しくは以下になります。

    「sessionではなくcookieを使わなければならない理由について…」

      補足日時:2022/11/07 13:03

A 回答 (4件)

No3です。



仕組みの話ではなくて、言語仕様の話なのでしょうか?
($_SESSIONとあるのでPHPかな?)

「$_SESSIONを使うから、$_COOKIEはいらない」という意味であるなら質問者様の自由です。

「for があるんだから、while とか do はいらない」
「if で書けるんだから、switch とか三項演算子なんていらない」
ってのと同様です。

似た様な内容でも、意味合いは異なりますし、ある方が便利だと考えて言語開発者が冗長性を持たせているのでしょう。
    • good
    • 0
この回答へのお礼

何度も有難うございます。

>>「for があるんだから、while とか do はいらない」
>>「if で書けるんだから、switch とか三項演算子なんていらない」
この分部がお伺いできて安心いたしました。
使う人の考え方次第なのですね、調べてみますとやはりブラウザ閉じても時間的に保持させたい場合などはcookieを利用するみたいですし、この部分が判断になる事がやはり多いみたいでした。
もう少し自分なりに調べてみたいと思います、貴重なご意見有難うございました。

お礼日時:2022/11/07 16:15

ごく簡単に言うと、



Cookieは、ブラウザに情報を記録しておく領域(仕組み)で、様々な用途に使われている。
SESSIONはそのうちの一つで、Cookieを利用して通信の同一性(連続性)を維持する仕組み。

質問者様が、「SESSIONがあればCookieなんていらない」と思っても、CookieがないとSESSIONの仕組み自体がなりたたないということになります。

大げさに言えば、「アクセルがあればエンジンいらないよね?」って感じかな。
    • good
    • 0
この回答へのお礼

有難うございます。
やはり私自身、まだまだ理解していない部分が多く質問自体がおかしな内容になっているみたいです。

sessionが裏?でcookieを利用して実現されている??という意味での使い方では無く、宣言して、sessionを使う、cookieを使うをまず行うと思います。

$_COOKIE $_SESSION

どちらを使う?となった場合、データの保持など同じようなことができると思うのですが、$_SESSIONを使わずに、$_COOKIEを使う場合の理由が知りたいのですが…。何か質問がおかしいのでしょうか?その場合ごしてきください。

$hoge = $_SESSION['mail'];
$hoge =$_COOKIE['mail'];

↑この場合、sessionでは無く、後者の$_COOKIEを使わなければならない理由が分かればと思います。

お礼日時:2022/11/07 15:20

質問者様が言われているセッション識別はHTTP Cookieを使って実現されています。


で、HTTP Cookieは一般にCookieと呼ばれています。
これは、この技術を提案し実装した今は無きNetscape Communications社が「Cookie」と呼んだからです。

https://atmarkit.itmedia.co.jp/ait/articles/1704 …
https://ja.wikipedia.org/wiki/HTTP_cookie

参考まで。
    • good
    • 0
この回答へのお礼

有難うございます!

>>質問者様が言われているセッション識別はHTTP Cookieを使って実現されています。
セッション識別というものが何かわからないのですが、sessionとcookieで同じようなことができるのであれば、sessionだけでいいのでは?と思ったのでお伺いさせて頂きました。

$hoge = $_SESSION['mail'];

でも、

$hoge =$_COOKIE['mail'];

でも、同じように取得したアドレスを使いまわせるし、不要になったら破棄できます。

同じような用途だと思うのですが、cookieでなければならない理由がいまいちわからなかったので…。
ブラウザ閉じても保持させたい場合?という感じなのでしょうか?

恐らく、根本的な部分で理解できていないのだと思います。TT

お礼日時:2022/11/07 14:54

セッションを識別するためにクッキーを使います。

使わない手段もありますが、実装が面倒になりますのでお勧めしません。
参考)
https://www.php.net/manual/ja/session.idpassing. …

ログイン不要のサイトにて、何かしらの設定情報を保存するためにクッキーを使います。最近の例では、クッキーの使用同意など。

広告や統計調査のために、個人識別用にクッキーを使います。

クッキーやセッションに保存するには膨大な情報を保存するために、ローカルストレージを使うことがあります。今まですべての閲覧履歴など。
参考)
https://developer.mozilla.org/ja/docs/Web/API/We …
    • good
    • 0
この回答へのお礼

有難うございます。

>>セッションを識別するためにクッキーを使います。使わない手段もありますが、実装が面倒になりますのでお勧めしません。
なるほどです、あまり使ったことが無いので理解できていないのですが、session_idもsessionで取得して格納してしまえば良さそうに思えたのです

$hoge = session_id();

とかで…。
きっと深いのですね。。

お礼日時:2022/11/07 14:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!