ホームページ >バックエンド開発 >PHPチュートリアル >php5 で Cookie を無効にしてもセッションは使用できますか?
php5 で Cookie を無効にしてもセッションは使用できますか?
テストを行ったところ、無関係な 2 つのページ a と b が見つかりました。
aでセッションを設定し、bで表示します。
ブラウザでセッションが無効になっている場合、セッションはローカルで表示できますが、上記のように URL の末尾に session_id などがありません。UNIX サーバーにアップロードすると機能しません。困惑
-----解決策---------
php.ini で session.use_trans_sid を 1 に設定すると、接続後にセッション ID が追加され、セッション キーが URL 経由で渡されます。この時点で、Cookie が無効であっても、クライアントは引き続きセッションを使用できます。 >
また、ブラウザは Cookie のみを無効にできますが、セッションは無効にできません。Cookie にはセッション キーのみが保存されます。
------解決策----------------------例を見て、とても良いと思いました。 、共有します:
セッションはサーバー用に Cookie を保存し、クライアント用にそれらを保存します。
はい、セッションとクッキーの最大の違いはここです。コードと関連する理解に基づいて私がまとめたものは次のとおりです。
コード:
A1.php
function CookiesTest($newValue){
if(!isset($_COOKIE["CookiesTest"])){
setcookie ('CookiesTest',$newValue,time() + 3600);
echo "CookieValue:".$_COOKIE["CookieValue"];
}
}
関数 SessionTest($newValue){
if(!session_is_registered('SessionTest')){
session_register("SessionTest")
}
}
CookiesTest("HelloCookies!"); !");
echo "CookieValue:".print_r($_COOKIE)."
";
echo "CookieValue:".$_COOKIE["CookiesTest"]."
";
$SessionTest = "dd";
echo $SessionTest;
A2.php
//session_start();
echo $_SESSION["SessionTest"];
Cookie:
;ページへの連続した訪問を保存するために使用されます。 (つまり、ローカル Cookie の値はグローバル変更の真の概念ではありません。つまり、A1.php の場合、$_COOKIE["XX"] を調整することで対応する Cookie 値を呼び出すことができますが、別の A2 を開いた場合.php IE ブラウザでは、Cookie の値を取得できません。したがって、実際の意味ではグローバルな概念ではありません)
(2) Cookie はクライアントに保存され、Cookie に保存されるのはグローバルな概念ではありません。ユーザーの WIN の Temp ディレクトリ。
セッション: (特別な Cookie。Cookie が禁止されると、セッションも禁止されますが、リダイレクトを通じてセッションを取り戻すことができます)
(1) ユーザー グローバルを保存するためにのみ使用できます。変数。 Session の場合は、ブラウジングが繰り返し開かれるかどうかに関係なく、Session_start() を通じて Session の値をリダイレクトして取得し、操作を実行できます。たとえば、上記の A1.php はセッション操作を実行し、別の IE を開いて Sessoin_start(); を使用すると、セッションの対応する変数が再度有効になります。つまり、真のグローバル性と一意性が実現されます。
(2) Session の場合は、サーバー上の PHP で指定されたディレクトリの (session_dir) の場所に保存されます。以上がセッションとCookieについての私の理解です