বেসিক পি.এইচ.পি : পি.এইচ.পি এইচ.টি.এম.এল কোড

 


বেসিক পি.এইচ.পিপি.এইচ.পি এইচ.টি.এম.এল কোড

পিএইচপি (PHP) এবং এইচটিএমএল (HTML) একে অপরের পরিপূরক। পিএইচপি মূলত সার্ভার-সাইডে ডেটা প্রসেস করে, আর এইচটিএমএল সেই ডেটা ব্রাউজারে সুন্দরভাবে উপস্থাপন করে।

নিচে পিএইচপি এবং এইচটিএমএল কীভাবে একত্রে কাজ করে তার একটি সহজ গাইড দেওয়া হলো:

. এইচটিএমএল-এর ভেতরে পিএইচপি লিখবেন কীভাবে?

এইচটিএমএল ফাইলের যেকোনো জায়গায় আপনি পিএইচপি ব্লক ব্যবহার করতে পারেন। তবে মনে রাখবেন, ফাইলটির এক্সটেনশন অবশ্যই .php হতে হবে (যেমন: index.php)

PHP

<!DOCTYPE html>

<html>

<head>

    <title>PHP and HTML</title>

</head>

<body>

 

    <h1>আমার প্রথম পিএইচপি পেজ</h1>

 

    <?php

        echo "<p>এই লেখাটি পিএইচপি থেকে আসছে!</p>";

    ?>

 

</body>

</html>

. পিএইচপি কেন ব্যবহার করবেন? (ডায়নামিক কন্টেন্ট)

এইচটিএমএল স্থির (Static), কিন্তু পিএইচপি ব্যবহার করে আপনি কন্ডিশন বা ভ্যারিয়েবলের ওপর ভিত্তি করে কন্টেন্ট পরিবর্তন করতে পারেন।

উদাহরণ (ভ্যারিয়েবল ব্যবহার):

PHP

<?php

    $user_name = "আরিফ";

?>

 

<h1>স্বাগতম, <?php echo $user_name; ?>!</h1>


. কন্ডিশনাল এইচটিএমএল (Logic with HTML)

লজিকের ওপর ভিত্তি করে আপনি এইচটিএমএল কোড দেখাতে বা লুকাতে পারেন। এটি পিএইচপির অন্যতম শক্তিশালী দিক।

PHP

<?php $is_logged_in = true; ?>

 

<?php if ($is_logged_in): ?>

    <button>প্রোফাইল দেখুন</button>

<?php else: ?>

    <button>লগ-ইন করুন</button>

<?php endif; ?>


. লুপ এবং টেবিল (Data representation)

পিএইচপি দিয়ে আপনি ডাটাবেজ থেকে আসা তথ্য খুব সহজে এইচটিএমএল টেবিলে সাজাতে পারেন।

আইটেম

দাম

আপেল

১০০ টাকা

কমলা

১২০ টাকা

Export to Sheets

কোড উদাহরণ:

PHP

<ul>

    <?php

    $fruits = ["আপেল", "কমলা", "কলা"];

    foreach ($fruits as $fruit) {

        echo "<li>$fruit</li>";

    }

    ?>

</ul>

গুরুত্বপূর্ণ টিপস:

  • ইকো (echo): এইচটিএমএল ট্যাগগুলো পিএইচপির ভেতর echo বা print দিয়ে প্রিন্ট করা যায়।
  • ক্লিন কোড: এইচটিএমএল-এর মাঝে খুব বেশি পিএইচপি লজিক না লিখে আলাদা ফাইলে রাখলে কোড বুঝতে সুবিধা হয়।
  • ব্রাউজার ভিউ: ব্রাউজারে যখন আপনি "View Page Source" করবেন, তখন আপনি শুধু এইচটিএমএল দেখবেন, পিএইচপি কোড নয়। কারণ পিএইচপি সার্ভারে রান হয়ে এইচটিএমএল কনভার্ট হয়ে যায়।

একটি সাধারণ কন্টাক্ট ফর্ম তৈরি করতে আমাদের দুটি অংশ লাগবে: . HTML অংশ: যেখানে ব্যবহারকারী তার নাম এবং মেসেজ লিখবেন। . PHP অংশ: যা ফর্মের ডাটা রিসিভ করবে এবং প্রসেস করবে।

নিচে একটি পূর্ণাঙ্গ উদাহরণ দেওয়া হলো যা আপনি একটি সিঙ্গেল ফাইলে (যেমন: contact.php) সেভ করে রান করতে পারবেন:

সিম্পল কন্টাক্ট ফর্ম (PHP & HTML)

PHP

<!DOCTYPE html>

<html lang="bn">

<head>

    <meta charset="UTF-8">

    <title>যোগাযোগ ফর্ম</title>

    <style>

        body { font-family: Arial, sans-serif; margin: 50px; line-height: 1.6; }

        .container { max-width: 400px; background: #f4f4f4; padding: 20px; border-radius: 8px; }

        input, textarea { width: 100%; padding: 10px; margin: 10px 0; border: 1px solid #ccc; }

        button { background: #28a745; color: white; padding: 10px 15px; border: none; cursor: pointer; }

        .success { color: green; font-weight: bold; }

    </style>

</head>

<body>

 

<div class="container">

    <h2>আমাদের মেসেজ পাঠান</h2>

 

    <?php

    // ফর্ম সাবমিট হয়েছে কি না চেক করা

    if ($_SERVER["REQUEST_METHOD"] == "POST") {

        $name = htmlspecialchars($_POST['name']);

        $email = htmlspecialchars($_POST['email']);

        $message = htmlspecialchars($_POST['message']);

 

        if (!empty($name) && !empty($email)) {

            echo "<p class='success'>ধন্যবাদ $name! আপনার মেসেজটি আমরা পেয়েছি।</p>";

        } else {

            echo "<p style='color:red;'>অনুগ্রহ করে সব ঘর পূরণ করুন।</p>";

        }

    }

    ?>

 

    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

        <label>আপনার নাম:</label>

        <input type="text" name="name" placeholder="আপনার নাম লিখুন" required>

 

        <label>ইমেইল:</label>

        <input type="email" name="email" placeholder="আপনার ইমেইল" required>

 

        <label>মেসেজ:</label>

        <textarea name="message" rows="4" placeholder="আপনার কথা লিখুন"></textarea>

 

        <button type="submit">সাবমিট করুন</button>

    </form>

</div>

 

</body>

</html>


এই কোডটি কীভাবে কাজ করছে?

  • method="post": এটি ফর্মের ডাটাগুলোকে গোপনে সার্ভারে পাঠায় (URL- দেখায় না)
  • $_POST['name']: এটি পিএইচপি- একটি সুপার গ্লোবাল ভ্যারিয়েবল যা এইচটিএমএল ইনপুট ফিল্ডের name অ্যাট্রিবিউট থেকে ডাটা সংগ্রহ করে।
  • htmlspecialchars(): এটি একটি সিকিউরিটি ফাংশন। এটি ব্যবহারকারী যাতে কোনো ক্ষতিকর স্ক্রিপ্ট ইনজেক্ট করতে না পারে তা নিশ্চিত করে।
  • $_SERVER['PHP_SELF']: এই কোডটির মাধ্যমে ফর্ম সাবমিট করার পর পেজটি রিফ্রেশ হয়ে একই পেজেই রেজাল্ট দেখাবে।

নিচে MySQL ডাটাবেজে কন্টাক্ট ফর্মের ডাটা সেভ করার একটি কমপ্লিট উদাহরণ দেওয়া হলো:

. প্রথমে ডাটাবেজ তৈরি করুন

আপনার phpMyAdmin বা MySQL টার্মিনালে গিয়ে নিচের কোডটি রান করে একটি টেবিল তৈরি করে নিন:

SQL

CREATE DATABASE contact_db;

 

USE contact_db;

 

CREATE TABLE messages (

    id INT AUTO_INCREMENT PRIMARY KEY,

    name VARCHAR(100) NOT NULL,

    email VARCHAR(100) NOT NULL,

    message TEXT,

    submitted_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP

);


. পিএইচপি কোড (Database Connection & Logic)

এই ফাইলটির নাম দিন process_contact.php এখানে আমি ডাটাবেজ কানেকশন এবং ডাটা ইনসার্ট করার লজিক লিখেছি।

PHP

<?php

// ডাটাবেজ কানেকশন সেটিংস

$servername = "localhost";

$username = "root"; // আপনার ডাটাবেজ ইউজারনেম

$password = "";     // আপনার ডাটাবেজ পাসওয়ার্ড

$dbname = "contact_db";

 

// কানেকশন তৈরি করা

$conn = new mysqli($servername, $username, $password, $dbname);

 

// কানেকশন চেক করা

if ($conn->connect_error) {

    die("কানেকশন ব্যর্থ হয়েছে: " . $conn->connect_error);

}

 

// ফর্ম সাবমিট হয়েছে কি না চেক করা

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    $user_name = $conn->real_escape_string($_POST['name']);

    $user_email = $conn->real_escape_string($_POST['email']);

    $user_msg = $conn->real_escape_string($_POST['message']);

 

    // SQL কুয়েরি লিখে ডাটা সেভ করা

    $sql = "INSERT INTO messages (name, email, message) VALUES ('$user_name', '$user_email', '$user_msg')";

 

    if ($conn->query($sql) === TRUE) {

        echo "<h3>সফলভাবে ডাটাবেজে সেভ হয়েছে!</h3>";

    } else {

        echo "ভুল হয়েছে: " . $sql . "<br>" . $conn->error;

    }

}

 

$conn->close();

?>


. এইচটিএমএল ফর্ম (Frontend)

আপনার মূল ফাইলে এই ফর্মটি থাকবে যা ডাটাগুলো process_contact.php ফাইলে পাঠিয়ে দেবে:

HTML

<form action="process_contact.php" method="POST">

    <label>আপনার নাম:</label><br>

    <input type="text" name="name" required><br><br>

 

    <label>আপনার ইমেইল:</label><br>

    <input type="email" name="email" required><br><br>

 

    <label>মেসেজ:</label><br>

    <textarea name="message" rows="4"></textarea><br><br>

 

    <button type="submit">ডাটা সেভ করুন</button>

</form>


গুরুত্বপূর্ণ কিছু টিপস:

  • Security: আমি এখানে real_escape_string() ব্যবহার করেছি যাতে কেউ হ্যাকিং অ্যাটাক (SQL Injection) না করতে পারে।
  • Local Server: এটি রান করতে আপনার পিসিতে XAMPP বা WAMP সার্ভার ইনস্টল থাকতে হবে।
  • Validation: প্রোফেশনাল কাজের জন্য সবসময় ইমেইল ফরমেট ঠিক আছে কি না তা চেক করে নেওয়া ভালো।

একটি কমপ্লিট পিএইচপি কোড দেওয়া হলো যা আপনার contact_db ডাটাবেজ থেকে তথ্য নিয়ে আসবে এবং টেবিল আকারে দেখাবে:

ডাটাবেজ থেকে ডাটা দেখানোর কোড (view_messages.php)

PHP

<?php

// ডাটাবেজ কানেকশন

$servername = "localhost";

$username = "root";

$password = "";

$dbname = "contact_db";

 

$conn = new mysqli($servername, $username, $password, $dbname);

 

if ($conn->connect_error) {

    die("কানেকশন ব্যর্থ: " . $conn->connect_error);

}

 

// ডাটাবেজ থেকে তথ্য সিলেক্ট করা (সবশেষে যে মেসেজ এসেছে তা আগে দেখাবে)

$sql = "SELECT id, name, email, message, submitted_at FROM messages ORDER BY id DESC";

$result = $conn->query($sql);

?>

 

<!DOCTYPE html>

<html lang="bn">

<head>

    <meta charset="UTF-8">

    <title>মেসেজ লিস্ট</title>

    <style>

        body { font-family: Arial, sans-serif; margin: 40px; }

        table { width: 100%; border-collapse: collapse; margin-top: 20px; }

        th, td { border: 1px solid #ddd; padding: 12px; text-align: left; }

        th { background-color: #007bff; color: white; }

        tr:nth-child(even) { background-color: #f2f2f2; }

        tr:hover { background-color: #ddd; }

        h2 { color: #333; }

    </style>

</head>

<body>

 

    <h2>📩 ইউজারদের পাঠানো মেসেজ তালিকা</h2>

 

    <?php if ($result->num_rows > 0): ?>

        <table>

            <tr>

                <th>আইডি</th>

                <th>নাম</th>

                <th>ইমেইল</th>

                <th>মেসেজ</th>

                <th>তারিখ সময়</th>

            </tr>

           

            <?php while($row = $result->fetch_assoc()): ?>

                <tr>

                    <td><?php echo $row["id"]; ?></td>

                    <td><?php echo $row["name"]; ?></td>

                    <td><?php echo $row["email"]; ?></td>

                    <td><?php echo nl2br($row["message"]); ?></td>

                    <td><?php echo $row["submitted_at"]; ?></td>

                </tr>

            <?php endwhile; ?>

           

        </table>

    <?php else: ?>

        <p>এখনও কোনো মেসেজ জমা পড়েনি।</p>

    <?php endif; ?>

 

    <?php $conn->close(); ?>

 

</body>

</html>


এই কোডটি কীভাবে কাজ করছে?

  • SELECT Query: এই কুয়েরিটি ডাটাবেজ থেকে আপনার সব তথ্য তুলে আনছে। ORDER BY id DESC ব্যবহারের ফলে একদম নতুন মেসেজগুলো টেবিলের সবার উপরে দেখা যাবে।
  • fetch_assoc(): এটি একটি লুপের মাধ্যমে ডাটাবেজের প্রতিটি সারিকে (Row) একে একে রিড করে এবং টেবিলে বসায়।
  • nl2br(): যদি কেউ মেসেজে এন্টার দিয়ে নতুন লাইন লিখে, এই ফাংশনটি ব্রাউজারে সেই নতুন লাইনগুলো (Line breaks) সঠিকভাবে দেখাবে।

 


Post a Comment

0 Comments