[Powered by Google Translate] [8 সপ্তাহ, ক্রমাগত] [ডেভিড জে Malan] [হার্ভার্ড বিশ্ববিদ্যালয়] [এটি CS50.] [CS50.TV] এটি CS50, তাই এই সপ্তাহ এখানে 8 শেষে. অবশ্যই আমরা হারিকেন এর একটি বিট ছিল এই সপ্তাহের শুরুর দিকে, তাই এখনই এটা সত্যিই আপনার এই বক্তৃতা কক্ষে এবং সম্পর্কে, কিন্তু আজ আমরা পিএইচপি সম্পর্কে আমাদের কথোপকথন অবিরত এবং ওয়েব প্রোগ্রামিং সম্পর্কে আরো সাধারণভাবে, এবং আমরা ধারণা প্রবর্তন করা ডেটাবেসের, বিশেষ করে এক মাইএসকিউএল, যা অত্যন্ত জনপ্রিয় এই দিন বলা হয়, কারণ তার বৃদ্ধির উদ্দেশ্যে হিসেবে তার কারণ হচ্ছে মুক্ত ও ওপেন সোর্স বড় অংশ. কিন্তু প্রথম, যেখানে আমরা বাকি শেষ সময় বন্ধ কটাক্ষপাত. পুনরাহ্বান যে আমরা বিভিন্ন Frosh আপনাকে IM উদাহরণ দিকে তাকিয়ে ছিল, এবং এই ফর্ম ছিল জঘন্য যে আমি কিছু 15 + বছর আগে ভেবে যাতে নবীন কোনো রাষ্ট্র, গোষ্ঠী, সংগঠন বা বিদ্যায়তনের মধ্যে অবস্থিত স্পোর্টসের জন্য ক্যাম্পাস নিবন্ধন উপর ছাত্র আছে স্থানান্তরণ যাও ছাড়া আসলে আর হচ্ছে গজ জুড়ে উইগ্লসওয়ার্থ যাও একটি কাগজ শারীরিক কিছু নায়ের এর দরজা নীচে টুকরা স্লাইড. এর পরিবর্তে আমরা সবকিছু অনলাইন স্থানান্তরিত, কিন্তু যে আমরা ব্যবহার করতে প্রয়োজন না কয়েক প্রযুক্তি, তাই এক, আমরা আপনাকে HTML, হাইপারটেক্সট মার্কআপ ভাষা প্রয়োজন, যা আবার এই মার্কআপ ভাষা যা দিয়ে আপনি ওয়েব পেজ গঠনের দিক দিয়া না. CSS এর একটি বিট ব্যবহার করে এই দিন, স্টাইল শীট cascading, যেখানে আমরা ওয়েব পৃষ্ঠার stylizations একটি কিছুটা ভিন্ন সিনট্যাক্স ব্যবহার, যেহেতু এইচটিএমএল ছিল উহার গঠন সম্পর্কে সব. আমরা একটি ওয়েব প্রোগ্রামিং ভাষা প্রবর্তন করা প্রয়োজন. এই ক্ষেত্রে, আমরা পিএইচপি ব্যবহার, এবং পিএইচপি আমাদের অনুমতি দিতে যাচ্ছে করব পরিবর্তনশীলরূপে আউটপুট হিসাবে কন্টেন্ট হিসাবে ভাল লেগেছে প্রোগ্রাম্যাটিক জিনিষ না ইমেল হিসাবে, ছিল নোট আমরা বাকি শেষ সপ্তাহে কেস. প্রত্যাহার করা যে এই কোড 2 অংশে ছিল. এক, আমরা froshims3.php ছিল, এবং এই ছিল একটি HTML ফর্ম এটা ভেতরে সঙ্গে মূলত মার্কআপ, CSS এর একটি ক্ষুদ্র শৈলী গুণাবলী মধ্যে বিট আপ করুন এখানে তাই যে ফর্ম মধ্যে পাতা, কিন্তু যে অতিক্রম করা হবে কেন্দ্রীভূত আমরা কিছু প্রতিনিধির ইনপুট ফর্ম, একটি টেক্সট ক্ষেত্রের, একটি চেকবক্স ছিল, কিছু রেডিও বাটন, একটি মেনু নির্বাচন করুন, এবং একটি submit 'বোতাম. এবং এই ফর্মের মাধ্যমে, আমরা একটি ফাইলে যে দৃশ্যত বলা হত register3.php জমা দেওয়া, যা নিজেই একটি ভালো সামান্য কিছু লাগছিল. এখন, register3.php, রিকল, কোড অধিকাংশ ছিল ইমেল সম্পর্কে সব. এটি একটি যাচাইকরণ সামান্য ফর্ম যে নিশ্চিত করা জমা ছিল বিট কি আসলে ক্ষেত্র প্রদান করা হয় যে প্রত্যাশিত ছিল. তারপর আমরা কিছু পিএইচপি ফাংশন বলা সামান্য নতুন সিন্টেক্স ব্যবহার করে, যদিও এটি সি এর থেকে ধার করা এই তীর অপারেটর আমাদের কিছু বলা অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ব্যবহার করতে সাহায্য করে. আমরা যে ঢোকা হবে না কোনো এখানে বিস্তারিতভাবে, কিন্তু এখন জানি এটা বস্তুর সঙ্গে যুক্ত থাকার ফাংশন একটি উপায়, যা একটি বিশেষ ধরনের গঠন, সি হিসাবে আমরা দেখেছি কিন্তু এখন জন্য, শুধুমাত্র বিশ্বাসের উপর নিতে হবে যে এটা সঠিক বাক্য গঠন ব্যবহার যখন এই PHPMailer গ্রন্থাগারের মত একটি লাইব্রেরি ব্যবহার করে. এই ফাইলের শেষে দ্বারা এবং তারপর আমরা পরিবর্তনশীল একটা ইমেল করে উত্পন্ন যে আমার jharvard@cs50.net অ্যাকাউন্টে পাঠানো হবে আমার একাউন্ট থেকে jharvard@cs50.net, এবং আমরা ব্যবহারকারী অতএব যে তারা এই ক্রীড়ায় জন্য করা হয়েছে নিবন্ধিত ছিল. যা প্রায় কাছাকাছি কি Frosh আপনাকে IM সাইট কি ঐ সমস্ত বছর আগে যখন আমি এটি প্রয়োগ করার জন্য, একটি ভিন্ন ভাষায় দেওয়া,, কিন্তু আপনি সম্ভবত দেখায় যে ক্ষমতা আছে এখন যে আপনি নিজেকে প্রকাশ না শুধুমাত্র programmatically পারেন একটি C-এর মতো একটি ভাষার মধ্যে নিম্ন স্তরের কিন্তু এ একটি অনেক উঁচু মাত্রার সঙ্গে এই অত্যন্ত বাস্তব ইমেল দুনিয়া অ্যাপ্লিকেশনের আসলে সমাধান কিছু বাস্তব বিশ্বের সমস্যা. অবশ্যই এখন,, যদিও আমি এই স্ক্রিপ্টের কিছু জেনারেট ব্যবহার jharvard@cs50.net, যা প্রকৃতপক্ষে একটি অ্যাকাউন্ট থেকে পরিবর্তনশীল ইমেল যে আমি এক্সেস আছে, খুব পাঠাতে সতর্ক থাকুন না অ্যাকাউন্ট যে আসলে আপনার নিজের থেকে শুধুমাত্র মেইল, পাছে জিনিস গরম জল একটি জীবনের বিট আপনাকে পেতে. সঙ্গে বলেন যে, এখন এর যাক একটি বিভিন্ন সমস্যা সমাধান সম্পূর্ণভাবে রূপান্তর, ধারনকারী রাজ্যের যে. এখন কি, আসলে এর মানে কি? HTTP-র ক্ষেত্রে, এই হাইপারটেক্সট ট্রান্সফার প্রোটকল, এটি আসলে একটি আড়ম্বরহীন প্রোটোকল, এবং এই কি উপায় হল যে যখন আপনি Google.com ভালো কিছু মুঠি ধরে টেনে তুলবো এবং তারপর এন্টার সাধারণত আপনার ব্রাউজার কাটনা আইকন কিছু আছে যা পরে কিছু ওয়েব পাতা ফলাফল ডাউনলোড হচ্ছে, এবং তারপর যে সামান্য আইকন স্টপ স্পিনিং, এবং যে প্রকৃতপক্ষে সুপারিশ যে HTTP-র সম্পূর্ণ সার্ভারের সাথে সংযোগ কিছু করেনি এবং যে এটি. HTTP-র অনুভূতি যে এটা বজায় রাখা না না এ হল আড়ম্বরহীন একটি সার্ভারে ক্রমাগত একই ভাবে স্কাইপ সংযোগ আছে Gchat অথবা HTTP-র সাথে আছে কারণ স্বতঃসিদ্ধ যে একবার আপনি একটি ওয়েব পাতা যে আয় করেছি. এখন, বাস্তবতা ফেসবুক এবং Google Maps-এর মত সাইটে এইসব দিন এবং টুইটার এবং আরো অনেক ভালো একটি গতিশীলতা আছে যদ্দ্বারা এমনকি পরে যে আইকনটি স্টপ কাটনা আসলে আপনি আরো আপডেট পেতে পারেন সার্ভার থেকে, আরো টুইট, আরো ফেসবুকে স্ট্যাটাস আপডেট এবং ভালো. এমনকি যে একটি পন্থা যা আমরা সপ্তাহে একটি বা দুটি কথা বলতে সম্পর্কে করব ব্যবহার করা হয় Ajax একটি ভাষা বলা হয় জাভাস্ক্রিপ্ট ব্যবহার হিসাবে পরিচিত, কিন্তু দিনের শেষে, HTTP-র এখনও দেশহীন. এবং এখনো যদি আপনি একরকম একটি ব্যবহারকারী সম্পর্কে জিনিষ মনে রাখতে চান এমনকি পরে তারা আপনার সার্ভার থেকে সংযোগ বিচ্ছিন্ন করেছি পিএইচপি আপনি এই কাজ করার উপায় সামর্থ্য আছে কারণ, আমরা শেষ সময় দেখেছি, পিএইচপি আছে superglobals একটি নম্বর, এবং একটি superglobal হয় আবার,, একটি বিশেষ বিশ্বব্যাপী পরিবর্তনশীল আপনি যে ওয়েব সার্ভার এবং পিএইচপি দ্বারা নিজেই হস্তান্তর করা হয়. আপনি যদি এটিকে মান করা না থাকে, এবং superglobals আমরা এইভাবে দেখা করেছি মধ্যে এবং পেতে হয় পোষ্ট, যা যেখানে ফর্ম ক্ষেত্রগুলি আপনার জন্য স্বয়ংক্রিয়ভাবে করা হয়, সেইসাথে অন্যদের একটি দম্পতি যে আমরা এখনো দেখা যায় না. এর মধ্যে $ _server ভিতরে কিছু বিশেষ সম্পর্কিত সার্ভার থেকে ভেরিয়েবল. IP ঠিকানা, কি প্রোটোকল, HTTP অথবা HTTPS দ্বারা আপনি কি এর ব্যবহার, কি অনুরোধ পদ্ধতি আপনি ব্যবহার এবং ভালো, তাই কিছু আকর্ষণীয় আছে, সার্ভার সম্পর্কে সরস বিবরণ, এবং সত্য, সেখানে ইউজার হিসাবে ভাল. $ _cookie, যা যেখানে এইসব জিনিস বলা কুকিজ সংরক্ষণ করা হয় নাই. আমরা কুকিজ সময় ব্যয় না করে নিজেদেরকে আজকের হবে, এখন জন্য কিন্তু জানেন যে একটি কুকি শুধুমাত্র একটি তথ্য ছোট সাইজের যে একটি ওয়েব সার্ভার একটি ওয়েব ব্রাউজারে নেওয়া হতে পারে এবং তার মধ্যে উপস্থিত RAM-র বা তার কম্পিউটারের হার্ড ড্রাইভ চালু একটি ব্যবহারকারী সম্পর্কে তথ্য সংরক্ষণ, উদাহরণস্বরূপ তাদের ইউজার নেম, যাতে তারা যতবার তারা লগ ইন অথবা কিছু যাও এটি টাইপ করতে হবে না অনন্য সংখ্যা বা সেই ব্যবহারকারীর জন্য শনাক্তকারী যাতে আপনার প্রশ্ন সম্পর্কে একই ধরনের সঙ্গে তাদের বিরক্ত করা হবে না পছন্দ ভবিষ্যতে, কিন্তু বেশিরভাগ ডান এখন হল $ _session. এই superglobal, যা, অন্যদের মত, আপনি পিএইচপি দ্বারা স্বয়ংক্রিয়ভাবে হস্তান্তর করা হয় যখন আপনি পিএইচপি-ভিত্তিক ওয়েবসাইটের লেখার আপনি যা চান, স্ট্রিং, ইন্টিজার সঞ্চয় করতে পারেন, ফ্লোটিং পয়েন্ট, মান, অ্যারে, বস্তু, সত্যিই কিছু করতে চান, এবং এটি আপনি যেমন একটি উপায় এটি সংরক্ষণ করতে পারবেন এমনকি আপনি যদি ব্যবহারকারীর এখন পরিদর্শন এবং তারপর এখন আসে বা 5 মিনিট থেকে থেকে একটি মিনিট এখন ফিরে কারণ তারা কিছু অন্যান্য লিঙ্ক ক্লিক করার আগে তাদের সময় লাগবে পিএইচপি যে যাই হোক না কেন আপনি যে সময় superglobal রাখা নিশ্চিত করা হবে একটি মিনিট বা 5 মিনিট আগে এখনও আছে যখন ব্যবহারকারী আয় হবে. এবং ফণা নীচে এই superglobal পথে দ্বারা প্রয়োগ করা হয় সেগুলো কুকি বলা হয়, কিন্তু এখন জন্য, এটি শুধু একটি বিমূর্ততা তদ্দ্বারা এটি একটি শপিং কার্টের প্রোগ্রাম্যাটিক সমতুল্য সাজান. যাই হোক না কেন আপনি, প্রোগ্রামার যে, ঠেলা superglobal এসসিয়েতিভ আরে সেখানে মিনিট পরে কিছু সংখ্যা হতে হবে যতক্ষন না আপনি বা মুছে দিন পর্যন্ত ব্যবহারকারী তার বা তার ব্রাউজার সম্পূর্ণভাবে শোধবোধ হয়ে যাওয়া. চলুন কিভাবে আসলে এই জিনিষ ব্যবহার করা হয় একটি উদাহরণ কটাক্ষপাত করা. ইন কোড আজকের এর টুকরা মধ্যে counter.php আমরা নিম্নোক্ত পংক্তিটি উপস্থিত আছে. এই ফাইলটি শুরু আমরা নীল মতামত, যা এখন জন্য শুষ্ক হয় একটি গুচ্ছ আছে. কিন্তু লাইন 13 সালে আমরা একটি নতুন লাইন আছে, session_start, এবং যে আসলে ঠিক কি বলছেন. এটা সেশান আরম্ভ করা হয়. এটা যে বড় superglobal $ _session ব্যবহার করতে সক্ষম, এবং এটা যে হিসাবে হিসাবে সহজ. এখন, যদি আমরা লাইন 16 তাকান এগিয়ে যেতে, কিছু যাও জিনিসটা কি এই ওয়েব পেজ করতে হবে চেষ্টা করুন. যদি (isset ($ _SESSION ["কাউন্টার"]) এগিয়ে যান পাল্টা পরিবর্তনশীল এবং দোকান, ছোট হাতের অক্ষর ব্যবহার পাল্টা, $ _SESSION ["কাউন্টার"]. এই মনে হচ্ছে একটা স্থানীয় পরিবর্তনশীল নামক পাল্টা ঘোষণা করা হবে ভিতরে যা তা যাই হোক না কেন superglobal ভেতরে হল একটি কপি নির্বাণ এর অবস্থান এ সময় বলা হয় "প্রতি." অন্যথায়, দৃশ্যতঃ এই সামান্য স্থানীয় পরিবর্তনশীল পাল্টা, 0 সক্রিয়া করা হয়. কিন্তু কয়েক লাইন পরে 26 বিজ্ঞপ্তি যে কাউন্টার সময় এর কপি, তার কি, একটি নতুন মান নির্ধারিত হয় যা তার বর্তমান মূল্য 1 যোগ হয়েছে. সংক্ষেপে, এই ফাইল আপডেট করার সময় মনে করা যাও একটি পাল্টা যে সময় superglobal মধ্যে এর ভিতরে সঞ্চিত 1 দ্বারা এটি বৃদ্ধিশীল, কিন্তু এটি দ্বারা প্রথম পূর্ববর্তী মান একটি কপি অপরিবর্তিত একটি স্থানীয় পরিবর্তনশীল তা মজুত করে বলা $ পাল্টা, এবং তারপর নিচে এখানে কিছু কি থাকবে দেখুন. এটি সক্রিয় আউট এটি বেশ অনেক মাত্র HTML এ. এই পৃষ্ঠার নীচের অংশে আমরা লাইন 37 দেখতে যে আমি এই সাইটটি পরিদর্শন করেছেন বার পাল্টা নম্বর, তাই এখানে আছে একটি দম্পতি আকর্ষণীয় বৈশিষ্ট্য. এক, এই ব্যাখ্যা স্পষ্টতই একটি পরিবর্তনশীল, কিন্তু এটা ঠিক করা না চলা আপনার HTML এর কারণ অবশ্যই শরীরের $ পাল্টা যদি এটা আপনার HTML পিএইচপি মধ্যে শুধু আছে যে শুধু এইচটিএমএল অনুমান করা যাচ্ছে. আপনি আক্ষরিক চান $ পর্দায় মুদ্রিত করা পাল্টা. কিন্তু এর পরিবর্তে দ্বারা পিএইচপি মোডে ড্রপ সিনট্যাক্স এই টুকরা সঙ্গে আমরা পরিবর্তনশীল একটা মান সন্নিবেশ করতে পারেন আত্মা খুব অনুরূপ কি আমরা শেষ সময় কি যাও স্ট্রিং মধ্যে মান সন্নিবেশ. বস্তুত, এই মাত্র একটি ভালো কিছু আক্ষরিক বলছে সাঁটে লেখার জন্য স্বরলিপি, মুদ্রণ ($ পাল্টা), এমনকি বা printf (% s, পাল্টা) ভালো কিছু, এমনকি, আপনার হিসাবে দেখা অনলাইন বা পাঠ্যবই থাকতে পারে, পিএইচপি একটি ফাংশন বলা প্রতিধ্বনি আছে যা একই জিনিস আছে, এবং যারা সব ঠিক আর বিরক্তিকর উপায় এর বলছে