করছেন $_SESSIONভেরিয়েবল ক্লায়েন্ট বা সার্ভারে সংরক্ষণ করা?
করছেন $_SESSIONভেরিয়েবল ক্লায়েন্ট বা সার্ভারে সংরক্ষণ করা?
উত্তর:
$_SESSIONপরিবর্তনশীল স্টোরেজের অবস্থানটি পিএইচপি এর session.save_pathকনফিগারেশন দ্বারা নির্ধারিত হয় । সাধারণত এটি /tmpলিনাক্স / ইউনিক্স সিস্টেমে থাকে। আপনার ডোমেনের phpinfo()মধ্যে এই সামগ্রীটি দিয়ে কোনও ফাইল তৈরি করে 100% নিশ্চিত না হলে আপনার নির্দিষ্ট সেটিংস দেখতে ফাংশনটি ব্যবহার করুন DocumentRoot:
<?php
phpinfo();
?>
এই কনফিগারেশন সেটিংসে পিএইচপি ডকুমেন্টেশনের লিঙ্কটি এখানে রয়েছে:
http://php.net/manual/en/session.configuration.php#ini.session.save-path
ইতিমধ্যে উল্লিখিত হিসাবে, বিষয়বস্তু সার্ভারে সংরক্ষণ করা হয়। তবে সেশনটি একটি সেশন-আইডি দ্বারা চিহ্নিত করা হয় যা ক্লায়েন্টে সঞ্চিত থাকে এবং প্রতিটি অনুরোধের সাথে প্রেরণ করে। সাধারণত সেশন-আইডি একটি কুকিতে সংরক্ষণ করা হয় তবে এটি ইউআরএলগুলিতে যুক্তও হতে পারে। (এটি PHPSESSIDআপনি কোয়েরি-প্যারামিটারটি কখনও কখনও দেখেন)
এগুলি সাধারণত সার্ভারে সঞ্চিত থাকে। এগুলি যেখানে সংরক্ষণ করা হয়েছে তা বিকাশকারী হিসাবে আপনার উপর নির্ভর করে। আপনি session.save_handlerকনফিগারেশন ভেরিয়েবল এবং session_set_save_handlerসার্ভারে সেশনগুলি কীভাবে সংরক্ষণ করবেন তা নিয়ন্ত্রণ করতে ব্যবহার করতে পারেন । ডিফল্ট সংরক্ষণ পদ্ধতিটি ফাইলগুলিতে সেশন সংরক্ষণ করা। যেখানে তারা সংরক্ষণ হয় session.save_pathভেরিয়েবল দ্বারা নিয়ন্ত্রিত হয় ।
একটি সংযোজন: এটি লক্ষ করা উচিত যে "/ tmp" ডিরেক্টরিটি যেখানে সেশন ডেটা সংরক্ষণ করা হয় (যা ডিফল্ট মান বলে মনে হয়), "/ tmp" হিসাবে ওয়েব সার্ভারের পুনরায় বুট করার পরে সেশনগুলি স্থির থাকবে না "রিবুটের সময় প্রায়শই মুছে ফেলা হয়। ক্লায়েন্ট বুদ্ধিমান অধ্যবসায়ের ধারণাটি সার্ভারের স্টোরেজটির অধ্যবসায়ের সাথে দাঁড়িয়ে এবং পড়ে - যা "/ tmp" ডিরেক্টরিটি সেশন ডেটার জন্য ব্যবহার করা হলে ব্যর্থ হতে পারে।
আমি উবুন্টু ব্যবহার করছি এবং আমার সেশনগুলি / var / lib / php5 এ সঞ্চিত আছে।
মিঃ টেলর বলেছিলেন যে এটি সাধারণত php.ini এ সেট করা থাকে। সাধারণত এগুলি একটি নির্দিষ্ট ডিরেক্টরিতে ফাইল হিসাবে সংরক্ষণ করা হয়।
এটা কিভাবে কাজ করে? কীভাবে জানবে যে এটা আমি?
বেশিরভাগ সেশনগুলি ব্যবহারকারীর কম্পিউটারে এমন একটি ব্যবহারকারী-কী (যা সেশনিড বলে পরিচিত) সেট করে যা দেখতে এরকম কিছু দেখায়: 765487cf34ert8dede5a562e4f3a7e12। তারপরে, যখন কোনও সেশনটি অন্য পৃষ্ঠায় খোলা হয়, এটি একটি ব্যবহারকারী-কীটির জন্য কম্পিউটারটি স্ক্যান করে এবং আপনার ভেরিয়েবলগুলি পেতে সার্ভারে চলে।
আপনি যদি ভুলভাবে ক্যাশে সাফ করেন তবে আপনার ব্যবহারকারী-কীটিও সাফ হয়ে যাবে। আপনি নিজের আইডি জানেন না বলে আপনি আর ভেরিয়েবলগুলি সার্ভার থেকে পেতে পারবেন না।
আমার উবুন্টুতে মেশিন সেশনগুলি সংরক্ষণ করা হয়
/var/lib/php/sessions
এবং আপনাকে sudo lsকেবল এই ডিরেক্টরিতে lsফেলতে হবে
ls: ডিরেক্টরি খুলতে পারে না '।': অনুমতি অস্বীকার করা হয়েছে
এবং আমার উইন্ডোজ ওয়্যাম্প সার্ভারে পিএইচপি সেশনগুলি সঞ্চিত হয়
C:\wamp64\tmp
এবং যদি আপনি উইন্ডোতে স্বতন্ত্র পিএইচপি ইনস্টল করেন তবে ডিফল্টরূপে কোনও মান সেট করা নেই
session.save_path => no value => no value
উপরের উত্তরগুলির মধ্যে অনেকগুলি অস্বচ্ছ। আমার মতে এই প্রশ্নের লেখক কেবল সেশন ভেরিয়েবলগুলি ডিফল্টরূপে কোথায় সঞ্চয় করা হয় তা জানতে চান। এটি অনুসারে: https://canvas.seattlecentral.edu/courses/937693/pages/10-advanced-php-sessions এগুলি কেবল সার্ভারে ডিফল্টরূপে সঞ্চিত থাকে । আশা করি, অন্যরা এই অবদানটিকে অর্থবোধক বলে মনে করবে।