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

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

হোম-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 স্ট্যাটিক মেথোড এবং প্রোপার্টি

 

পিএইচপি ফর্ম


ফর্ম এর মাধ্যমে তথ্য সংগ্রহের জন্য পিএইচপি সুপার গ্লোবাল ভ্যারিয়েবল $_GET এবং $_POST ব্যবহার করা হয়।


পিএইচপিতে সাধারণ এইচটিএমএল ফর্ম

নিচের উদাহরণে তিনটি ইনপুট ফিল্ড এবং একটি সাবমিট বাটনসহ একটি সাধারণ এইচটিএমএল ফর্ম এর উদাহরণ দেখানো হলঃ

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

        <!--তিনটি ইনপুট ফিল্ড বিশিষ্ট একটি এইচটিএমএল ফর্ম-->
        <form action="guest_post.php" method="post">
            নামঃ < input type="text" name="name">
             <br>
            ই-মেইলঃ <input type="text" name="email">
             <br>
            মোবাইলঃ <input type="tel" name="mobile">
             <br>

            <input type="submit" value="সাবমিট">
        </form>

</body>
</html>

ফলাফল

যখন কোনো ইউজার উপরের ফর্মটি পূরণ করে সাবমিট বাটনে ক্লিক করে তখন ফর্ম এর ডেটাগুলোকে প্রসেস করার জন্য "guest_post.php" ফাইলের কাছে পাঠানো হয়। এখানে ফর্ম ডেটাকে পোস্ট মেথডের মাধ্যমে পাঠানো হয়েছে।

ফর্ম ডেটাকে প্রদর্শনীর জন্য ভ্যারিয়েবল এর পূর্বে echo ব্যবহার করা হয়।

"guest_post.php" ফাইলটি দেখতে নিচের মতঃ

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

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // POST মেথডের মাধ্যমে ফর্ম থেকে ইনপুট ফিল্ডের ভ্যালু  সংগ্রহ
    $name = $_REQUEST['name'];
    $email = $_REQUEST['email'];
    $mobile = $_REQUEST['mobile'];
    echo $name ." আপনাকে স্বাগতম। 
       <br> আপনার ই-মেইল এড্রেসঃ " . $email. 
       "<br> এবং মোবাইল নাম্বারঃ ". $mobile;
        
    }
?>
        
</body>
</html>

ইনপুট ফিল্ডের ভ্যালুসহ উপরের কোডগুলোর আউটপুট নিচের মত দেখাবেঃ

ফলাফল
তামজিদ হাসান আপনাকে স্বাগতম।
আপনার ই-মেইল এড্রেসঃ tamjid@examole.com
এবং মোবাইল নাম্বারঃ 00000000000

HTTP GET মেথড ব্যবহার করেও একই ফলাফল পাওয়া যায়।

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

        <!--তিনটি ইনপুট ফিল্ড বিশিষ্ট একটি এইচটিএমএল ফর্ম-->
        <form action="guest_get.php" method="get">
            নামঃ < input type="text" name="name">
             <br>
            ই-মেইলঃ <input type="text" name="email">
             <br>
            মোবাইলঃ <input type="tel" name="mobile">
             <br>

            <input type="submit" value="সাবমিট">
        </form>

</body>
</html>

এবং "guest_get.php" ফাইলটি দেখতে নিচের মতঃ

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

<?php
if ($_SERVER["REQUEST_METHOD"] == "GET") {
    // ফর্ম থেকে ইনপুট ফিল্ডের ভ্যালু  সংগ্রহ
    $name = $_REQUEST['name'];
    $email = $_REQUEST['email'];
    $mobile = $_REQUEST['mobile'];
    echo $name ." আপনাকে স্বাগতম। 
       <br> আপনার ই-মেইল এড্রেসঃ " . $email. 
       "<br> এবং মোবাইল নাম্বারঃ ". $mobile;
        
    }
?>
        
</body>
</html>

লক্ষ্য করলে দেখবেন, উপরের কোডগুলো একেবারেই সহজ। কিন্তু এখানে খুবই গুরত্বপূর্ণ একটি বিষয় বাদ পড়েছে সেটা হলো আপনার স্ক্রিপ্টকে খারাপ কোড(malicious code) থেকে রক্ষা করার জন্য ফর্ম ডেটার বৈধতা(validity) চেক করা হয় নি।

পিএইচপি ফর্ম প্রসেস করার সময় সিকিউরিটির কথাও মাথায় রাখতে হবে!

আমাদের এই পেজে ফর্ম ভ্যালিডেশন সম্মন্ধে কিছুই বলা হয় নাই। এইচটিএমএল ফর্ম এর মাধ্যমে কিভাবে তথ্য(data) পাঠানো এবং পুনরুদ্ধার করা যায় এই অধ্যায়ে শুধু তাই দেখানো হয়েছে।

যাইহোক, সিকিউরিটির কথা মাথায় রেখে কিভাবে পিএইচপি ফর্মকে প্রসেস করা হয় তা পরবর্তী অধ্যায়ে দেখানো হয়েছে। হ্যাকার এবং স্পামার থেকে ফর্মকে নিরাপদ রাখার জন্য ফর্ম ডেটার উপযুক্ত ভ্যালিডেশন এর বিকল্প নাই!


GET বনাম POST

GET এবং POST উভয়েই একটি associative array তৈরি করে। যেমন-

array(
    key1 => value1,
    key2 => value2, 
    key3 => value3, 
    ...
    )

GET এবং POST যেহেতু associative array তাই এই array এর মধ্যে key:value জোড়ায় জোড়ায় থাকে। যেখানে key হচ্ছে ফর্ম এ ব্যবহৃত name এবং value হচ্ছে ইউজার কর্তৃক ইনপুট ডেটা।

GET এবং POST উভয়কেই $_GET এবং $_POST হিসাবে বিবেচনা করা হয়। এগুলো সুপার গ্লোবাল হওয়ার কারণে যেকোনো স্কোপ(scope) থেকেই এগুলোকে এক্সেস(access) করা যায়। অর্থাৎ যেকোনো ফাংশন, ক্লাস অথবা ফাইল থেকে কোনো অতিরিক্ত কোড না লিখেই এক্সেস করা যায়।

$_GET হচ্ছে চলমান স্ক্রিপ্ট এর URL প্যারামিটার এর মাধ্যমে পাঠানো ভ্যারিয়েবলের array।

$_POST হচ্ছে চলমান স্ক্রিপ্ট এর HTTP POST মেথডের মাধ্যমে পাঠানো ভ্যারিয়েবলের array।


কখন GET ব্যবহার করবেন?

GET মেথডের মাধ্যমে পাঠানো তথ্য সবার কাছেই দৃশ্যমান হয়। অর্থাৎ সকল ভ্যারিয়েবলের name এবং value, URL-এর মধ্যে দেখায়।

GET মেথডের মাধ্যমে তথ্য পাঠানোর ক্ষেত্রে সীমাবদ্ধতাও আছে। GET এর মাধ্যম প্রায় 2000 ক্যারেক্টার পাঠানো যায়।

যাইহোক যেহেতু ভ্যারিয়েবলগুলো URL এর মধ্যে দেখায়, সেহেতু পেজকে বুকমার্ক ও করা যায়। সর্বোপরি কিছু কিছু ক্ষেত্রে এটার উপকারিতাও আছে।

GET এর মাধ্যমে নন-সেনসিটিভ তথ্য পাঠানো হয়।

সতর্কতাঃ পাসওয়ার্ড বা অন্য কোনো সেনসিটিভ তথ্য GET এর মাধ্যমে কখনোই পাঠানো উচিৎ নয়!


কখন POST ব্যবহার করবেন?

POST মেথডের মাধ্যমে পাঠানো তথ্য কারো কাছে দৃশ্যমান হয় না। অর্থাৎ সকল ভ্যারিয়েবলের name এবং value, HTTP request-এর body এর মধ্য দিয়ে সম্প্রসারিত হয় এবং তথ্য পাঠানোর ক্ষেত্রে পরিমাণের উপর কোনো সীমাবদ্ধতা নাই।

সার্ভারে ফাইল আপলোড এর জন্য POST মেথড অতিরিক্ত সুযোগ-সুবিধা দিয়ে থাকে। যেমন- এতে multi-part binary input সাপোর্ট করে।

যাইহোক যেহেতু ভ্যারিয়েবলগুলো URL এর মধ্যে দেখায় না, সেহেতু পেজকে বুকমার্কও করা যায় না।

ডেভেলপাররা POST মেথডকেই বেশি প্রাধান্য দেয়।

পরবর্তী অধ্যায়ে দেখবেন, কিভাবে নিরাপদের সাথে ফর্ম ডেটাকে প্রসেস করা যায়!