$ _SESSION ভেরিয়েবলগুলি কোথায় সংরক্ষণ করা হয়?


158

করছেন $_SESSIONভেরিয়েবল ক্লায়েন্ট বা সার্ভারে সংরক্ষণ করা?


আপনি যে সার্ভারে পিএইচপি অ্যাপ্লিকেশনটি চালাচ্ছেন সেখানে নির্দিষ্ট পাথের জন্য আপনাকে phpinfo () দিয়ে পরীক্ষা করতে হবে
ঘনত্ব

উত্তর:


168

$_SESSIONপরিবর্তনশীল স্টোরেজের অবস্থানটি পিএইচপি এর session.save_pathকনফিগারেশন দ্বারা নির্ধারিত হয় । সাধারণত এটি /tmpলিনাক্স / ইউনিক্স সিস্টেমে থাকে। আপনার ডোমেনের phpinfo()মধ্যে এই সামগ্রীটি দিয়ে কোনও ফাইল তৈরি করে 100% নিশ্চিত না হলে আপনার নির্দিষ্ট সেটিংস দেখতে ফাংশনটি ব্যবহার করুন DocumentRoot:

<?php
    phpinfo();
?>

এই কনফিগারেশন সেটিংসে পিএইচপি ডকুমেন্টেশনের লিঙ্কটি এখানে রয়েছে:

http://php.net/manual/en/session.configuration.php#ini.session.save-path


129

ইতিমধ্যে উল্লিখিত হিসাবে, বিষয়বস্তু সার্ভারে সংরক্ষণ করা হয়। তবে সেশনটি একটি সেশন-আইডি দ্বারা চিহ্নিত করা হয় যা ক্লায়েন্টে সঞ্চিত থাকে এবং প্রতিটি অনুরোধের সাথে প্রেরণ করে। সাধারণত সেশন-আইডি একটি কুকিতে সংরক্ষণ করা হয় তবে এটি ইউআরএলগুলিতে যুক্তও হতে পারে। (এটি PHPSESSIDআপনি কোয়েরি-প্যারামিটারটি কখনও কখনও দেখেন)



12
দুর্দান্ত উত্তর! আমি প্রশ্নের সন্ধান করছিলাম: "ব্রাউজার ক্যাশে মোছার পরে কেন সেশনগুলির মেয়াদ শেষ হবে?"। এবং আপনি আমার দিন বাঁচাতে।
ছাত্র

2
সার্ভার ফাইল তৈরি করুন sess_7nu9p0fvidvva6ouaugqcc8292 এবং ব্রাউজার সতর্কতার উপর (getCookie ('PHPSESSID')); // 7nu9p0fvidvva6ouaugqcc8292
zloctb

2
প্লাস 1 - প্রশ্নের উত্তরের জন্য: "... ক্লায়েন্ট বা সার্ভারে সঞ্চিত?"
অ্যালেক্স ভার্গাস

22

এগুলি সাধারণত সার্ভারে সঞ্চিত থাকে। এগুলি যেখানে সংরক্ষণ করা হয়েছে তা বিকাশকারী হিসাবে আপনার উপর নির্ভর করে। আপনি session.save_handlerকনফিগারেশন ভেরিয়েবল এবং session_set_save_handlerসার্ভারে সেশনগুলি কীভাবে সংরক্ষণ করবেন তা নিয়ন্ত্রণ করতে ব্যবহার করতে পারেন । ডিফল্ট সংরক্ষণ পদ্ধতিটি ফাইলগুলিতে সেশন সংরক্ষণ করা। যেখানে তারা সংরক্ষণ হয় session.save_pathভেরিয়েবল দ্বারা নিয়ন্ত্রিত হয় ।


18

একটি সংযোজন: এটি লক্ষ করা উচিত যে "/ tmp" ডিরেক্টরিটি যেখানে সেশন ডেটা সংরক্ষণ করা হয় (যা ডিফল্ট মান বলে মনে হয়), "/ tmp" হিসাবে ওয়েব সার্ভারের পুনরায় বুট করার পরে সেশনগুলি স্থির থাকবে না "রিবুটের সময় প্রায়শই মুছে ফেলা হয়। ক্লায়েন্ট বুদ্ধিমান অধ্যবসায়ের ধারণাটি সার্ভারের স্টোরেজটির অধ্যবসায়ের সাথে দাঁড়িয়ে এবং পড়ে - যা "/ tmp" ডিরেক্টরিটি সেশন ডেটার জন্য ব্যবহার করা হলে ব্যর্থ হতে পারে।


13

ডেবিয়ান-এ (বেশিরভাগ লিনাক্স ডিস্ট্রোসের ক্ষেত্রে কি এটি হয় না?), এটি / var / lib / php5 / এ সংরক্ষণ করা হয়। উপরে উল্লিখিত হিসাবে, এটি আপনার php.ini এ কনফিগার করা আছে।


12

আমি উবুন্টু ব্যবহার করছি এবং আমার সেশনগুলি / var / lib / php5 এ সঞ্চিত আছে।


1
ধন্যবাদ, এটাই আমি চেয়েছিলাম হ্যাঁ, তারা যদি সাধারণ স্পটে না থাকে তবে আমাকে আইএনআই খুলতে হবে, তবে আমি কেবল জানতে চেয়েছিলাম "আরে, সেশনগুলি সাধারণত কোথায় সংরক্ষণ করা হয়?" / var / lib / পিএইচপি / সেশন / এটি হয়।
এরিক এল

7

মিঃ টেলর বলেছিলেন যে এটি সাধারণত php.ini এ সেট করা থাকে। সাধারণত এগুলি একটি নির্দিষ্ট ডিরেক্টরিতে ফাইল হিসাবে সংরক্ষণ করা হয়।


4

উবুন্টু 16.10 এর জন্য / var / lib / পিএইচপি / সেশন / এ সেশনগুলি সংরক্ষণ করা ...


0

এটা কিভাবে কাজ করে? কীভাবে জানবে যে এটা আমি?

বেশিরভাগ সেশনগুলি ব্যবহারকারীর কম্পিউটারে এমন একটি ব্যবহারকারী-কী (যা সেশনিড বলে পরিচিত) সেট করে যা দেখতে এরকম কিছু দেখায়: 765487cf34ert8dede5a562e4f3a7e12। তারপরে, যখন কোনও সেশনটি অন্য পৃষ্ঠায় খোলা হয়, এটি একটি ব্যবহারকারী-কীটির জন্য কম্পিউটারটি স্ক্যান করে এবং আপনার ভেরিয়েবলগুলি পেতে সার্ভারে চলে।

আপনি যদি ভুলভাবে ক্যাশে সাফ করেন তবে আপনার ব্যবহারকারী-কীটিও সাফ হয়ে যাবে। আপনি নিজের আইডি জানেন না বলে আপনি আর ভেরিয়েবলগুলি সার্ভার থেকে পেতে পারবেন না।


0

আমার উবুন্টুতে মেশিন সেশনগুলি সংরক্ষণ করা হয়

/var/lib/php/sessions

এবং আপনাকে sudo lsকেবল এই ডিরেক্টরিতে lsফেলতে হবে

ls: ডিরেক্টরি খুলতে পারে না '।': অনুমতি অস্বীকার করা হয়েছে

এবং আমার উইন্ডোজ ওয়্যাম্প সার্ভারে পিএইচপি সেশনগুলি সঞ্চিত হয়

C:\wamp64\tmp

এবং যদি আপনি উইন্ডোতে স্বতন্ত্র পিএইচপি ইনস্টল করেন তবে ডিফল্টরূপে কোনও মান সেট করা নেই

session.save_path => no value => no value

-1

উপরের উত্তরগুলির মধ্যে অনেকগুলি অস্বচ্ছ। আমার মতে এই প্রশ্নের লেখক কেবল সেশন ভেরিয়েবলগুলি ডিফল্টরূপে কোথায় সঞ্চয় করা হয় তা জানতে চান। এটি অনুসারে: https://canvas.seattlecentral.edu/courses/937693/pages/10-advanced-php-sessions এগুলি কেবল সার্ভারে ডিফল্টরূপে সঞ্চিত থাকে । আশা করি, অন্যরা এই অবদানটিকে অর্থবোধক বলে মনে করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.