متغیر 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 کلیک کنید.
من وقتی فرمو با post میزنم ارور میده همون کد رو با get ک میزنم کامل جواب میده کلی مثالم امتحان کردم مثال های آموزشیم امتحان کردم
میشه راهنماییم کنید
دقیقه شمار از یک تا 90 خودش اتوماتیک بره و هروفت بخوام قطع و وصلش کنم
بنده با متد post یک مطلبی رو به یک صفحه ارسال می کنم . و این کد دریافت اونه :
کد نیومده. در هنگام ارسال کد به جای عبارت > از ;lt& و به جای عبارت < از ;gt& استفاده کنید.
من یک کمک اساسی می خوام یک برنامه نوشتم پر از اشکال یک اشکالش رفع میکنم با یک مشکل دیگه مواجه میشم خواهش می کنم کمکم کنید 2 روز بیشتر وقت ندارم
مشکلتون رو مطرح کنید تا بتونیم کمک کنیم. الآن به نظر شما، ما چطور میتونیم کمک کنیم؟؟؟
Welcome
You are years old
ممنون میشم کمک کنید
کد کامل رو بذارید اینجا، تا ببینم مشکل از چیه؟
اینطوری نمیشه گفت کجا اشتباه کردید.
Name:
Age:
Welcome !
You are years old.
من طبق همین مثال عمل میکنم ولی باز مقدار چاپ شده وارد نمیشود
کد مشکلی نداره!!!
شما کد رو بذاری متوجه میشم مشکل از چیه! تا نبینم نمیتونم راهنمایی کنم. باید ببینم چی کار کردی.
نام:
ایمیل:
اینم کد php:
نام :
ایمیل:
امیدوارم این مشکل رو بشه حل کرد !
این کد چی کار می کنه ؟
if ($_SERVER["REQUEST_METHOD"] == "POST")
زما نی که متغییر سرور را با "REQUEST_METHOD" تنظیم کنیم چکار می کند ?
SERVER_$ یک آرایهی سراسری هست و دارای مشخصات از سرور و همینطور از کلاینت هست. معمولا اطلاعات این آرایه رو میخونن و مقدارشو دست نمیزنن.
در مورد سؤال شما باید بگم که صفحات در دنیای وب از دو طریق POST و GET ارسال میشن. تفاوت فاحشی بین این دو متد وجود داره، از جمله امنیت، نحوه و محدودیت ارسال دیتا و ...
متد موردنظر شما چک میکنه که صفحهی درخواستی از چه طریقی ارسال شده است.
در مثال یک مربوط به متغیر $_post اگر بخواهیم برای مثال علاوه اعمال این کار بر روی صفحه wellcome.php بر روی صفحه ای بنام index.php هم اینکار انجام شود قسمت action رو به چه صورت مینویسیم
ببینید در اکشن ادرس یک صفحه رو میتوان ذکر کرد. برای اینکه در تمامی صفحات بتونید از اون متغیرهای مربوط که در فرم ارسال میکنید، استفاده کنید، بهترین راه استفاده از متغیر سراسری SESSION_$ هست. که به صورت یک ارایه ی سراسری مقدار میگیرد.
و یک سوال دیگه اینکه در صفحه قبل گفته بودید تمام متغییرهای مربوط به method رو توضیح دادید ، در ادامه این مطالب که نبود ، در جای دیگه ای توضیح دادید یا بعدا اضافه می کنید ؟
ممنون از سایت خوبتون
در مورد قسمت دوم سوالتون، ان شا الله، در انتهای همین مطلب، بقیه ی متغییرهای Superglobal را خواهیم گفت.
در مورد Superglobal من به شخصه منتظر هستم فقط اگر می شد که وقتی من نوعی لاگین کردم تو سایت ، مطالبی که جدیدتر اضافه می شه تو سایت برای من کاربر ، مجزا از بقیه بخش ها مشخص می شد خیلی عالی بود ، چون ممکنه در هر جای این سایت و مطالبش ، قسمتی اضافه بشه و مسلما من متوجه آن بخش هایی که قبلا مطالعه کردم نمی شم
متشکرم