[Powered by Google Translate] [পিএইচপি সেশন] [টমি MacWilliam, হার্ভার্ড বিশ্ববিদ্যালয়] [এটি CS50.] [CS50.TV] পিএইচপি সেশন কার্যকারিতা বাস্তবায়ন করা যাবে, ইউজার লগইন মত, আপনার ওয়েব অ্যাপ্লিকেশন. পিএইচপি সেশন যখন আপনি তথ্য সংযুক্ত করার অনুমতি ব্যবহারকারীর সম্পূর্ণ ব্রাউজিং সেশনের সাথে বরং কেবল একটি একক পাতা তুলনায়. ব্যবহারকারী আপনার ওয়েবসাইট আপ যে বিভিন্ন পিএইচপি পেজ পরিদর্শন হিসাবে সুতরাং যে, এর অর্থ সেশনে কোনো তথ্য জিদ করা হবে. যাতে এর মানে হল যে একটি পৃষ্ঠা দ্বারা সেশন সংরক্ষিত তথ্য পরে অন্য পৃষ্ঠাতে দ্বারা ব্যবহার করা যেতে পারে. একটি সেশনে তথ্য সংরক্ষণ করা সহজ, এবং আমরা, আন্ডারস্কোর, ডলার সাইন মাধ্যমে তাই রাজধানী SESSION পরিবর্তনশীল করবেন. ডলার চিহ্ন, GET, আন্ডারস্কোর, SESSION-শুধু ডলার চিহ্ন মত, আন্ডারস্কোর এবং ডলার চিহ্ন,, আন্ডারস্কোর পোষ্ট- কী মান জোড়া গঠিত একটি মিশুক অ্যারে. সুতরাং আমরা,, SESSION আন্ডারস্কোর, সিনট্যাক্স মত ডলার চিহ্ন ব্যবহার করতে পারেন বন্ধনী, কোট, foo বিন্যাস, কোট, বন্ধনী,, কোট, সমান দণ্ড, উদ্ধৃতি, কি 'র মান "বার" সংরক্ষণ "foo বিন্যাস." যাইহোক, আমরা লিখতে বা সময় অ্যারে থেকে পড়তে পারেন, আগে আমরা একটি বিশেষ ফাংশন-কল করতে হবে সময়,) (,, শুরু আন্ডারস্কোর - এবং এই সময় আরম্ভ হবে. তাই এর একটি উদাহরণ কটাক্ষপাত করা যাক. আমাদের প্রথম পাতা, hello.php, ব্যবহারকারী যাও আউটপুট কিছু তথ্য সময় ব্যবহার করে. আমরা কোনো সময় তথ্য অ্যাক্সেস করতে পারেন আগে আমরা session_start ব্যবহার করতে হবে, মনে রাখবেন. এখন আমরা একটি কী বিদ্যমান কিনা তা পিএইচপি এর isset ব্যবহার করছেন $ _SESSION মিশুক অ্যারের মধ্যে. যে চাবি উপস্থিত থাকলে যে, ইউজার লগ ইন করেনি মানে তাই আমরা ব্যবহারকারীর নাম প্রদর্শন করব. যে কি সেট না করা হয়, যে, ব্যবহারকারী এখনো লগ ইন নি মানে তাই আমরা login.php একটি লিঙ্ক প্রদর্শন করব. সুতরাং আসুন login.php কটাক্ষপাত করা যাক. নিচে এখানে, আমরা একটি একক ইনপুট সঙ্গে একটি এইচটিএমএল ফর্ম আছে. ফর্ম এর কর্মের বৈশিষ্ট্য, $ _SERVER ['PHP_SELF'] হয় এবং এই সহজভাবে, আমরা ফর্ম বর্তমান ফাইলে জমা দিতে চাই যে মানে যা এই ক্ষেত্রে, login.php হয়. সুতরাং আসুন ফিরে এই ফাইলের উপরে যান. ব্যবহারকারী ফর্ম জমা, তাহলে $ _POST ['নাম'] নির্ধারণ করা আবশ্যক. এইচটিএমএল ফর্ম এবং পোস্ট সম্পর্কে আরও তথ্যের জন্য, পিএইচপি ওয়েব ডেভেলপমেন্ট ভিডিও চেক আউট. ব্যবহারকারী ফর্ম জমা করেছিল সেই ক্ষেত্রে, আমরা তারা সেশনের মধ্যে টাইপ করা যে মান লিখতে চাই. এখন আমরা hello.php ব্যবহারকারী পুনর্নির্দেশ করতে পারেন. আমরা সেশনের মধ্যে ব্যবহারকারীর ইনপুট সংরক্ষিত করেছি কারণ, hello.php login.php মধ্যে সেট ছিল যে মান অ্যাক্সেস করতে সক্ষম হবে. তাই আসুন এই একটি ওয়েব ব্রাউজারে পরীক্ষা করা যাক. প্রথমত, আমরা http://localhost/hello.php নেভিগেট করব. আমরা, আমরা এখনো লগ ইন না করা এখানে দেখতে পারেন তাই এর login.php আমাদের পুনঃনির্দেশিত করা হবে যা প্রবেশ করুন লিংক, ক্লিক করা যাক. ঠিক আছে, আমি তখন সময় সংরক্ষণ করা হবে, যা আমার নাম টাইপ করব. গ্রেট! এখন আমরা সেশনের মাধ্যমে hello.php নেভিগেশন login.php থেকে আমার ইনপুট দেখতে পারেন. সুতরাং, কি ব্যবহারকারীর আউট লগিং সম্পর্কে কি? ওয়েল, ইউজার লগ ইন করার জন্য, আমরা শুধু সময় নামের মধ্যে একটি মান সংরক্ষণ করা. তাই আউট ইউজার লগ ইন করতে, আমরা শুধু যে নাম কি সরিয়ে ফেলা আবশ্যক অধিবেশন অ্যারে থেকে. সুতরাং logout.php, এর এই শেষ ফাইলটি কটাক্ষপাত করা যাক. আবার, আমরা) (session_start কল করতে হবে আমরা কিছু সম্পর্কিত সময় কি করতে পারেন আগে. এখন আমরা কেবল) (session_destroy কল করতে পারেন সময় সব তথ্য পরিত্রাণ যত্ন নিতে হবে যা এবং তারপর ফিরে hello.php ব্যবহারকারী পুনর্নির্দেশ. তাই আমি লগ আউট লিঙ্কে ক্লিক করুন যদি, আমরা সার্ভার আমি কে ভুলে গেছে দেখতে পারেন, এবং আমি আর লগইন am তাই কি ফণা নীচে এখানে করছেন? আমরা শুধু দেখেছি আচরণ পান করার জন্য, আমাদের সার্ভার 2 কিছু করার প্রয়োজন. প্রথমত, সার্ভার একরকম সেশনে তথ্য সংরক্ষণ করা প্রয়োজন. একটি ওয়েবসাইট গঠন করে বিভিন্ন পিএইচপি ফাইল পিএইচপি ইন্টারপ্রেটার এর পৃথক আমন্ত্রণ হিসেবে মৃত্যুদন্ড কার্যকর করা হয় তাই স্থানীয় পরিবর্তনশীল তাদের মধ্যে ভাগ করা যাবে না. পরিবর্তে, সার্ভার আমাদের সময় তথ্য সংরক্ষণ করা প্রয়োজন কিছু জায়গায় একাধিক. পিএইচপি ফাইল ব্যবহার করতে পারবেন. দ্বিতীয়ত, সার্ভার শুধুমাত্র আমার ব্রাউজিং সেশনের সঙ্গে সময় তথ্য সংযুক্ত করা প্রয়োজন. আমি ফেসবুকে লগইন, যখন এছাড়াও একই সময়ে ফেসবুক এ লগ অন্যান্য লাখ লাখ মানুষের সম্ভবত আছে. কিন্তু সার্ভার আমার তথ্য সংযুক্ত কিছু উপায় প্রয়োজন আমার বর্তমান সময় এবং অন্য সময় সাথে অন্য কারো তথ্য দিয়ে. সৌভাগ্য যে, পিএইচপি এর লেখক, আমাদের জন্য এই প্রায় সব চিন্তা তাই আমরা এই কোন নিজেদেরকে বাস্তবায়ন করতে হবে না. কিন্তু এর পিএইচপি ডিফল্ট কী জন্য কটাক্ষপাত করা যাক. আমি প্রথমবার session_start ধারণকারী একটি পিএইচপি পাতা পরিদর্শন করার সময়, পিএইচপি একটি বৃহৎ র্যান্ডম মান উত্পন্ন করবে. Session_destroy বলা বা করা হয় আমি একটি জন্য যে সাইটে কোন পিএইচপি পেজ দেখার না যখন-পর্যন্ত যে র্যান্ডম এবং সম্ভবত অনন্য মূল্য আমার সঙ্গে যুক্ত করা হবে. এই ভাবে সার্ভারে আমার ব্রাউজিং সেশনের চিহ্নিত কিছু উপায় আছে অন্য কারো থেকে ভিন্ন. আমরা বর্তমান সেশন আইডি একবার দেখে নিতে পারেন পিএইচপি ফাংশন, session_ID ব্যবহার করে. এখানে আমরা কেবল আমাদের সময় শনাক্তকারী মান outputting করছি. তাই আমরা আবার যেমন ওয়েব অ্যাপ্লিকেশন লগইন হলে, এবং এখন sessid.php নেভিগেট, আমরা অক্ষরের এই দীর্ঘ স্ট্রিং দেখতে পাবেন, এবং যে আমার সেশনের জন্য বর্তমান আইডেন্টিফায়ার এর, এবং যে সার্ভারের আমি কে অবগত থাকার হয় কিভাবে. ঠিক আছে, কিন্তু আমরা কেবলমাত্র অর্ধেক সমস্যার সমাধান করেছি. নিশ্চিত, সার্ভার এখন আমাকে চিহ্নিত কিছু উপায় আছে, আমি অন্য পৃষ্ঠাতে যান কিন্তু যখন সার্ভার যে একই আইডেন্টিফায়ার পুনরায় ব্যবহার করা প্রয়োজন বরং একটি নতুন উৎপাদিত তুলনায়. আমি foo.php মধ্যে একটি স্থানীয় ভেরিয়েবল ডিক্লেয়ার করলে, মনে রেখো এবং তারপর, bar.php যান bar.php foo.php কি ঘটেছে বুদ্ধিমান কোন উপায় আছে. তাই ডিফল্ট পিএইচপি সেশন বাস্তবায়ন ব্রাউজার সার্ভার স্মরণ করিয়ে প্রয়োজন যে যা সেশন আইডি ব্যবহার. এটি একটি কুকি আকারে বাস্তবায়িত হয়. একটি কুকি ইন একটি সুস্বাদু জলখাবার-ছাড়াও কেবল আপনার কম্পিউটারে একটি ছোট টেক্সট ফাইল একটি সার্ভার ওয়েব ব্রাউজারের মাধ্যমে লিখতে পারেন. , পিএইচপি session_start মাধ্যমে আমার অনন্য সেশন আইডি তৈরি করে পরে তাই এটি একটি স্থানীয় টেক্সট ফাইল, অথবা একটি কুকি মধ্যে যে আইডেন্টিফায়ার সংরক্ষণ ওয়েব ব্রাউজার বলতে যাচ্ছে. এরপর ওয়েব ব্রাউজার প্রতি অনুরোধ যে শনাক্তকারী অন্তর্ভুক্ত করা হবে এটি সার্ভারে করে. সত্যিই তাই, ওয়েব সার্ভার আমি কে মনে করা হয় না. পরিবর্তে, ওয়েব ব্রাউজার সহজভাবে অনন্য শনাক্তকারী মনে হয় যে পিএইচপি দ্বারা উত্পন্ন এবং তারপর ক্রমাগত সার্ভার স্মারক ছিল কি যে আইডেন্টিফায়ার হয়. আমার ইউজার নেম মত এই ভাবে, তথ্য সার্ভার না আমার ওয়েব ব্রাউজারের মধ্যে সংরক্ষিত হয়. ব্রাউজার কেবল পিএইচপি যে তথ্য সংরক্ষিত যেখানে সার্ভার বলে তাই পিএইচপি তা উদ্ধার করতে পারেন. সুতরাং যে পিএইচপি আসলে এই তথ্য সংরক্ষণকারী যেখানে প্রশ্ন begs? ডিফল্টরূপে, পিএইচপি আপনার সময় তথ্য সংরক্ষণ করবে / tmp, বা 'temp' ফোল্ডার এর ভিতর একটা ফাইলে. পিএইচপি নির্ধারণ করতে পারবেন তাই যে ফাইলের নামের সেশন আইডি অন্তর্ভুক্ত করা হবে যা ফাইল পড়তে এবং শুধুমাত্র সময় আইডি মাধ্যমে থেকে লিখতে. ঠিক আছে. সুতরাং আসুন ক্রোম এর ডিবাগার মধ্যে নেটওয়ার্ক ট্যাব খুলুন উপরের ডানদিকে রেঞ্চ আইকনে মাধ্যমে. এখন আসুন আবার hello.php আগাইয়া যাক. এর hello.php যাও HTTP-র অনুরোধ ক্লিক যাক এবং তারপর শিরোলেখ ক্লিক করুন. এখানে আমরা, কুকি হেডার PHPSESSID নামক একটি কী রয়েছে দেখতে পারেন অথবা পিএইচপি সেশন আইডি-সঙ্গে আমরা দেখেছি যে একই দীর্ঘ স্ট্রিং যে একটি মান আমরা sessid.php পরিদর্শন করেন যখন. এই ব্রাউজার ব্যবহার করা উচিত কি সেশন আইডি সার্ভার স্মারক হয় ঠিক কিভাবে হয়. এটি একটি HTTP হেডার তা সহ এর. ঠিক আছে. এর পিছনে টার্মিনাল আগাইয়া যাক. এর পিএইচপি ডিফল্টরূপে সময় তথ্য জমা করার যেখানে / tmp, নেভিগেট করা যাক. নিশ্চিত যথেষ্ট, এই অস্থায়ী ফোল্ডার এর ভিতর, এখানে একই সঠিক সময় আইডি ধারণকারী একটি ফাইল আছে. আমরা এই ফাইলটি খুলুন, আমরা পিএইচপি ডিস্কে আমার সময় প্রতিনিধিত্বমূলক হয় দেখতে পারেন. এখানে স্ট্রিং "টমি" ', নাম' কি 'র জন্য সংরক্ষণ করা হচ্ছে যা আমরা আশা ছিল ঠিক কি হয়. এবং যে পিএইচপি সেশন এর একটি ওভারভিউ. আমরা কি শুধু দেখেছি সেশনে মাত্র ডিফল্ট বাস্তবায়ন ছিল. আসলে, অনেক ওয়েবসাইটের এই ডিফল্ট আচরণ পরিবর্তন আরো দক্ষতার পিএইচপি সেশন সংরক্ষণ কর্মক্ষমতা উন্নত স্বার্থে. আমার নাম টমি, এবং এই CS50. [CS50.TV]