$_POST ($_POST)
آرایه «$_POST» یک سوپرگلوبال (Superglobal) است؛ یعنی همیشه و همه جا در دسترس است. از آن برای خواندن داده های فرم POST استفاده می کنیم. تمرکز ما روی «فرم POST در PHP» است.
$_POST چیست و کِی پُر می شود؟
وقتی فرم HTML با method="POST" ارسال شود، یا درخواست AJAX با روش POST برود، سرور مقدارهای ورودی را در $_POST ذخیره می کند.
نمونه ساده دریافت مقدار از فرم
فیلد fname را می خوانیم و چاپ می کنیم. سپس بهتر است مقدار را بررسی کنیم.
$name = $_POST['fname'];
echo $name;
نکته: برای خروجی امن، از تابع htmlspecialchars استفاده کن تا کاراکترهای ویژه بی اثر شوند.
نمونه فرم خودارسال با امن سازی
در این نمونه، فرم به همان فایل ارسال می شود و ورودی امن چاپ می شود.
<html>
<body>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = htmlspecialchars($_POST['fname']);
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
ارسال POST با جاوااسکریپت (مروری سریع)
می توانی با XMLHttpRequest یا fetch درخواست POST بدهی و در PHP مقدار $_POST['fname'] را بخوانی. نمونه آماده را اینجا ببین: Try AJAX POST.
گام های تمرینی سریع
- یک فرم با input fname بساز.
- method را POST بگذار و ارسال کن.
- با htmlspecialchars خروجی را امن کن.
مطالب مرتبط داخل سایت
برای مرور کلی به سوپرگلوبال ها برو. برای ترکیب GET/POST/COOKIE، صفحه $_REQUEST را ببین. همچنین $_GET را مطالعه کن.
جمع بندی سریع
- $_POST برای داده های فرم POST است.
- همیشه ورودی خالی را چک کن.
- خروجی را با htmlspecialchars امن کن.
- می توانی با AJAX نیز POST ارسال کنی.