পিএইচপি এসকিউএল ওয়ার্ডপ্রেস জাভাস্ক্রিপ্ট জেকুয়েরি এইচটিএমএল
ফোরাম
×

পিএইচপি টিউটোরিয়াল

হোম-HOME পরিচিতি-Introduction ইনস্টল-Install গঠনপ্রনালী-Syntax চলক-Variable পিএইচপি Echo / Print তথ্যের ধরণ-Data Types কনস্ট্যান্ট-Constant অপারেটর-Operator ফাংশন-Function সুপারগ্লোভাল-Superglobal

কন্ট্রোল স্টেটমেন্ট

if স্টেটমেন্ট if...Else স্টেটমেন্ট Switch স্টেটমেন্ট While লুপ DO...While লুপ For লুপ

পিএইচপি এ্যারে এবং স্ট্রিং

এ্যারে-Array এ্যারে সর্টিং -Array Sorting মাল্টি এ্যারে-Multi Array স্ট্রিং-String

পিএইচপি এডভান্স

তারিখ এবং সময় পিএইচপি include ফাইল হ্যান্ডলিং-File Handling ফাইল খোলা/পড়া ফাইল তৈরি/লিখা ফাইল আপলোড ফাইল ডাউনলোড কুকি-Cookie সেশন-Session ফিল্টার-Filter এডভান্স ফিল্টার-Advance Filter এঁরর হ্যান্ডলিং-Error Handling এক্সেপশন হ্যান্ডেলিং-Exception Handling

পিএইচপি ফরম

ফরম হ্যান্ডলিং ফরম ভ্যালিডেশন আবশ্যক ফরম ফিল্ড ফরম URL/E-mail সম্পূর্ণ ফরম

MySQL ডেটাবেজ

MySQL ডেটাবেজ MySQL ডেটাবেজ সংযোগ MySQL ডেটাবেজ তৈরী MySQL টেবিল তৈরী MySQL তথ্য ইনসার্ট MySQL শেষ আইডি পান MySQL একাধিক তথ্য ইনসার্ট MySQL প্রিপেয়ার্ড স্টেটমেন্ট MySQL তথ্য সিলেক্ট MySQL তথ্য ডিলিট MySQL তথ্য আপডেট MySQL সীমিত তথ্য সিলেক্ট

পিএইচপি- এক্সএমএল

PHP XML Parser PHP SimpleXML Parser PHP XML Parser PHP SimpleXML - Get PHP XML Expat PHP XML Dom

পিএইচপি - এজাক্স

পিএইচপি AJAX পরিচিতি AJAX পিএইচপি AJAX ডেটাবেজ AJAX এক্সএমএল AJAX সারাসরি সার্চ AJAX RSS রির্ডার AJAX Poll

পিএইচপি অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং(OOP)

OOP পরিচিতি OOP class তৈরী OOP objects তৈরী OOP $this কিওয়ার্ড OOP মেথড এবং প্রোপার্টি চেইনিং OOP অ্যাক্সেস মোডিফায়ার OOP ম্যাজিক মেথড এবং কন্সটেন্ট OOP ইনহেরিটেন্স OOP Abstract class এবং method OOP ইন্টারফেস OOP পলিমরফিজম OOP টাইপ হিন্টিং() OOP টাইপ হিন্টিনং ইন্টারফেস OOP স্ট্যাটিক মেথোড এবং প্রোপার্টি

 

পিএইচপি গ্লোবাল ভ্যারিয়েবল


পিএইচপির ভার্সন 4.1.0 এ সুপারগ্লোবাল ভ্যারিয়েবলের সূচনা হয়। এই ভ্যারিয়েবলগুলো পিএইচপিতে বিল্ট-ইন থাকার কারণে স্ক্রিপ্ট এর যেকোনো স্কোপ থেকেই এগুলোকে এক্সেস/ব্যবহার করা যায়।


পিএইচপি সুপারগ্লোবাল

পিএইচপি সেট-আপের সময়ই কিছু পূর্ব সংজ্ঞায়িত ভ্যারিয়েবল পিএইচপির সাথে দেওয়া থাকে এগুলোই হচ্ছে পিএইচপির সুপারগ্লোবাল(Super global) ভ্যারিয়েবল।

নাম শুনেই বুঝা যাচ্ছে যে, কোন ধরনের স্কোপ বিবেচনা না করেই এগুলোকে যেকোন স্ক্রিপ্ট বা স্ক্রিপ্ট এর যেকোনো স্থান থেকে ব্যবহার/এক্সেস করা যায়। যেমন- আপনি ইচ্ছা করলে বিশেষ কোনো কিছু ছাড়াই এগুলোকে ফাংশন, ক্লাস, অথবা ফাইল থেকে ব্যবহার করতে পারবেন।

নিম্নে পিএইচপির সুপারগ্লোবাল ভ্যারিয়েবলগুলো উল্লেখ করা হলোঃ

$GLOBALS

গ্লোবাল ভ্যারিয়েবলসমূহকে যেকোনো স্কোপ থেকে এক্সেস করার জন্য এটি ব্যবহৃত হয়।

$_SERVER

Header, Path এবং Script location সম্মন্ধে বিভিন্ন তথ্য পাওয়ার জন্য এটি ব্যবহৃত হয়।

$_REQUEST

ফর্ম সাবমিট করার পরে ডেটা কালেক্টশন করার জন্য এটি ব্যবহৃত হয়।

$_GET

method="get" এর মাধ্যমে এইচটিএমএল ফর্ম সাবমিট করার পরে ইনপুট ডেটা কালেক্টশন করার জন্য এটি ব্যবহৃত হয়।

$_POST

method="post" এর মাধ্যমে এইচটিএমএল ফর্ম সাবমিট করার পরে ডেটা কালেক্টশন করার জন্য এটি ব্যবহৃত হয়।

$_FILES

এটি একটি Two-dimensional associative array। যা ফাইল আপলোড এর সকল তথ্য ধারণ করে।

$_ENV

Environment variable

$_COOKIE

ইউজার সনাক্ত করার জন্য কুকি এক্সেস করতে এটি ব্যবহৃত হয়।

$_SESSION

Session ভ্যারিয়েবলকে এক্সেস করার জন্য এটি ব্যবহৃত হয়।

বিঃদ্রঃ সুপারগ্লোবাল ভ্যারিয়েবলসমূহ এসোসিয়েটিভ এ্যারে এসোসিয়েটিভ এ্যারের এলিমেন্ট সমূহ key:value জোড়ায় জোড়ায় থাকে। এসোসিয়েটিভ এ্যারে সম্মন্ধে আরও জানতে পিএইচপি এ্যারে অধ্যায় ভিজিট করুন।

এই অধ্যায়ে কিছু সুপারগ্লোবাল ভ্যারিয়েবল সম্মন্ধে আলোচনা করা হয়েছে। বাকীগুলো সংশ্লিষ্ট অধ্যায়ে আলোচনা করা হবে।


পিএইচপি $GLOBALS

$GLOBALS হচ্ছে পিএইচপি সুপারগ্লোবাল ভ্যারিয়েবল এবং associative array। যেকোনো স্থান(ফাংশন এবং মেথড এর মধ্য থেকেও) থেকে গ্লোবাল ভ্যারিয়েবলকে এক্সেস করার জন্য $GLOBALS কিওয়ার্ড ব্যাবহার করা হয়।

পিএইচপি সকল গ্লোবাল ভ্যারিয়েবলকে $GLOBALS[index] array এর মধ্যে জমা রাখে। index এর মধ্যে ভ্যারিয়েবলের নাম জমা রাখে।

নিচের উদাহরণে আমরা দেখবো, কিভাবে সুপারগ্লোবাল ভ্যারিয়েবল $GLOBALS কে ব্যবহার করা যায়ঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>

<?php
$numberOne = 55;
$numberTwo = 44;

function sum(){
	$GLOBALS['total'] = $GLOBALS['numberOne'] + $GLOBALS['numberTwo'];
}

sum();
echo $total;
?>

</body>
</html>

ফলাফল
99

উপরের উদাহরণে, z ভ্যারিয়েবলটি $GLOBALS array এর মধ্যে অবস্থান করার কারণে এটাকে ফাংশনের বাইরে থেকেও এক্সেস করা যাচ্ছে!


পিএইচপি $_SERVER

$_SERVER হচ্ছে পিএইচপি সুপারগ্লোবাল ভ্যারিয়েবল যা header, path এবং script location সম্মন্ধে বিভিন্ন তথ্য ধারণ করে।

নিচের উদাহরণে আমরা দেখবো, কিভাবে $_SERVER ভ্যারিয়েবলকে ব্যবহার করা যায়ঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>

<?php
echo $_SERVER['PHP_SELF']. "<br>";
echo $_SERVER['SERVER_NAME']. "<br>";
echo $_SERVER['HTTP_HOST']. "<br>";
echo $_SERVER['HTTP_REFERER']. "<br>";
echo $_SERVER['HTTP_USER_AGENT']. "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>

</body>
</html>

ফলাফল
/php/php_superglobals.php
sattacademy.com
sattacademy.com

CCBot/2.0 (http://commoncrawl.org/faq/)
/php/php_superglobals.php

নিচের টেবিলে $_SERVER ভ্যারিয়েবলের মধ্যে ব্যবহৃত অধিকাংশ কনস্ট্যান্ট এর সংক্ষিপ্ত আলোচনা করা হলোঃ

$_SERVER['PHP_SELF']

সম্প্রতি যে স্ক্রিপ্ট সম্পাদিত(execution) হয় তার ফাইলের নাম রিটার্ন করে।

$_SERVER['GATEWAY_INTERFACE']

সার্ভার যে কমন গেটওয়ে ইন্টারফেস(CGI) ব্যবহার করে তার ভার্সন রিটার্ন করে।

$_SERVER['SERVER_ADDR']

হোস্ট সার্ভারের IP এড্রেস রিটার্ন করে।

$_SERVER['SERVER_NAME']

হোস্ট সার্ভারের নাম রিটার্ন করে। যেমন- www.sattacademy.com

$_SERVER['SERVER_SOFTWARE']

সার্ভারের জন্য ব্যবহৃত সফটওয়্যার এবং এর ভার্সন রিটার্ন করে। (যেমন- Apache/2.4.25 )

$_SERVER['SERVER_PROTOCOL']

ইনফরমেশন প্রোটোকলের নাম এবং রিভিশন(revision) রিটার্ন করে। (যেমন HTTP/1.1)

$_SERVER['REQUEST_METHOD']

কোনো পেজকে এক্সেস করার জন্য এর রিকুয়েস্ট মেথড(যেমন- POST) রিটার্ন করে।

$_SERVER['REQUEST_TIME']

রিকুয়েস্ট শুরু হওয়ার টাইমস্ট্যাম্প রিটার্ন করে। (যেমন- 1377687496)

$_SERVER['QUERY_STRING']

যদি কোনো পেজ কুয়েরি স্ট্রিং দ্বারা এক্সেস করা হয় তাহলে কুয়েরি স্ট্রিং রিটার্ন করে।

$_SERVER['HTTP_ACCEPT']

বর্তমান রিকুয়েস্ট থেকে Accept header রিটার্ন করে।

$_SERVER['HTTP_ACCEPT_CHARSET']

বর্তমান রিকুয়েস্ট থেকে Accept_Charset header রিটার্ন করে। (যেমন utf-8,ISO-8859-1)

$_SERVER['HTTP_HOST']

বর্তমান রিকুয়েস্ট থেকে Host header রিটার্ন করে।

$_SERVER['HTTP_REFERER']

বর্তমান পেজের সম্পূর্ণ URL রিটার্ন করে (বিশ্বাসযোগ্য নয় কারন সকল user-agents এ সাপোর্ট করে না)

$_SERVER['HTTPS']

স্ক্রিপ্টটি কি সিকিউর HTTP প্রোটোকলের মধ্য দিয়ে কুয়েরি হচ্ছে কিনা?

$_SERVER['REMOTE_ADDR']

ব্যবহারকারী যেখান থেকে বর্তমান পেজটি ভিউ করছে সেই IP এড্রেস রিটার্ন করে।

$_SERVER['REMOTE_HOST']

ব্যবহারকারী যেখান থেকে বর্তমান পেজটি ভিউ করছে সেই Host নাম রিটার্ন করে।

$_SERVER['REMOTE_PORT']

ব্যবহারকারীর ডিভাইস থেকে সার্ভারের সাথে যোগাযোগ(communicate) করার জন্য যে পোর্ট(port) ব্যবহার হচ্ছে সেটিকে রিটার্ন করে।

$_SERVER['SCRIPT_FILENAME']

বর্তমানে যে স্ক্রিপ্টটি এক্সিকিউট হচ্ছে সেটির absolute pathname রিটার্ন করে।

$_SERVER['SERVER_PORT']

যোগাযোগের জন্য ওয়েব সার্ভারের সার্ভার মেশিন যে পোর্ট ব্যবহার করে সেটি রিটার্ন করে। (যেমন 80)

$_SERVER['SERVER_SIGNATURE']

server-generated পেজের সাথে যুক্ত সার্ভার ভার্সন এবং ভার্চুয়াল হোস্ট এর নাম রিটার্ন করে।

$_SERVER['PATH_TRANSLATED']

বর্তমান স্ক্রিপ্টের ফাইল সিস্টেম বেস(base) path রিটার্ন করে।

$_SERVER['SCRIPT_NAME']

কারেন্ট স্ক্রিপ্টের পথ রিটার্ন করে।

$_SERVER['SCRIPT_URI']

কারেন্ট পেজের URI কে রিটার্ন করে।


পিএইচপি $_REQUEST

ফর্ম সাবমিট করার পরে ডেটা কালেক্টশন করার জন্য সুপারগ্লোবাল ভ্যারিয়েবল $_REQUEST ব্যবহার করা হয়।

নিচের উদাহরণে একটি ইনপুট ফিল্ড ও একটি সাবমিট বাটনসহ একটি ফর্ম দেখা যাচ্ছে। যখন কোনো ইউজার ফর্ম ডেটা সাবমিট করার জন্য "Submit" বাটনে ক্লিক করে, তখন এই ডেটা প্রসেস করার জন্য <form> ট্যাগে action এট্রিবিউট এ নির্দেশিত ফাইলের কাছে পাঠানো হয়।

এই উদাহরণে সাবমিটেড ডেটা প্রসেস করার জন্য এই ফাইলকেই নির্দেশনা দিয়েছে। আপনি চাইলে অন্য ফাইলের মাধ্যমেও ডেটাকে প্রসেস করতে পারেন, শুধু action এট্রিবিউটে = চিহ্নের ডান পাশে আপনার ফাইলের নামটি দিয়ে দেন। এরপরে আপনি ইচ্ছা করলে সুপারগ্লোবাল ভ্যারিয়েবল $_REQUEST এর মাধ্যমে ডেটা কালেক্ট করতে পারেনঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  নামঃ <input type="text" name="fullname">
  <input type="submit" value="Name Submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // ইনপুট ফিল্ডের ভ্যালু কালেক্ট
    $name = $_REQUEST['fullname'];
    if (empty($name)) {
        echo "নাম পূরন করা হয়নি";
    } else {
        echo "আপনার পূরনকৃত নামঃ". $name;
    }
}
?>

</body>
</html>

ফলাফল

পিএইচপি $_GET

method="get" এর মাধ্যমে এইচটিএমএল ফর্ম সাবমিট করার পরে ইনপুট ডেটা কালেক্টশন করার জন্য সুপার গ্লোবাল ভ্যারিয়েবল $_GET ব্যবহৃত হয়।

URL এর মধ্য দিয়ে পাঠানো ডেটাও $_GET এর মাধ্যমে কালেক্ট করা যায়।

মনে করুন আপনার এইচটিএমএল পেজে প্যারমিটার সহ হাইপারলিংক আছেঃ

<html>
<body>

  <a href="get.php?subject=PHP&web=Sattacademy.com">Test $GET</a>

</body>
</html>

যখন কোনো ইউজার "Test $GET" লিংক এ ক্লিক করে, তখন প্যারামিটার "subject" এবং "web" কে "test_get.php" এর কাছে পাঠানো হয়, এবং এরপরে আপনি "test_get.php" এর মধ্যে $_GET এর সাহায্যে তাদের ভ্যালুগুলোকে এক্সেস করতে পারবেন।

নিচের উদাহরণে "test_get.php"এর মধ্যে ব্যবহৃত কোড দেখানো হলোঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>

<?php
  echo $_GET['web'] . " এ " . $_GET['subject'] . " শিখুন।";
?>

</body>
</html>

ফলাফল

পিএইচপি $_POST

method="post" এর মাধ্যমে এইচটিএমএল ফর্ম সাবমিট করার পরে ডেটা কালেক্টশন করার জন্য সুপারগ্লোবাল ভ্যারিয়েবল $_POST ব্যপকভাবে ব্যবহৃত হয়। বিশেষকরে ভ্যারিয়েবল পাস(pass) করানোর জন্য $_POST এর ব্যবহার চোখে পড়ার মত।

নিচের উদাহরণে একটি ইনপুট ফিল্ড ও একটি সাবমিট বাটনসহ একটি ফর্ম দেখা যাচ্ছে। যখন কোনো ইউজার ফর্ম ডেটা সাবমিট করার জন্য "Submit" বাটনে ক্লিক করে, তখন এই ডেটা প্রসেস করার জন্য <form> ট্যাগে action এট্রিবিউট এ নির্দেশিত ফাইলের কাছে পাঠানো হয়।

এই উদাহরণে সাবমিটেড ডেটা প্রসেস করার জন্য এই ফাইলকেই নির্দেশনা দিয়েছি। আপনি চাইলে অন্য ফাইলের মাধ্যমেও ডেটাকে প্রসেস করতে পারেন, শুধু action এট্রিবিউট = চিহ্নের ডান পাশে আপনার ফাইলের নামটি দিয়ে দেন। এরপরে আপনি ইচ্ছা করলে সুপারগ্লোবাল ভ্যারিয়েবল $_POST এর মাধ্যমে ইনপুট ফিল্ডের ডেটা কালেক্ট করতে পারেনঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি উদাহরণ</title>
</head>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  নামঃ <input type="text" name="fullname">
  <input type="submit" value="Name Submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // ইনপুট ফিল্ডের ভ্যালু কালেক্ট
    $name = $_POST['fullname'];
    if (empty($name)) {
        echo "নাম পূরন করা হয়নি";
    } else {
        echo "আপনার পূরনকৃত নামঃ". $name;
    }
}
?>

</body>
</html>

ফলাফল

টিপসঃ পিএইচপি Form অধ্যায়ে $_POST and $_GET সম্মন্ধে আরো অধিক আলোচনা করা হয়েছে।