متغیر post_$ در PHP
متغیر POST_$
POST_$ یک متغیر یا آرایه از پیش تعریف شده است و مقادیر فرم HTMLی که خصوصیت method آن با مقدار "post" پر شده باشد، به صورت اتوماتیک در آن ذخیره می شود.
توجه:
- توجه داشته باشید حروف متغیر POST_$، حروف بزرگ است.
- اطلاعات ارسال شده توسط دیگران قابل مشاهده نیست، و محدودیتی در ارسال وجود ندارد.
- به صورت پیش فرض 8 مگابایت اطلاعات را می توانید از این طریق ارسال کنید(با تغییر مقدار post_max_size در فایل php.ini می توانید این مقدار را تغییر دهید)
مثال:
<form action="welcome.php" method="post">
Name: <input type="text" name="fname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
زمانی که کاربر روی دکمه "Submit" کلیک می کند URL به صورت زیر خواهد بود:
http://www.w3schools.com/welcome.php
فایل "welcome.php" حالا می تواند با استفاده از متغیر POST_$ اطلاعات فرم HTML را جمع آوری کند.
نکته: نام(name) هر فیلد در فرم HTML یونیک است این نام در حقیقت ایندکس آرایه POST_$ خواهد بود، و با آن می توانیم به مقادیر فیلدها دسترسی داشته باشیم
Welcome <?php echo $_POST["fname"]; ?>!<br />
You are <?php echo $_POST["age"]; ?> years old.
متغیر REQUEST_$ در PHP
REQUEST_$ یک متغیر یا آرایه از پیش تعریف شده است و مقادیر فرم HTMLی که خصوصیت method آن با مقدار "post" یا "get"پر شده باشد، هنگام ارسال به صورت اتوماتیک در آن ذخیره می شود.
این متغیر در حقیقت می تواند شامل محتوای متغیر های زیر باشد:
- $_GET
- $_POST
- $_COOKIE
مثال:
Welcome <?php echo $_REQUEST["fname"]; ?>!<br />
You are <?php echo $_REQUEST["age"]; ?> years old.
متغیر GLOBALS$ در PHP
متغیر GLOBALS$ یک متغیر superglobal است که برای دسترسی به متغیرهای عمومی (global) در هر جای اسکریپت ها (داخل توابع و یا متدها) استفاده می شود.
در PHP تمام متغیر های عمومی در آرایه GLOBALS$ ذخیره میشوند. ایندکس این آرایه در واقع نام متغیر خواهد بود.
در مثال زیرنحوه ی استفاده از آرایه GLOBALS$ نشان داده شده است:
مثال (متغییر post_$ در PHP)
$x = 75;
$y = 25;
function addition() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
در مثال بالا، از آنجایی که z با استفاده از آرایه GLOBALS$ تعریف شده است، در خارج از تابع ()addition نیز قابل دسترس خواهد بود.
متغیر SERVER_$ در PHP
متغیر SERVER_$ یک متغیر superglobal است که اطلاعاتی را درباره ی headerها، مسیر و مکان اسکریپتها و ... در خود نگه می دارد.
در مثال زیر، نحوه استفاده از بعضی عناصر آرایه SERVER_$ نشان داده شده است:
مثال (متغییر post_$ در PHP)
echo $_SERVER['PHP_SELF'];//نام فایل اسکریبتی که اخیراً اجرا شده است را برمی گرداند
echo "<br>";
echo $_SERVER['SERVER_NAME'];//نام سرور هاست را برمی گرداند
echo "<br>";
echo $_SERVER['HTTP_HOST'];//با توجه به درخواست جاری، هدر هاست را برمی گرداند
echo "<br>";
echo $_SERVER['HTTP_REFERER'];//آدرس کامل صفحه جاری را برمی گرداند
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];//اطلاعات مرورگر و سیستم عامل و ... را برمی گرداند
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];//مسیر اسکریبت جاری را برمی گرداند
?>
در آینده با متغیرهای superglobal زیر نیز آشنا خواهید شد:
- متغیر SESSION_$ : آموزش PHP-متغیر session
- متغیر COOKIE_$: آموزش PHP-متغیر cookie
- متغیر FILES_$: آموزش PHP-فایل ها
برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 29806
دیدگاهها
سلام
من وقتی فرمو با post میزنم ارور میده همون کد رو با get ک میزنم کامل جواب میده کلی مثالم امتحان کردم مثال های آموزشیم امتحان کردم
میشه راهنماییم کنید
ُسلام، لطفا متن خطا رو ارسال کنید ...!
سلام من میخوام یه سایت نتایج زنده ورزش درست کنم میخواستم بیینم از چه کدی میتوم استفاده کنم برای اینکه
دقیقه شمار از یک تا 90 خودش اتوماتیک بره و هروفت بخوام قطع و وصلش کنم
سلام خسته نباشید .
بنده با متد post یک مطلبی رو به یک صفحه ارسال می کنم . و این کد دریافت اونه :
با سلام و تشکر.
کد نیومده. در هنگام ارسال کد به جای عبارت > از ;lt& و به جای عبارت < از ;gt& استفاده کنید.
سلام
من یک کمک اساسی می خوام یک برنامه نوشتم پر از اشکال یک اشکالش رفع میکنم با یک مشکل دیگه مواجه میشم خواهش می کنم کمکم کنید 2 روز بیشتر وقت ندارم
با سلام و خسته نباشید.
مشکلتون رو مطرح کنید تا بتونیم کمک کنیم. الآن به نظر شما، ما چطور میتونیم کمک کنیم؟؟؟
لازم به ذکر است که علاوه بر دستور post max size که باید تنظیم شود ؛باید مقدار upload max size نیز تنظیم شود به درستی که موقع ارسال مشکلی پیش نیاید ولی همیشه امکان تغییر وجود ندارد چون روی هاست اشتراکی است.
سلام ببخشید من برای اجرای مثال مربوط به متغیر post دچار مشکل میشم یعنی اطلاعاتی که در فرم نوشته میشن چاپ نمیشن خروجی php به این صورت است
Welcome
You are years old
ممنون میشم کمک کنید
با سلام.
کد کامل رو بذارید اینجا، تا ببینم مشکل از چیه؟
اینطوری نمیشه گفت کجا اشتباه کردید.
کدش همین کدی هست که اینجا توی سایته
Name:
Age:
Welcome !
You are years old.
من طبق همین مثال عمل میکنم ولی باز مقدار چاپ شده وارد نمیشود
یه جا رو داری اشتباه میکنی.
کد مشکلی نداره!!!
شما کد رو بذاری متوجه میشم مشکل از چیه! تا نبینم نمیتونم راهنمایی کنم. باید ببینم چی کار کردی.
این کد html :
نام:
ایمیل:
اینم کد php:
نام :
ایمیل:
امیدوارم این مشکل رو بشه حل کرد !
سلام
این کد چی کار می کنه ؟
if ($_SERVER["REQU EST_METHOD"] == "POST")
زما نی که متغییر سرور را با "REQUEST_METHOD " تنظیم کنیم چکار می کند ?
با سلام.
SERVER_$ یک آرایهی سراسری هست و دارای مشخصات از سرور و همینطور از کلاینت هست. معمولا اطلاعات این آرایه رو میخونن و مقدارشو دست نمیزنن.
در مورد سؤال شما باید بگم که صفحات در دنیای وب از دو طریق POST و GET ارسال میشن. تفاوت فاحشی بین این دو متد وجود داره، از جمله امنیت، نحوه و محدودیت ارسال دیتا و ...
متد موردنظر شما چک میکنه که صفحهی درخواستی از چه طریقی ارسال شده است.
سلام
در مثال یک مربوط به متغیر $_post اگر بخواهیم برای مثال علاوه اعمال این کار بر روی صفحه wellcome.php بر روی صفحه ای بنام index.php هم اینکار انجام شود قسمت action رو به چه صورت مینویسیم
با سلام.
ببینید در اکشن ادرس یک صفحه رو میتوان ذکر کرد. برای اینکه در تمامی صفحات بتونید از اون متغیرهای مربوط که در فرم ارسال میکنید، استفاده کنید، بهترین راه استفاده از متغیر سراسری SESSION_$ هست. که به صورت یک ارایه ی سراسری مقدار میگیرد.
مزیت استفاده از REQUEST_$ چیست که از خود متغیرهای POST_$ یا GET_$ استفاده نکنیم در حالی که می دانیم در صفحه فرم از کدام method استفاده کرده ایم؟
و یک سوال دیگه اینکه در صفحه قبل گفته بودید تمام متغییرهای مربوط به method رو توضیح دادید ، در ادامه این مطالب که نبود ، در جای دیگه ای توضیح دادید یا بعدا اضافه می کنید ؟
ممنون از سایت خوبتون
آرایه REQUEST_$ نسبت به POST_$ یا GET_$ مزیتی نداره، حتی پيشنهاد می شه از اين آرايه استفاده نكنيد چون اگه منتظر دریافت يكسري اطلاعات به روي post باشيد، بدليل استفاده از request_$ صفحه شما مقادير get رو هم ميخونه که این موضوع امنیت را پایین می یاره (بعنوان مثال هنگام LOGIN که اطلاعات با متد POST ارسال می شه، اگر سمت سرور نام کاربری و پاسورد را بصورت REQUEST_$ دریافت کنید، یک هکر می تونه، اطلاعات را از طریق متد GET به سرور ارسال کنه) اما بیاد داشته باشید که GET_$ ماکسیمم کاراکتر دریافتی داره اما REQUEST_$ اینطور نیست.
در مورد قسمت دوم سوالتون، ان شا الله، در انتهای همین مطلب، بقیه ی متغییرهای Superglobal را خواهیم گفت.
ممنون از پاسخ خوبتون
در مورد Superglobal من به شخصه منتظر هستم فقط اگر می شد که وقتی من نوعی لاگین کردم تو سایت ، مطالبی که جدیدتر اضافه می شه تو سایت برای من کاربر ، مجزا از بقیه بخش ها مشخص می شد خیلی عالی بود ، چون ممکنه در هر جای این سایت و مطالبش ، قسمتی اضافه بشه و مسلما من متوجه آن بخش هایی که قبلا مطالعه کردم نمی شم
در صفحه نخست سایت بیاموز، سمت راست، با استفاده از پنل "آخرین آموزش های PHP" می توانید آخرین مطالب ویرایش شده را مشاهده فرمایید.
چه خوب ،
متشکرم
مرسی از سایت بسیار خوبتون