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

চলুন পিএইচপি শেখা যাক ধাপে ধাপে

php

হ্যালো টিউনার ভাইয়ারা কেমন আছেন সবাই ??? ভালই আছেন মনে হয়। আমিও ভালই আছি। প্র্যাক্টিস কেমন হচ্ছে আপনাদের??? আমার প্র্যাক্টিস খুব একটা ভাল হচ্ছে না। কারন কাল থেকে আমার পরীক্ষা। তবুও লিখতে বসলাম। গত পর্বে আমরা একটা খুব গুরুত্তপুর্ণ্য বিষয় নিয়ে আলোচনা করেছিলাম। সেটা হল function নিয়ে একেবারে ব্যসিক ধারনা। আজ আমরা আরেকটি গুরুত্তপুর্ণ্য বিষয় নিয়ে আলচনা করব।

আপনারা হয়তো অনেক ওয়েব সাইট ভিসিট করেছেন। অনেক ওয়েব সাইট আছে যেখানে লগিন করার পর আপনার ব্রাউজারে বেশ হাবি-যাবি লিখা চলে আসে। যেমন মনে করুন আপনার ইউজারনেম পাসওয়ার্ড ইত্যাদি ব্রাউজারের অ্যাড্রেস বারে দেখায়। আবার অনেক ওয়েব সাইট আছে যেখানে লগিন করার পর ব্রাউজারে কোন ইনফরমেশন শো করে না। এরকম একটা ওয়েব সাইট হল ফেসবুক। লগিন করার পর দেখবেন আপনার ব্রাউজার এর অ্যাড্রেস বারে শুধু facebook.com লিখাটাই শো করবে। প্রশ্ন হতে পারে কেন এরকম আলাদা আলাদা হয়। এর কারন পিএইচপি তে ইউজারের কাছে থেকে ইনফরমেশন নেবার ২ টা মেথড আছে।

মেথড ২ টা হল:

  • 1. get method
  • 2. post method

আজ আমরা get method নিয়ে আলোচনা করব।

GET method কি এবং কি কাজে লাগে????

আমরা সবাই ইউটিউবের কথা জানি। সেখানে দেখবেন প্রত্যেক টা ভিডিওর জন্য আলাদা আলাদা URL শো করে... কিন্তু একবার ভাবুনতো ইউটিউবের ওয়েব ডেভলপার রা কি প্রত্যেক টি ভিডিওর জন্য আলাদা আলাদা পেজ তৈরি করে??? উত্তরঃ না। আলাদা আলাদা করে পেজ তৈরিকরতে গেলে তাদের কত সময় লাগবে ভাবুন। আর ইউটিউবে প্রতিদিন লক্ষাধিক ভিডিও আপলোড হয়। তাহলে একদিনে কি এতগুলো পেজ তৈরি করা সম্ভব??? আসলে এটা অসম্ভব একটা ব্যাপার। তাহলে কিভাবে তারা এরকম কঠিন একটা কাজ সহজে করে??? এখানেই GET method এর কাজ। আমরা যখন ইউটিউবে কোন ভিডিওর উপর ক্লিক করি তখন তারা আমাদের ক্লিক করা থেকে ইনফরমেশন নেয় এবং সে অনুযায়ী ভিডিও আমাদের সামনে চলে আসে। আর ব্রাউজারের অ্যাড্রেস বারে বিভিন্ন হাবি জাবি লিখা দেয়। হয়ত আপনারা বুঝতে পেরেছেন GET method এর কাজ। আরো ভাল ভাবে বুঝতে একটা প্রোগ্রাম লিখাযাকঃ

<?php
	$username = $_GET['username'];
	$password = $_GET['password'];

	echo 'welcome '.$username.' your password is '.$password;
?>

প্রোগ্রামটাকে রান করান দেখুন তো কি আসে??? ২ লাইন এরর তারপর তৃতীয় লাইনে welcome your password is। বাস শেষ !!!! কিন্তু এরর আসল কেন??? এবার এই URL টা ব্রাউজারে লোড করান দেখি।
http://localhost/tutorial.php?username=techtunes&password=1234

(আমার ফাইল টা tutorial.php নামে সেভ করা আছে। তাই আমি http://localhost/tutorial.php ব্যবহার করেছি। আপনাদের যদি আলাদা নামে থাকে তাহলে সেই নামে রান করান। )

বাহ!! কি সুন্দরভাবে আমাদের ইউজারনেম এবং পাসওয়ার্ড টা শো করছে 🙂 মানে ব্যাপারটা কি হল???

প্রথম প্রোগ্রামটাতে আমরা কোন ইউজারনেম আর পাসওয়ার্ড সেট করিনি তাই ২ লাইন এরর আসেছিল। কিন্তু এবার প্রোগ্রাম টা চেঞ্জ না করেই ব্রাউজারে কয়েকটা ইনফরমেশন দিয়েই প্রোগ্রামটাকে ঠিক করে ফেললাম। GET method টার মৌলিক ধারনা এরকমই। শুধু ব্যসিক ধারনা শিখলেই হবে ??? এবার কিছু এডভান্স ধারনা দেয়া যাক।
সবাইকে একটা প্রশ্ন করি। আমার প্রোগ্রাম টা এবং দেয়া URL টা কি সবার ১০০% সঠিক মনে হচ্ছে??? হ্যা এটা ১০০% সঠিক। কিন্তু এর মধ্যে একটা সমস্যা আছে। আমি কখনো শুনিনি বা দেখিনি যে কোন ওয়েব সাইটে রেজিঃ করতে শুধু URL ব্যবহার করতে হয়। সব খানেই কিছু ফাকা বক্স থাকে সেখানে সব ইনফরমেশন দিতে হয়। তারপর রেজিঃ বাটানে ক্লিক করলে আপনার দেয়া ইনফরমেশন টা স্টোর করে এবং সেখান থেকে GET method অনুযায়ী কিছু তথ্য ব্রাউজারের এড্রেসবারে শো করে। তাহলে এ ব্যাপারে কিছু প্রোগ্রাম লিখা যাক। আপনাদের সহজ ভাবে বুঝানোর জন্য আমি এখানে ২ টা ফাকা ঘর তৈরি করব। যেখানে আমি আমার তথ্য লিখব। কি করে ফাকা ঘর তৈরি করবেন এবং ইনফরমেশন নিয়ে সেখানে সবমিট বাটান তৈরিকরবেন সেটা আসলে আমাদের পিএইচপি এর কাজ না। এটা এইচটিএমএল দিয়ে করতে হবে।আমি প্রথম পর্বেই বলে ছিলাম পিএইচপি শিখতে এইচটিএমএল এর ব্যাসিক টা জানা খুব দরকার। তাহলে চলুন প্রোগ্রাম লিখাযাকঃ

<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;
?>

হুম এবার একটি ফর্ম চলে আসছে। ইউজারনেম এবং পাসওয়ার্ড এর জন্য। এবার পেজ টা কে রিলোড করলে দেখতে পাবেন ২ লাইন এররর তারপর লিখা প্রিন্ট হয়েছে welcome your password is। এবার আমাদের যেকোন ইউজারনেম এবং পাসওয়ার্ড দিলেই আপনার ইউজার নেম এবং পাসওয়ার্ড প্রিন্ট হয়ে আসবে। এবং আপনার দেয়া তথ্য ব্রাউজারে শো করবে। এবার কিন্তু এররর থাকবেনা 🙂

বাহ!!! কত্ত সহজ 😀 এত সহজে পিএইচপি শিখে যাচ্ছি এটা ঠিক না। তাই এবার আরেকটু সহজ কাজ করাযাক। আমরা যখন আমাদের মুল প্রোগ্রাম টাকে রান করাচ্ছি মানে যখন http://localhost/tutorial.php টা রান করাচ্ছি তখন নিচের লাইনে welcome your password is লিখা টা শো করছে। কিন্তু আমরা চাচ্ছি যখন আমরা লগিনে কোন ইনফরমেশন দিব কেবল তখনি যেন আমাদের কাংখিত লিখা টা দেখায় তার আগে যেন না দেখায় তাহলে আমাদের যে টা ব্যবহার করতে হবে সেটা হল if-esle statement। দেখি কিভাবে ব্যবহার করব।

<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;
	}
?>

খেয়াল করুন আমি এখানে নতুন একটা স্টেটমেন্ট ব্যবহার করেছি সেটা হল isset। এটা নিয়ে বিস্তারিত লিখার কিছুই নাই। কারন এটা শুধু আমাদের ইনফরমেশন চেক করে। অর্থাৎ যদি সেখানে কোন ইনফরমেশন থাকে তাহলে লিখাটাকে প্রিন্ট করবে নাহলে করবে না এরকম ক্ষেত্রে isset ব্যবহার করা হয়।
এখন মনে করুন কেউ আমাদের ওয়েব সাইটে লগিন করার চেষ্টা করতেছে। কিন্তু ফর্ম এ কোন ইনফরমেশন দিচ্ছে না। তাহলেউ কি আমরা একি ভাবে welcome your password is টা প্রিন্ট করানো উচিৎ হবে??? মনে হয় না। সেখানে অন্যকোন মেসেজ শো করাতে হবে। যেমন যদি কেই আমাদের ওয়েব সাইটে লগিন করার সময় কোন ইনফরমেশন না দেয় তাহলে তাকে আমরা নতুন মেসেজ শো করাতে চাচ্ছি। আর সে মেসেজ টা হলঃ "Please give me your username and password"
তাহলে প্রোগ্রাম টা কেমন হবে??? এখানে আরেকটি নতুন অপারেটর ব্যবহার করব সেটা হল !empty। সবাই জানেন empty মানে খালি। তারমানে এটার কাজ হবে কোন ইনফরমেশন খালি আছে কিনা তা পরীক্ষা করা। !empty মানে খালি নয় (কারন আমি এখানে ! ব্যবহার করেছি) তাহলে প্রোগ্রাম লিখাযাক।

<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';
	}
?>

if স্টেটমেন্ট টা আমি বুঝিয়ে দিচ্ছি একবার। আমি প্রোগ্রাম টার অর্থ বলার চেষ্টা করছিঃ
"যদি সেট করা থাকে ইউজারনেম এবং পাসওয়ার্ড এবং empty না থাকে ইউজারনেম এবং পাসওয়ার্ড তাহলে প্রিন্ট করা হবে welcome '.$username.' your password is '.$password। অন্যথায় প্রিন্ট করা হবে Please give me your username and password "

আমার মনে হয় এবার সবাই ১০০ % ক্লিয়ার। 🙂

আরেকটা প্রশ্ন আপনাদের মনে জাগতে পারে সেটা হল ২ লাইন এরররর আসছে কেন??? এররর আসার কারন হল। আমরা প্রোগ্রাম লিখার সময় কোন ইউজারনেম এবং পাসওয়ার্ড লিখিনি বা নিদ্রিষ্ট কোন ইউজারনেম সিলেক্ট করিনি তাই ইউজার নেম না পাওয়াতে ১ টা এরর আর পাসওয়ার্ড না পাওয়াতে আরেকটা এররর দেখাচ্ছে। আর যখন আমরা কোন ইউজারনেম এবং পাসওয়ার্ড দিচ্ছি তখন আর এররর শো করছে না।

বিঃদ্রঃ method লিখার সময় অবশ্যই সব গুলো অক্ষর বড় হাতের অক্ষরে লিখবেন। যেমন: GET, POST

তাহলে মূল কথা কি হল GET method এর ক্ষেত্রে আপনার দেয়া ইনফরমেশন গুলো ব্রাউজারে শো করবে।আজ মনে হয় অনেক শেখা হয়ে গেল। তাই আজ বড় করলাম না। সামনের দিন আরো ভাল ভাল টিউটোরিয়াল আপনাদের জন্য আনার চেষ্টা কর। সে পর্যন্ত সবাই ভাল থাকুন সুস্থ থাকুন।
সবাইকে ধন্যবাদ।

Level 2

আমি ড়িত কথা। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 বছর 3 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 28 টি টিউন ও 274 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 1 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

ভাইয়া, ধন্যবাদ আপনার টিউন এর জন্য। গেট মেথড বুঝলাম। কিন্তু গতকাল ফাংশন এর টিউনটা আরো ব্যাপক দরকার ছিল। আশা করি ফাংশন নিয়ে আরো বিস্তারিত টিউন পাবো।

    @jafor_ikbal: Vaia goto porrbe ami just basic dharona diye cilam. Function niye ami aro onek tune korbo. Tokhon 100% clear hoye jaben insaallah. Thanx for comment

Level 0

হ্যাঁ ভাই ,ভালো হচ্ছে ।তবে ভাই আমি জাফর ইকবালের সঙ্গে একমত ,ফাংশনের টিউটোরিয়াল টা আরোও ভালো করে করতে হবে ।বিশেষ করে পি এইচ পির সমস্ত বিল্টইন ফাংশন গুলি ।য়দি এটা সম্ভব না হয় ,অন্তত এরে এর সমস্ত বিল্টইন ফাংশন গুলি ।অনুরোধ রইল ।

Level 0

tnx for the tune… chalia jan

Level 0

build in function , user define function 2 tar moddhe difference ta ektu tule dhorben please.

Level 0

bos 1st program lekhar por ami kono error paci na …r ami jdi kono usename and password database na program a set kore na dei tahle kivave sata if () condition a milame….

Level 0

just mind blowing Rabbi…… bro, carry one and please write more for us… just enjoying your tunes…

Level 0

if (!empty ($username) && !empty ($password))

{

echo ‘Welcome ‘ .$username. ‘ Your password is ‘. $password ;

}

else

{echo ‘Please put your username and password’ ; }

উপেরেr condition এ ও কোড টা সঠিক ফল দিস্সে।

……………………..
if(isset($username)&&isset($password)&&!empty($username)&&!empty($password))
ay statement a jodi varibale set kore dai, tar mane e tu ar khali thaklo na, tahole abar empty na ay condition dite hobe keno….

ami !empty ($username) && !empty ($password) ay conditon diye korlam, and I got the same result…. well,you can discuss a bit though…. thanks.