Comment

PHP প্রসেসিং ফর্ম (Processing Forms)

PHP ফ্ল্যাশ বার্তা (Flash messages)

Estimated reading: 5 minutes 9 views Contributors

সারাংশ: এই টিউটোরিয়ালে, আপনি PHP ফ্ল্যাশ বার্তাগুলি সম্পর্কে শিখবেন এবং কার্যকরভাবে ফ্ল্যাশ বার্তাগুলি পরিচালনা করার জন্য একটি পুনঃব্যবহারযোগ্য ফ্ল্যাশ() ফাংশন সংজ্ঞায়িত করবেন।

PHP ফ্ল্যাশ বার্তা পরিচিতি

একটি ফ্ল্যাশ বার্তা আপনাকে একটি পৃষ্ঠায় একটি বার্তা তৈরি করতে এবং অন্য পৃষ্ঠায় একবার প্রদর্শন করতে দেয়। একটি বার্তা এক পৃষ্ঠা থেকে অন্য পৃষ্ঠায় স্থানান্তর করতে, আপনি $_SESSION সুপারগ্লোবাল ভেরিয়েবল ব্যবহার করেন।

উদাহরণস্বরূপ, আপনি প্রথম পৃষ্ঠায় $_SESSION-এ একটি বার্তা যোগ করতে পারেন:

<?php

session_start();

$_SESSION['flash_message'] = "I'm a flash message';

পরবর্তীতে, অন্য পৃষ্ঠায়, আপনি $_SESSION ভেরিয়েবল থেকে ফ্ল্যাশ বার্তা পেতে পারেন এবং এটি একটি ভেরিয়েবলে বরাদ্দ করতে পারেন। তারপর, আপনি $_SESSION থেকে বার্তাটি মুছুন এবং বার্তাটি প্রদর্শন করুন:

<?php

session_start();

if(isset($_SESSION['flash_message'])) {
    $message = $_SESSION['flash_message'];
    unset($_SESSION['flash_message']);
    echo $message;
}

এটি একটি সাধারণ ফ্ল্যাশ বার্তা উদাহরণ।

অনুশীলনে, একটি ফ্ল্যাশ বার্তা পরে রেফারেন্সের জন্য একটি নাম (বা একটি আইডি) থাকে। এছাড়াও, একটি ফ্ল্যাশ বার্তার একটি প্রকার রয়েছে যেমন ত্রুটি, সাফল্য, তথ্য এবং সতর্কতা। বার্তার ধরন আপনাকে বার্তাটির জন্য একটি নির্দিষ্ট শৈলী তৈরি করতে দেয়

নিম্নলিখিত বিভাগে, আমরা ফাংশনগুলির একটি সেট সংজ্ঞায়িত করব যা নিম্নলিখিতগুলি করে:

  • একটি নাম দিয়ে একটি ফ্ল্যাশ বার্তা তৈরি করুন।
  • একটি ফ্ল্যাশ বার্তা ফর্ম্যাট করুন।
  • একটি নাম দ্বারা নির্দিষ্ট একটি ফ্ল্যাশ বার্তা প্রদর্শন করুন.
  • সমস্ত ফ্ল্যাশ বার্তা প্রদর্শন করুন.

একটি ফ্ল্যাশ বার্তা তৈরি করুন

প্রথমে, সমস্ত ফ্ল্যাশ বার্তাগুলির জন্য একটি কী হিসাবে একটি ধ্রুবক সংজ্ঞায়িত করুন:

const FLASH = 'FLASH_MESSAGES';

দ্বিতীয়ত, ধ্রুবক সংজ্ঞায়িত করুন যা ত্রুটি, তথ্য, সতর্কতা, এবং সাফল্য সহ ফ্ল্যাশ বার্তাগুলির ধরণকে সংজ্ঞায়িত করে:

const FLASH_ERROR = 'error';
const FLASH_WARNING = 'warning';
const FLASH_INFO = 'info';
const FLASH_SUCCESS = 'success';

তৃতীয়ত, একটি ফাংশন সংজ্ঞায়িত করুন যা একটি ফ্ল্যাশ বার্তা তৈরি করে যার একটি নাম, একটি বার্তা এবং একটি প্রকার রয়েছে:

<?php

/**
* Create a flash message 
* 
* @param string $name
* @param string $message
* @param string $type
* @return void
*/
function create_flash_message(string $name, string $message, string $type): void
{
    // remove existing message with the name
    if (isset($_SESSION[FLASH][$name])) {
        unset($_SESSION[FLASH][$name]);
    }
    // add the message to the session
    $_SESSION[FLASH][$name] = ['message' => $message, 'type' => $type];
}

একটি ফ্ল্যাশ বার্তা ফর্ম্যাট করুন

নিম্নলিখিত format_flash_message() ফাংশন একটি ফ্ল্যাশ বার্তা ফর্ম্যাট করে:

/**
 * Format a flash message
 *
 * @param array $flash_message
 * @return string
 */
function format_flash_message(array $flash_message): string
{
    return sprintf('<div class="alert alert-%s">%s</div>',
        $flash_message['type'],
        $flash_message['message']
    );
}

এই ফাংশনে, আমরা মেসেজ ফরম্যাট করতে ক্লাস অ্যালার্ট এবং অ্যালার্ট-$টাইপ সহ নিম্নলিখিত HTML ব্যবহার করি। বার্তার ধরনটি একটি ত্রুটি, তথ্য, সতর্কতা এবং সাফল্য হতে পারে। নিম্নলিখিত উদাহরণ একটি ত্রুটি বার্তা দেখায়:

<div class="alert alert-error">
    This is an error!
</div>

একটি ফ্ল্যাশ বার্তা প্রদর্শন করুন

একটি নামের দ্বারা একটি ফ্ল্যাশ বার্তা প্রদর্শন করতে, আপনি $_SESSION[FLASH] ভেরিয়েবলে বার্তার নাম বিদ্যমান কিনা তা পরীক্ষা করুন। যদি তাই হয়, আপনি $_SESSION[‘FLASH’] এ ফ্ল্যাশ বার্তা পাবেন, এটিকে $_SESSION[‘FLASH’] থেকে সরিয়ে দিন এবং ফ্ল্যাশ বার্তাটি প্রদর্শন করুন:

<?php

/**
* Display a flash message
*
* @param string $name
* @return void
*/
function display_flash_message(string $name): void
{
    if (!isset($_SESSION[FLASH][$name])) {
        return;
    }

    // get message from the session
    $flash_message = $_SESSION[FLASH][$name];

    // delete the flash message
    unset($_SESSION[FLASH][$name]);

    // display the flash message
    echo format_flash_message($flash_message);
}

সমস্ত ফ্ল্যাশ বার্তা প্রদর্শন করুন

নিম্নলিখিত ফাংশন $_SESSION[‘FLASH’] ভেরিয়েবল থেকে সমস্ত ফ্ল্যাশ বার্তা প্রদর্শন করে:

<?php

/**
* Display all flash messages
*
* @return void
*/
function display_all_flash_messages(): void
{
    if (!isset($_SESSION[FLASH])) {
        return;
    }

    // get flash messages
    $flash_messages = $_SESSION[FLASH];

    // remove all the flash messages
    unset($_SESSION[FLASH]);

    // show all flash messages
    foreach ($flash_messages as $flash_message) {
        echo format_flash_message($flash_message);
    }
}

Flash() ফাংশন সংজ্ঞায়িত করুন

এটি আরও সুবিধাজনক হবে যদি আমরা একটি একক ফ্ল্যাশ() ফাংশন সংজ্ঞায়িত করি যা:

  • একটি ফ্ল্যাশ বার্তা তৈরি করুন
  • একটি ফ্ল্যাশ বার্তা প্রদর্শন করুন
  • সমস্ত ফ্ল্যাশ বার্তা প্রদর্শন করুন

নিম্নলিখিত ফ্ল্যাশ() ফাংশন উপরের ফাংশনগুলি পুনরায় ব্যবহার করে:

<?php

/**
* Flash a message
*
* @param string $name
* @param string $message
* @param string $type (error, warning, info, success)
* @return void
*/
function flash(string $name = '', string $message = '', string $type = ''): void
{
    if ($name !== '' && $message !== '' && $type !== '') {
        create_flash_message($name, $message, $type);
    } elseif ($name !== '' && $message === '' && $type === '') {
        display_flash_message($name);
    } elseif ($name === '' && $message === '' && $type === '') {
        display_all_flash_messages();
    }
}

একটি ফ্ল্যাশ বার্তা তৈরি করতে, আপনি তিনটি আর্গুমেন্ট পাস করুন: নাম, বার্তা এবং ফ্ল্যাশ() ফাংশনে টাইপ করুন এভাবে:

flash('greeting', 'Hi there', FLASH_INFO);

একটি নাম দ্বারা একটি ফ্ল্যাশ বার্তা প্রদর্শন করতে, আপনাকে ফ্ল্যাশ() ফাংশনে একটি নাম পাস করতে হবে:

flash('greeting');

সমস্ত ফ্ল্যাশ বার্তা প্রদর্শন করতে, আপনি ফ্ল্যাশ() ফাংশনে কোনো আর্গুমেন্ট পাস করবেন না:

flash();

সব একসাথে রাখুন

নিম্নলিখিতগুলি flash.php ফাইলে সমস্ত ফাংশন রাখে:

<?php

const FLASH = 'FLASH_MESSAGES';

const FLASH_ERROR = 'error';
const FLASH_WARNING = 'warning';
const FLASH_INFO = 'info';
const FLASH_SUCCESS = 'success';

/**
 * Create a flash message
 *
 * @param string $name
 * @param string $message
 * @param string $type
 * @return void
 */
function create_flash_message(string $name, string $message, string $type): void
{
    // remove existing message with the name
    if (isset($_SESSION[FLASH][$name])) {
        unset($_SESSION[FLASH][$name]);
    }
    // add the message to the session
    $_SESSION[FLASH][$name] = ['message' => $message, 'type' => $type];
}


/**
 * Format a flash message
 *
 * @param array $flash_message
 * @return string
 */
function format_flash_message(array $flash_message): string
{
    return sprintf('<div class="alert alert-%s">%s</div>',
        $flash_message['type'],
        $flash_message['message']
    );
}

/**
 * Display a flash message
 *
 * @param string $name
 * @return void
 */
function display_flash_message(string $name): void
{
    if (!isset($_SESSION[FLASH][$name])) {
        return;
    }

    // get message from the session
    $flash_message = $_SESSION[FLASH][$name];

    // delete the flash message
    unset($_SESSION[FLASH][$name]);

    // display the flash message
    echo format_flash_message($flash_message);
}

/**
 * Display all flash messages
 *
 * @return void
 */
function display_all_flash_messages(): void
{
    if (!isset($_SESSION[FLASH])) {
        return;
    }

    // get flash messages
    $flash_messages = $_SESSION[FLASH];

    // remove all the flash messages
    unset($_SESSION[FLASH]);

    // show all flash messages
    foreach ($flash_messages as $flash_message) {
        echo format_flash_message($flash_message);
    }
}

/**
 * Flash a message
 *
 * @param string $name
 * @param string $message
 * @param string $type (error, warning, info, success)
 * @return void
 */
function flash(string $name = '', string $message = '', string $type = ''): void
{
    if ($name !== '' && $message !== '' && $type !== '') {
        // create a flash message
        create_flash_message($name, $message, $type);
    } elseif ($name !== '' && $message === '' && $type === '') {
        // display a flash message
        display_flash_message($name);
    } elseif ($name === '' && $message === '' && $type === '') {
        // display all flash message
        display_all_flash_messages();
    }
}

একটি ফ্ল্যাশ বার্তা উদাহরণ

প্রথমে, নিম্নলিখিত ডিরেক্টরি এবং ফাইল কাঠামো তৈরি করুন:

├── inc
|  ├── flash.php
|  ├── footer.php
|  └── header.php
├── page1.php
└── page2.php

দ্বিতীয়ত, উপরের সমস্ত ফাংশন flash.php ফাইলে রাখুন।

তৃতীয়, header.php ফাইলে নিম্নলিখিত কোড যোগ করুন।

header.php CSS ফোল্ডারে style.css ফাইলের সাথে লিঙ্ক করে:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://www.phptutorial.net/app/css/style.css">
    <title>PHP Flash Message</title>
</head>
<body>

চতুর্থ, footer.php ফাইলে নিম্নলিখিত HTML যোগ করুন:

</body>
</html>

পঞ্চম, ফ্ল্যাশ() ফাংশন কল করে page1.php ফাইলে একটি ফ্ল্যাশ বার্তা তৈরি করুন:

<?php

session_start();

require __DIR__ . '/inc/flash.php';
require __DIR__ . '/inc/header.php';

flash('greeting', 'Hi there', FLASH_INFO);

echo '<a href="page2.php" title="Go To Page 2">Go To Page 2</a>';

require __DIR__ . '/inc/footer.php';

page1.php ফাইলটিতে page2.php এর একটি লিঙ্ক রয়েছে।

অবশেষে, ফ্ল্যাশ() ফাংশনে কল করে page2.php ফাইলে শুভেচ্ছা বার্তাটি দেখান এবং এতে নামটি পাস করুন:

<?php

session_start();

require __DIR__  . '/inc/flash.php';
require __DIR__ . '/inc/header.php';

flash('greeting');

require __DIR__ . '/inc/footer.php';

আপনি page1.php পৃষ্ঠাটি খুললে এবং লিঙ্কটিতে ক্লিক করলে, আপনি page2.php পৃষ্ঠায় একটি বার্তা দেখতে পাবেন।

PHP ফ্ল্যাশ বার্তা ব্যবহার ক্ষেত্রে

অনুশীলনে, আপনি ব্যবহারকারীদের সাইন আপ করার পরে একটি স্বাগত বার্তা সহ লগইন পৃষ্ঠায় পুনঃনির্দেশিত করতে একটি সাইনআপ পৃষ্ঠায় ফ্ল্যাশ বার্তাগুলি ব্যবহার করবেন৷ এছাড়াও, আপনি পোস্ট-রিডাইরেক্ট-গেট প্যাটার্নে ফ্ল্যাশ বার্তাগুলি ব্যবহার করবেন, যা আপনি পরবর্তী টিউটোরিয়ালে শিখবেন।

সারসংক্ষেপ

  • একটি পৃষ্ঠায় একটি ফ্ল্যাশ বার্তা তৈরি করা হয় এবং অন্য পৃষ্ঠায় একবার প্রদর্শিত হয়।
  • ফ্ল্যাশ বার্তা পরিচালনা করতে $_SESSION সুপারগ্লোবাল ভেরিয়েবল ব্যবহার করুন।
  • ফ্ল্যাশ বার্তা পরিচালনা করতে এই টিউটোরিয়ালে বিকশিত ফ্ল্যাশ() ব্যবহার করুন।

Leave a Comment

Share this Doc

PHP ফ্ল্যাশ বার্তা (Flash messages)

Or copy link

CONTENTS

Subscribe

×
Cancel