فراسان

به اشتراک بگذارید برای یادگیری، یاد بگیرید برای به اشتراگ گذاری

PHP برای برنامه نویسان ASP.NET – قسمت دوم

قسمت اول را در اینجا بخوانید.

پردازش فرم ها

ASP.NET تمام سعی خود را کرده تا برنامه نویس را درگیر پردازش فرم های HTML نکند. در واقع یک برنامه نویس ASP.NET ممکن است با فرم های HTML آشنایی نداشته باشد اما در هر صفحه وبی که ایجاد می کند از آن ها استفاده کند. ASP.NET به صورت پیش فرض در هر یک از صفحات aspx یک فرم HTML قرار می دهد تا برنامه نویس بتواند با داده های ورودی کاربر کار کند. شاید در ASP.NET احتیاجی به دانستن نحوه ایجاد و کارکرد فرم های HTML نداشتید اما پردازش فرم های وب یکی از ملزومات اساسی PHP است.

فرم وب

اطلاعات فرم های HTML به دو روش Get و Post فرستاده و دریافت می شوند. در ASP.NET شاید این روش ها از دید برنامه نویس پنهان بمانند اما در PHP این برنامه نویسان هستند که باید در مورد استفاده از این روش ها در شرایط مختلف تصمیم گیری کنند. اطلاعات فرم ها در ASP.NET همیشه به خود صفحه فرستاده می شوند و به صورت پیش فرض از متد post برای این کار استفاده می کند. هنگامی که اطلاعات فرم به سرور برای پردازش فرستاده می شود و دوباره به صفحه باز می گردد، یک PostBack اتفاق می افتد. برای اینکه از متد get استفاده کنیم می توانیم یکسری پارامتر به صفحه مورد نظر خود بفرستیم و در صفحه مقصد با استفاده از Request.QueryString (که آرایه ای است از پارامترهای فرستاده شده توسط صفحه مبدا) اطلاعات فرستاده شده را بخوانیم.

اما در PHP این پروسه تفاوت زیادی دارد. شما باید خودتان در مورد متد ارسال اطلاعات تصمیم گیری کنید. در PHP اطلاعاتی که به روش get فرستاده می شوند را می توان در آرایه $_GET و اطلاعاتی که به روش post فرستاده می شوند را در آرایه $_POST پیدا کرد.

روش Post

همانطور که گفتم ASP.NET از این روش به صورت پیش فرض برای پردازش فرم ها استفاده می کند. در PHP شما می توانید با استفاده از متغیر سراسری $_POST به اطلاعات فرستاده شده توسط این روش دستیابی پیدا کنید. یک مثال کوچک می تواند مسئله را روشن تر کند :

<form action=«welcome.php» method=«post»>
Name: <input type=«text» name=«fname» />
<input type=«submit» name=«btnSubmit» />
</form>

یک فرم ساده HTML ساختیم که اطلاعات خودش (فیلد نام) را به صفحه welcome.php با روش post می فرستد. حالا فایل welcome.php را به صورت زیر می سازیم :

Welcome <?php echo $_POST["fname"]; ?>!<br />

با این یک خط کد ساده اطلاعات فیلد fname را که در صفحه قبل قرار داشت، خواندیم. PHP در روش Post به صورت خودکار فیلدهای فرم را شناسایی می کند. اطلاعات ارسالی توسط این روش برای دیگران قابل رویت نیست و محدودیتی در حجم اطلاعات ارسالی نداریم. البته به صورت پیش فرض ماکزیمم حجم اطلاعات ارسالی در روش Post در PHP برابر با 8 مگابایت است که این مقدار را می توانید در فایل php.ini و با تغییر ثابت post_max_size در این فایل تغییر دهید.

یکی از کاربردهای مهم روش post که در ASP.NET هم استفاده می شود، اعتبار سنجی سمت سرور یا Server Side Validation است. به این صورت که اطلاعات فرم را به جای اینکه به یک صفحه دیگر بفرستید به خود صفحه می فرستید تا عمل اعتبار سنجی انجام شود. سپس اگر اطلاعات ورودی خطایی داشته باشد، در همین صفحه از کاربر می خواهید که اطلاعات را صحیح وارد کند. این روش برای اعتبارسنجی سمت سرور اطلاعاتی که می خواهند در دیتابیس ذخیره شوند بسیار مرسوم است.

روش Get

بر خلاف متد post، اطلاعاتی که با این روش فرستاده می شوند توسط همه قابل رویت هستند. کاربران این اطلاعات را در نوار آدرس مرورگر خود می بینند و برای اطلاعات ارسالی محدودیت حجمی داریم. متغیر $_GET در PHP شامل اطلاعات فرمی است که با متد get ارسال شده است. به مثال زیر توجه کنید :

<form action=«welcome.php» method=«get»>
Name: <input type=«text» name=«fname» />
<input type=«submit» />
</form>

برای نشان دادن اطلاعاتی که از این فرم به فایل welcome.php با استفاده از روش get فرستاده می شود، فایل welcome.php را به صورت زیر می سازیم :

Welcome <?php echo $_GET["fname"]; ?>.<br />

هنگامی که کاربر روی دکمه submit فرم کلیک کند، نوار آدرس مرورگر او آدرسی شبیه به آدرس زیر را نشان خواهد داد :

http://yoursitename.com/welcome.php?name=value

این همان QueryString خودمان در ASP.NET است! در  URL بالا قسمتی که آبی است و بعد از علامت سئوال قرار گرفته را Query String می گویند. ما در ASP.NET برای دسترسی به مقدار پارامتر name در URL بالا از دستور زیر استفاده می کنیم :

Request.QueryString["fname"]

یکی از مزایای استفاده از روش Get این است که کاربر می تواند صفحه را بوکمارک کند، چون دارای یک آدرس مشخص است. هنگامی که از متد get در PHP استفاده می کنید باید به این نکته توجه کنید که تمام فیلد ها به علاوه مقادیر آن ها در نوار آدرس مرورگر قابل مشاهده هستند، پس نباید برای ارسال اطلاعات حساس مثل رمز عبور از این روش استفاده کنید.

نکات تکمیلی

ما در ASP.NET قبل از اینکه از مقادیر موجود در QueryString استفاده کنیم، چک می کنیم که مقداردهی شده باشد، یعنی null نباشد. برای این کار از کدی شبیه به زیر بهره می بریم :

if (Request.QueryString["fname"] != null)
//do something

معادل شرط بالا در PHP کدی شبیه به کد زیر است :

if (isset($_GET["fname"]){
//do something
}

یعنی اگر فیلد fname مقداردهی شده بود عمل مورد نظر را روی آن انجام بده.

farasun.wordpress.com

در مطلب بعد با کوکی ها و نحوه استفاده از آن ها در PHP آشنا خواهید شد. برای اینکه مطالب بعدی را از دست ندهید مشترک فراسان شوید! چطور مشترک شوید؟

farasun.wordpress.com

این مطلب ادامه دارد…

پ.ن : از این به بعد برای تماس با من از این فرم استفاده کنید!

14 پاسخ به PHP برای برنامه نویسان ASP.NET – قسمت دوم

  1. دوست فوریه 16, 2010 در 9:11 ب.ظ.

    اين روش php براي كار با فرم‌ها همانند asp كلاسيك دهه 90 ميلادي است.

    • ایمان فوریه 17, 2010 در 10:48 ق.ظ.

      @ دوست : این روش، روش استاندارد پروتکل HTTP برای کار با منابع یک صفحه وب است. متدهای Get و Post از متدهای استاندارد Hypertext Transfer Protocol هستند و PHP نیز از این متدها پشتیبانی می کند.

  2. صالحی فوریه 17, 2010 در 11:11 ق.ظ.

    خیلی متشکرم برادر.

  3. س فوریه 17, 2010 در 8:26 ب.ظ.

    سلام
    هزار بار ممنون و متشکر از وبلاگ زیباتون
    لطفا این آموزش(مربوط به php) رو ادامه بدید
    یا علی

  4. بازتاب: PHP برای برنامه نویسان ASP.NET – قسمت سوم « فراسان

  5. بازتاب: PHP برای برنامه نویسان ASP.NET – قسمت چهارم « فراسان

  6. Amin مارس 3, 2010 در 10:10 ق.ظ.

    مرسی. مطلب خوبی بود.

    چند وقتی بود گیج شده بودم که این Post و Get برای ASP.net چططوریه!؟ حالا نگو یه عمره دارم ازش استفاده میکنم خبر ندارم.

    خلاصه منو از سردرگمی نجات دادید.
    ممنون.

  7. بازتاب: PHP برای برنامه نویسان ASP.NET – قسمت پنجم « فراسان

  8. بازتاب: PHP برای برنامه نویسان ASP.NET – قسمت ششم « فراسان

  9. بازتاب: PHP برای برنامه نویسان ASP.NET – قسمت هشتم « فراسان

  10. حسین اوت 14, 2010 در 5:09 ب.ظ.

    ممنون . خیلی خیلی مفید بود . لطفا به آموزشهاتون ادامه بدید.

  11. dedd سپتامبر 23, 2010 در 1:21 ب.ظ.

    سلام دوست عزیز
    داده ها چه با post فرستاده شوند و چه با get اگر به روشهای نامتقارنی نظیر rsa رمزگذاری نشوند به وضوح قابل رویت اند چه در روی نوار آدرس و چه روی مانیتور سرورهای پروکسی یا روترهایی که دست هکرها افتاده اند!
    این رمز گذاری در سمت کلاینت با کمک جاوا اسکریپت و با کلید عمومی که قسمت خصوصی آن سمت سرور محفوظ است قابل پیاده سازی است. متاسفانه بسیاری از وب سایتهای حتی حرفه ای در ایران به این حقیقت اعتنایی ندارند و اگر تا به حال هک نشده اند واقعیت این است که ارزشی برای هکرها نداشته اند.

پاسخی بگذارید

در پایین مشخصات خود را پر کنید یا برای ورود روی شمایل‌ها کلیک نمایید:

نشان‌واره‌ی وردپرس.کام

شما در حال بیان دیدگاه با حساب کاربری WordPress.com خود هستید. بیرون رفتن / تغییر دادن )

تصویر توییتر

شما در حال بیان دیدگاه با حساب کاربری Twitter خود هستید. بیرون رفتن / تغییر دادن )

عکس فیسبوک

شما در حال بیان دیدگاه با حساب کاربری Facebook خود هستید. بیرون رفتن / تغییر دادن )

درحال اتصال به %s

دنبال‌کردن

هر نوشته‌ی تازه‌ای را در نامه‌دان خود دریافت نمایید.

به 36 مشترک دیگر بپیوندید