PHP – آرایه $_POST
PHP - $_POST
$_POST
یک متغیر فوقجهانی در PHP است که حاوی آرایهای از متغیرهای دریافت شده از طریق متد HTTP POST میباشد.
دو روش اصلی برای ارسال متغیرها از طریق متد HTTP POST وجود دارد:
- فرمهای HTML
- درخواستهای HTTP جاوااسکریپت
$_POST در فرمهای HTML
یک فرم HTML اطلاعات را از طریق متد HTTP POST ارسال میکند اگر ویژگی method
فرم به “POST” تنظیم شده باشد.
برای نشان دادن این موضوع، با ایجاد یک فرم HTML ساده شروع میکنیم:
فرم HTML
<html>
<body>
<form method="POST" action="demo_request.php">
Name: <input type="text" name="fname">
<input type="submit">
</form>
</body>
</html>
هنگامی که کاربر بر روی دکمه ارسال کلیک میکند، دادههای فرم به فایل PHP مشخص شده در ویژگی action
تگ <form>
ارسال میشوند.
در فایل اکشن میتوانیم از متغیر $_POST
برای جمعآوری مقدار فیلد ورودی استفاده کنیم:
فایل PHP
$name = $_POST['fname'];
echo $name;
در مثال زیر، فرم HTML و کد PHP را در یک فایل PHP قرار دادهایم. همچنین چند خط اضافی برای امنیت اضافه کردهایم.
مثال
<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 در درخواستهای HTTP جاوااسکریپت
هنگام ارسال درخواست HTTP در جاوااسکریپت، میتوانید مشخص کنید که متد HTTP POST باشد.
برای نشان دادن این موضوع، با ایجاد یک تابع جاوااسکریپت حاوی یک درخواست HTTP شروع میکنیم:
تابع جاوااسکریپت
function myfunction() {
const xhttp = new XMLHttpRequest();
xhttp.open("POST", "demo_phpfile.php");
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.onload = function() {
document.getElementById("demo").innerHTML = this.responseText;
}
xhttp.send("fname=Mary");
}
کد بالا:
- یک درخواست HTTP را آغاز میکند.
- متد HTTP را به POST تنظیم میکند.
- یک هدر درخواست معتبر تنظیم میکند.
- یک تابع برای اجرا زمانی که درخواست به پایان رسید، ایجاد میکند.
- درخواست HTTP را با متغیر
fname
که بهMary
تنظیم شده است، ارسال میکند.
نگاهی به تابعی که پس از پایان درخواست اجرا میشود:
xhttp.onload = function() {
document.getElementById("demo").innerHTML = this.responseText;
}
این تابع تلاش میکند تا پاسخ از عملیات را در یک عنصر HTML با id=”demo” بنویسد.
بیایید یک صفحه HTML با چنین عنصری ایجاد کنیم و همچنین یک دکمه که تابع را اجرا میکند.
اگر جاوااسکریپت را نیز اضافه کنیم، صفحه به این صورت خواهد بود:
مثال
چگونه دادهها را از یک درخواست HTTP ارسال و دریافت کنیم:
<html>
<script>
function myfunction() {
const xhttp = new XMLHttpRequest();
xhttp.open("POST", "demo_ajax.php");
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.onload = function() {
document.getElementById("demo").innerHTML = this.responseText;
}
xhttp.send("fname=Mary");
}
</script>
<body>
<button onclick="myfunction()">Click me!</button>
<h1 id="demo"></h1>
</body>
</html>
در فایل PHP که این درخواست HTTP را دریافت میکند (demo_ajax.php
)، به سادگی از متغیر $_POST
برای بازیابی متغیر fname
استفاده کرده و آن را به عنوان پاسخ مینویسیم.
فایل PHP
$name = $_POST['fname'];
echo $name;
این مثالها نشان میدهند که چگونه میتوانید از $_POST
برای دسترسی به دادههای ارسال شده از طریق فرمهای HTML و درخواستهای HTTP جاوااسکریپت استفاده کنید.
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام