متغیر get_$ در PHP
متغیرهای عمومی از پیش تعریف شده (Superglobal) در PHP
Superglobalها در واقع متغیرهای از پیش تعریف شده ای هستند که صرفنظر از محدوده یا قلمرو، همیشه می توانید در هر تابع، کلاس یا فایلی به آنها دسترسی داشته باشید.
متغیرهای Superglobal در PHP:
- GET_$
- POST_$
- REQUEST_$
- GLOBALS$
- SERVER_$
- FILES_$
- ENV_$
- COOKIE_$
- SESSION_$
در این بیاموزهای و بیاموزهای بعدی، درباره هر کدام از متغیرهای بالا، توضیح داده خواهد شد.
متغیر GET_$
GET_$ یک متغیر یا آرایه از پیش تعریف شده است و مقادیر فرم HTMLی که خصوصیت method آن با مقدار "get" پر شده باشد، به صورت اتوماتیک در آن ذخیره می شوند.
توجه:
- توجه داشته باشید حروف متغیر GET_$، حروف بزرگ است.
- اطلاعات فرستاده شده از یک فرم HTMLی که خصوصیت method آن با مقدار "get" پر شده باشد توسط هر شخصی قابل مشاهده است (اطلاعات در نوار آدرس مرورگر نمایش داده می شود)، این موضوع در ارسال اطلاعات محدودیت ایجاد می کند.
مثال:
<form action="welcome.php" method="get">
Name: <input type="text" name="fname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
زمانی که کاربر روی دکمه "Submit" کلیک می کند، URL زیر به سرور فرستاده می شود و البته این آدرس توسط هر شخصی قابل مشاهده است:
https://beyamooz.com/welcome.php?fname=Amir&age=28
فایل "welcome.php" حالا می تواند با استفاده از متغیر GET_$ اطلاعات فرم HTML را جمع آوری کند.
نکته: نام (name) هر فیلد در فرم HTML یکتا است. این نام در حقیقت ایندکس آرایه GET_$ خواهد بود، و با آن می توانیم به مقادیر فیلدها دسترسی داشته باشیم.
Welcome <?php echo $_GET["fname"]; ?>.<br />
You are <?php echo $_GET["age"]; ?> years old!
چه موقع از متد "get' استفاده کنیم؟
- زمانی که می خواهیم کلمه عبور یا اطلاعات حساس کاربر را ارسال کنیم، نباید ار متد get استفاده کرد.
- متد get برای ارسال متغیرهای با مقادیر بزرگ، مانند متن ها مناسب نیست.(نباید مقادیرمان بیشتر از 2000 کاراکتر باشد)
- به خاطر اینکه متغیرها و مقادیرشان در URL نمایش داده می شود، بنابراین می توان از آنها در صفحات دیگر پروژه استفاده کرد، در حقیقت از این طریق می توان متغیر ها را به صفحات دیگر پاس داد.
برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 28506
دیدگاهها
سلام من کدهای html مثال بالا رو داخل یک فایل اچ تی ام ال و کدهای php رو با فرمت php. ذخیره کردم. اما وقتی روی دکمه Submit کلیک میکنم در قسمت سرور فقط پیام زیر دیده می شه:welcome
you are years old!
سلام. نام فایل php باید به صورت welcome.php باشه. فایل زیر رو دانلود کنید و از حالت zip در بیاورید و اگه از xampp استفاده می کنید، پوشه ی موجود در آن را در پوشه ی htdocs زمپ قرار دهید:
beyamooz.com/images/PHP/test2.zip
و سپس در مرورگر، آدرس زیر رو وارد کنید:
http://localhost/test2/
سلام، خروجی مثال، نشان می دهد که فیلد های fname و age تنظیم نشده است ...!
سلام، من هم همین مشکل رو دارم، کد رو هم کپی کردم ولی نمی شه ...!
سلام، لطفا برای خروجی گرفتن از مثال بالا، به نکات زیر توجه فرمایید:
1- قسمت های متمایز شده در کد زیر را بررسی کنید:
ویژگی action دقیقا با مقدار welcome.php و ویژگی name دو input نیز درست تنظیم شده باشد:
<form action="welcome.php" method="get"> ;
Name: <input type="text" name="fname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
2- فایل welcome.php را باز کنید و قسمت های متمایز شده در زیر را دقیقا بررسی کنید که با مقادیر تنظیم شده برای ویژگی name در بالا یکسان باشد:
Welcome <?php echo $_GET["fname"]; ?>.<br />
You are <?php echo $_GET["age"]; ?> years old!
code ro daghighan check kardam tu navar adress etelaat send mishe vali ru safhe nemyad
سلام، مثال مربوط به مطلب بالا را تحت یک فایل Zip آماده کردم، لطفا فایل زیر را دانلود کرده و بعد از مشاهده نتیجه، کد آنرا بررسی نمایید:
beyamooz.com/images/PHP/beyamooz.zip
به نقل از امیر پهلوان صادق:
جناب من فایل رو دانلود کردم اما همچنان بعد از submit کردن کد php رو نشون میده و زمانی که از روی localhost فایل php رو باز میکنم ارور undefined index میده
من دقیقا فایل های ارسال شده رو اجرا کردم
سلام. نام فایل php باید به صورت welcome.php باشه. فایل زیر رو دانلود کنید و از حالت zip در بیاورید و اگه از xampp استفاده می کنید، پوشه ی موجود در آن را در پوشه ی htdocs زمپ قرار دهید:
beyamooz.com/images/PHP/test2.zip
و سپس در مرورگر، آدرس زیر رو وارد کنید:
http://localhost/test2/
سلام و خداقوت به شما. ازکی مثال هاتونو با قابلیت ویرایش میذارید؟ مثل html
سلام، متأسفانه بدلیل حفظ امنیت، نمی توان برای آموزش های PHP مثال های قابل ویرایش در نظر گرفت.
REQUEST_$تعریفش چی میشه..ممنون
با سلام.
از REQUEST_$ برای دریافت اطلاعاتی که به صفحه ارسال شده استفاده میشه. چه شما از get استفاده کرده باشی و چه از post.
چرا جواب منو نمیدید کد رو فرستادم
با سلام.
کدی نیومده!
سلام اگه می تونید کمک کنید
وقتی از طریق متد post یا get مقداری ارسال می کنم در صفحه php که ایجاد کردم متغیر پست خالیه و مقداری داخل آن ارسال نمیشه
لطفا کدهاتون رو ارسال کنید تا بتوانیم اونا رو بررسی کنیم.
در نکته آخر چرا از دوتا دستور php استفاده کردید؛همه را در یک دستور خوب قرار میدادید.
با تشکر
چون که می خواهیم بعد از نام، خط شکسته شود(با استفاده از تگ br) و همچنین بعد از کلمه های مورد نظر، مثل نام و سن، مقادیر مورد نظر ما چاپ شود مجبور هستیم تا از 2 دستور php استفاده کنیم.
اگر بخواهیم همه ی این دستورت را داخل یک دستور php قرار دهیم، اونوقت باید عبارات اچ تی ام ال مورد نظر(مثل welcome و you are ) را در متغیر هایی قرار دهیم و آنها را echo کنیم که در این صورت کار پیچیده می شود.
شما می توانید به این صورت عمل کنید:
Welcome ;lt& ?php echo $_GET["fname"]; . & You are
درسته، برای این کار می تونیم به صورت زیر عمل کنیم:
welcome<?php echo($_GET['fna me']."<br> ;". "you are" . $_GET["age"] . "years old";)?>
اما به نظر بنده، در آموزش مقدماتی php این روش کمی پیچیده به نظر می رسه.
سلام خسته نباشید من امتحان کردم بازم اخطار میده میشه یک شماره ایدی بدین تا مشکلمو ازتون بپرسم؟
سلام . به ایمیل [email protected] سوالتون رو ارسال کنید.