Superglobals কী?
Superglobals হলো কিছু predefined array যা সব scope-এ (function, class) automatically available।
$_GET— URL query parameters$_POST— Form POST data$_REQUEST— GET + POST + COOKIE$_SERVER— Server info$_SESSION— Session data$_COOKIE— Cookies$_FILES— Uploaded files$_ENV— Environment variables$GLOBALS— সব global variables
Form Handling
<!-- form.html -->
<form action="submit.php" method="POST">
নাম: <input type="text" name="name">
বয়স: <input type="number" name="age">
<button type="submit">পাঠান</button>
</form>
// submit.php
<?php
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$name = trim($_POST["name"] ?? "");
$age = (int)($_POST["age"] ?? 0);
// Validation
if (empty($name)) die("নাম দিন");
if ($age < 1) die("সঠিক বয়স দিন");
// Sanitize (XSS এড়াতে)
$name = htmlspecialchars($name, ENT_QUOTES, "UTF-8");
echo "স্বাগতম, $name (বয়স: $age)";
}
GET Request
// URL: page.php?id=42&name=karim $id = $_GET["id"] ?? 0; $name = $_GET["name"] ?? ""; echo "ID: $id, Name: $name";
File Upload
<form action="upload.php" method="POST" enctype="multipart/form-data">
<input type="file" name="photo">
<button type="submit">Upload</button>
</form>
// upload.php
<?php
if (isset($_FILES["photo"])) {
$file = $_FILES["photo"];
if ($file["error"] === UPLOAD_ERR_OK) {
$name = basename($file["name"]);
$tmp = $file["tmp_name"];
$size = $file["size"]; // bytes
$type = $file["type"];
// Validation
$allowed = ["image/jpeg", "image/png"];
if (!in_array($type, $allowed)) die("শুধু jpg/png");
if ($size > 2*1024*1024) die("2MB এর বেশি নয়");
// Save
$target = "uploads/" . uniqid() . "_" . $name;
if (move_uploaded_file($tmp, $target)) {
echo "Upload সফল: $target";
}
}
}
Session
Session হলো server-side storage — ব্যবহারকারীর ডেটা multiple page-এ বজায় রাখে।
<?php
session_start(); // প্রতি file-এর শুরুতে
// Login পেজ
$_SESSION["user_id"] = 42;
$_SESSION["username"] = "করিম";
$_SESSION["role"] = "admin";
// অন্য পেজে
session_start();
if (isset($_SESSION["user_id"])) {
echo "স্বাগতম, " . $_SESSION["username"];
} else {
header("Location: login.php");
exit;
}
// Logout
session_unset(); // সব variable মুছে
session_destroy(); // session শেষ
Cookie
Cookie হলো client-side storage — browser-এ save থাকে।
// Set (header পাঠানোর আগে)
setcookie("theme", "dark", time() + 86400 * 30, "/");
// name, value, expire, path
// Read
if (isset($_COOKIE["theme"])) {
echo $_COOKIE["theme"];
}
// Delete
setcookie("theme", "", time() - 3600, "/");
$_SERVER (গুরুত্বপূর্ণ)
$_SERVER["REQUEST_METHOD"] // "GET", "POST" $_SERVER["REQUEST_URI"] // "/page.php?x=1" $_SERVER["HTTP_HOST"] // "example.com" $_SERVER["REMOTE_ADDR"] // ব্যবহারকারীর IP $_SERVER["HTTP_USER_AGENT"] // ব্রাউজার $_SERVER["HTTP_REFERER"] // আগের পেজ $_SERVER["PHP_SELF"] // বর্তমান script
Header ও Redirect
// Redirect
header("Location: home.php");
exit;
// JSON response
header("Content-Type: application/json");
echo json_encode(["status" => "ok"]);
// HTTP status
http_response_code(404);