চলুন পিএইচপি শেখা যাক ধাপে ধাপে [পর্ব-১২] :: GET Method

হ্যালো টিউনার ভাইয়ারা কেমন আছেন সবাই ??? ভালই আছেন মনে হয়। আমিও ভালই আছি। প্র্যাক্টিস কেমন হচ্ছে আপনাদের??? আমার প্র্যাক্টিস খুব একটা ভাল হচ্ছে না। কারন কাল থেকে আমার পরীক্ষা। তবুও লিখতে বসলাম। গত পর্বে আমরা একটা খুব গুরুত্তপুর্ণ্য বিষয় নিয়ে আলোচনা করেছিলাম। সেটা হল function নিয়ে একেবারে ব্যসিক ধারনা। আজ আমরা আরেকটি গুরুত্তপুর্ণ্য বিষয় নিয়ে আলচনা করব।
আপনারা হয়তো অনেক ওয়েব সাইট ভিসিট করেছেন। অনেক ওয়েব সাইট আছে যেখানে লগিন করার পর আপনার ব্রাউজারে বেশ হাবি-যাবি লিখা চলে আসে। যেমন মনে করুন আপনার ইউজারনেম পাসওয়ার্ড ইত্যাদি ব্রাউজারের অ্যাড্রেস বারে দেখায়। আবার অনেক ওয়েব সাইট আছে যেখানে লগিন করার পর ব্রাউজারে কোন ইনফরমেশন শো করে না। এরকম একটা ওয়েব সাইট হল ফেসবুক। লগিন করার পর দেখবেন আপনার ব্রাউজার এর অ্যাড্রেস বারে শুধু facebook.com লিখাটাই শো করবে। প্রশ্ন হতে পারে কেন এরকম আলাদা আলাদা হয়। এর কারন পিএইচপি তে ইউজারের কাছে থেকে ইনফরমেশন নেবার ২ টা মেথড আছে।
মেথড ২ টা হল:
- 1. get method
- 2. post method
GET method কি এবং কি কাজে লাগে????
আমরা সবাই ইউটিউবের কথা জানি। সেখানে দেখবেন প্রত্যেক টা ভিডিওর জন্য আলাদা আলাদা URL শো করে... কিন্তু একবার ভাবুনতো ইউটিউবের ওয়েব ডেভলপার রা কি প্রত্যেক টি ভিডিওর জন্য আলাদা আলাদা পেজ তৈরি করে??? উত্তরঃ না। আলাদা আলাদা করে পেজ তৈরিকরতে গেলে তাদের কত সময় লাগবে ভাবুন। আর ইউটিউবে প্রতিদিন লক্ষাধিক ভিডিও আপলোড হয়। তাহলে একদিনে কি এতগুলো পেজ তৈরি করা সম্ভব??? আসলে এটা অসম্ভব একটা ব্যাপার। তাহলে কিভাবে তারা এরকম কঠিন একটা কাজ সহজে করে??? এখানেই GET method এর কাজ। আমরা যখন ইউটিউবে কোন ভিডিওর উপর ক্লিক করি তখন তারা আমাদের ক্লিক করা থেকে ইনফরমেশন নেয় এবং সে অনুযায়ী ভিডিও আমাদের সামনে চলে আসে। আর ব্রাউজারের অ্যাড্রেস বারে বিভিন্ন হাবি জাবি লিখা দেয়। হয়ত আপনারা বুঝতে পেরেছেন GET method এর কাজ। আরো ভাল ভাবে বুঝতে একটা প্রোগ্রাম লিখাযাকঃ
1
2
3
4
5
6
| <?php $username = $_GET['username']; $password = $_GET['password']; echo 'welcome '.$username.' your password is '.$password;?> |
http://localhost/tutorial.php?username=techtunes&password=1234
(আমার ফাইল টা tutorial.php নামে সেভ করা আছে। তাই আমি http://localhost/tutorial.php ব্যবহার করেছি। আপনাদের যদি আলাদা নামে থাকে তাহলে সেই নামে রান করান। )
বাহ!! কি সুন্দরভাবে আমাদের ইউজারনেম এবং পাসওয়ার্ড টা শো করছে
প্রথম প্রোগ্রামটাতে আমরা কোন ইউজারনেম আর পাসওয়ার্ড সেট করিনি তাই ২ লাইন এরর আসেছিল। কিন্তু এবার প্রোগ্রাম টা চেঞ্জ না করেই ব্রাউজারে কয়েকটা ইনফরমেশন দিয়েই প্রোগ্রামটাকে ঠিক করে ফেললাম। GET method টার মৌলিক ধারনা এরকমই। শুধু ব্যসিক ধারনা শিখলেই হবে ??? এবার কিছু এডভান্স ধারনা দেয়া যাক।
সবাইকে একটা প্রশ্ন করি। আমার প্রোগ্রাম টা এবং দেয়া URL টা কি সবার ১০০% সঠিক মনে হচ্ছে??? হ্যা এটা ১০০% সঠিক। কিন্তু এর মধ্যে একটা সমস্যা আছে। আমি কখনো শুনিনি বা দেখিনি যে কোন ওয়েব সাইটে রেজিঃ করতে শুধু URL ব্যবহার করতে হয়। সব খানেই কিছু ফাকা বক্স থাকে সেখানে সব ইনফরমেশন দিতে হয়। তারপর রেজিঃ বাটানে ক্লিক করলে আপনার দেয়া ইনফরমেশন টা স্টোর করে এবং সেখান থেকে GET method অনুযায়ী কিছু তথ্য ব্রাউজারের এড্রেসবারে শো করে। তাহলে এ ব্যাপারে কিছু প্রোগ্রাম লিখা যাক। আপনাদের সহজ ভাবে বুঝানোর জন্য আমি এখানে ২ টা ফাকা ঘর তৈরি করব। যেখানে আমি আমার তথ্য লিখব। কি করে ফাকা ঘর তৈরি করবেন এবং ইনফরমেশন নিয়ে সেখানে সবমিট বাটান তৈরিকরবেন সেটা আসলে আমাদের পিএইচপি এর কাজ না। এটা এইচটিএমএল দিয়ে করতে হবে।আমি প্রথম পর্বেই বলে ছিলাম পিএইচপি শিখতে এইচটিএমএল এর ব্যাসিক টা জানা খুব দরকার। তাহলে চলুন প্রোগ্রাম লিখাযাকঃ
1
2
3
4
5
6
7
8
9
10
11
12
13
| <form action="tutorial.php" method="GET"> username:<input type="text" name="username"><br /> password:<input type="password" name="password"> <input type="submit" value="login"></form><?php $username = $_GET['username']; $password = $_GET['password']; echo 'welcome '.$username.' your password is '.$password;?> |
বাহ!!! কত্ত সহজ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <form action="tutorial.php" method="GET"> username:<input type="text" name="username"><br /> password:<input type="password" name="password"> <input type="submit" value="login"></form><?php $username = $_GET['username']; $password = $_GET['password']; if(isset($username)&&isset($password)){ echo 'welcome '.$username.' your password is '.$password; }?> |
এখন মনে করুন কেউ আমাদের ওয়েব সাইটে লগিন করার চেষ্টা করতেছে। কিন্তু ফর্ম এ কোন ইনফরমেশন দিচ্ছে না। তাহলেউ কি আমরা একি ভাবে welcome your password is টা প্রিন্ট করানো উচিৎ হবে??? মনে হয় না। সেখানে অন্যকোন মেসেজ শো করাতে হবে। যেমন যদি কেই আমাদের ওয়েব সাইটে লগিন করার সময় কোন ইনফরমেশন না দেয় তাহলে তাকে আমরা নতুন মেসেজ শো করাতে চাচ্ছি। আর সে মেসেজ টা হলঃ "Please give me your username and password"
তাহলে প্রোগ্রাম টা কেমন হবে??? এখানে আরেকটি নতুন অপারেটর ব্যবহার করব সেটা হল !empty। সবাই জানেন empty মানে খালি। তারমানে এটার কাজ হবে কোন ইনফরমেশন খালি আছে কিনা তা পরীক্ষা করা। !empty মানে খালি নয় (কারন আমি এখানে ! ব্যবহার করেছি) তাহলে প্রোগ্রাম লিখাযাক।
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| <form action="tutorial.php" method="GET"> username:<input type="text" name="username"><br /> password:<input type="password" name="password"> <input type="submit" value="login"></form><?php $username = $_GET['username']; $password = $_GET['password']; if(isset($username)&&isset($password)&&!empty($username)&&!empty($password)){ echo 'welcome '.$username.' your password is '.$password; } else{ echo'Please give me your username and password'; }?> |
"যদি সেট করা থাকে ইউজারনেম এবং পাসওয়ার্ড এবং empty না থাকে ইউজারনেম এবং পাসওয়ার্ড তাহলে প্রিন্ট করা হবে welcome '.$username.' your password is '.$password। অন্যথায় প্রিন্ট করা হবে Please give me your username and password "
আমার মনে হয় এবার সবাই ১০০ % ক্লিয়ার।
আরেকটা প্রশ্ন আপনাদের মনে জাগতে পারে সেটা হল ২ লাইন এরররর আসছে কেন??? এররর আসার কারন হল। আমরা প্রোগ্রাম লিখার সময় কোন ইউজারনেম এবং পাসওয়ার্ড লিখিনি বা নিদ্রিষ্ট কোন ইউজারনেম সিলেক্ট করিনি তাই ইউজার নেম না পাওয়াতে ১ টা এরর আর পাসওয়ার্ড না পাওয়াতে আরেকটা এররর দেখাচ্ছে। আর যখন আমরা কোন ইউজারনেম এবং পাসওয়ার্ড দিচ্ছি তখন আর এররর শো করছে না।
বিঃদ্রঃ method লিখার সময় অবশ্যই সব গুলো অক্ষর বড় হাতের অক্ষরে লিখবেন। যেমন: GET, POST
তাহলে মূল কথা কি হল GET method এর ক্ষেত্রে আপনার দেয়া ইনফরমেশন গুলো ব্রাউজারে শো করবে।আজ মনে হয় অনেক শেখা হয়ে গেল। তাই আজ বড় করলাম না। সামনের দিন আরো ভাল ভাল টিউটোরিয়াল আপনাদের জন্য আনার চেষ্টা কর। সে পর্যন্ত সবাই ভাল থাকুন সুস্থ থাকুন।
সবাইকে ধন্যবাদ।
এতে সদস্যতা:
মন্তব্যগুলি পোস্ট করুন (Atom)
কোন মন্তব্য নেই:
একটি মন্তব্য পোস্ট করুন