جلسه دهم PHP - یادآوری فرم در html - فرم ها در PHP‌ - آشنایی با متد های GET_$ و POST_$

مقدمه

در این مقاله از کدپز با جلسه دهم PHP در خدمت شما هستیم.

در قسمت قبل در جلسه نهم PHP مبحث جلسه چهارم PHP مربوط به آرایه ها را گسترش دادیم. در ابتدا یک یادآوری از “آرایه ها در PHP “ مطرح شد. سپس سعی بر این شد تا توابعی برای مرتب سازی آرایه ها نام برده شود. و سرآخر با متغیر های superglobal در PHP آشنا شدیم. هرچند ادامه ی مبحث آخر را به تناوب در باقی جلسات و این جلسه بیان می کنیم.

در این جلسه ( جلسه دهم PHP )، نحوه کار با فرم ها در پی اچ پی را مورد بررسی قرار می دهیم. پیشنهاد می شود که قبل از شروع این جلسه مبحث فرم ها در HTML را فرا گیرید. سپس به ادامه ی مبحث توجه کنید.

اما در این جلسه:

در این جلسه با مثالی جامع تقریبا تمامی بخش های یک فرم در html را بررسی می کنیم. و سپس نقش php در این فرم ها را توضیح می دهیم. با متد های GET_$  و POST_$ آشنا می شویم. و متوجه می شویم که کجا از آن ها استفاده کنیم.

یادآوری فرم در html

فرم هایی که توسط html نوشته می شوند، می توانند از کابر مقادیری را دریافت کنند. این فرم ها شامل یک یا چندین کنترل کادرِ متن، دکمه های انتخابی و منو هایی برای انتخاب گزینه ی مورد نظر می باشند.

همانطور که می دانید فرم زیر یک فرم html‌
می باشد. به مثال زیر از جلسه دهم PHP توجه نمایید.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>form in php</title>
</head>
<body>
    <h2>form in html</h2>
        <form action="27.form.php" method="post">
            <fieldset style="width: 600px;">
                <legend>register form</legend>
                <input type="text" name="website" value="codepaz.com" readonly> <br>
                <h2>Specifications:</h2>
                fullname:  <input type="text" name="fname" size="25px" maxlength="25"> <br>
                mail:  <input type="email" value="example@gmail.com" name="mail"> <br>
                password:  <input type="password" name="pass"> <br>
                <h2>choose your education:</h2>
                <select>
                    <option value="diplom" name="diplom">diplom</option>
                    <option value="kardani" name="kardani">kardani</option>
                    <option value="karshenasi" name="karshenasi">karshenasi</option>
                    <option value="arshad" name="arshad">arshad</option>
                </select>
                <h2>choose your age:</h2>
                <input type="range" name="age" min="8" max="100">
                <h2>Gender:</h2>
                <input type="checkbox" name="gender" value="Male" checked>Male
                <input type="checkbox" name="gender" value="Famle">Famle
                <input type="radio" name="gender" value="Famle">Other
                <br><br>
                <textarea name="message" rows="10" cols="30">type your comment:>></textarea>
                <br><br>
                <input type="submit" value="Submit" name="submit">
                <input type="reset" value="reset" name="reset">
            </fieldset>
        </form>

</body>
</html>

خروجی کد بالا از جلسه دهم PHP :

فرم بالا بخش های زیادی دارد. سعی کنید تک به تک بخش
های آن را بررسی کنید تا کمی  برایتان
یادآوری شود. اما اگر جایی از آن را مشکل دارید می توانید در پایین همین بخش کامنت
بگذارید.

فرم ها در PHP‌

فرم html بالا را
ملاحضه نمودید. این فرم اطلاعات متعددی از کاربر دریافت می کند. اما :

اطلاعات دریافت شده از فرم کجا میروند؟

ذخیره داده ها از فرم چگونه است؟

پی اچ پی چه نقشی خواهد داشت؟

و سر آخر کار با فرم ها در PHP
چگونه است؟

 آشنایی با متد های GET_$ و POST_$

هر دو متغیر superglobal ، در جلسه نهم PHP معرفی شدند. در این بخش قرار است تفاوت این دو را بررسی کنیم. هر دو متد، اطلاعات فرم را جمع آوری می کنند. کمی بالاتر مثالی از یک فرم آورده شد. که تقریبا همه کار انجام می داد. اگر توجه کنید ما در آن مثال از متد POST استفاده کردیم.

زمانی که کاربر تمامی کادر ها را پر کرده و بر روی Submit کلیک می کند، اطلاعات پر شده برای پردازش به فایل با نام ۲۷٫form.php ارسال می شوند. این در حالی است که این ارسال به وسیله ی متد HTTP POST ارسال شده است. این متد اطلاعات را در URL نمایش نمی دهد.

اما مثال بالا از جلسه دهم PHP را یک بار دیگر با متد GET اجرا کنید. ملاحضه می کنید که تمامی این اطلاعات در URL به نمایش در آمده اند.

اعتبارسنجی فرم در PHP

یک مثال ساده از نحوه ی کار با فرم

ابتدا مثالی که در ابتدای جلسه (جلسه دهم PHP ) آورده شد را در نظر بگیرید.

قطعه کد زیر را هم در فایلی با پسوند .php وارد کنید.

من نیز فایلی با نام ۲۷٫form.php
ساخته ام.

مثال زیر از جلسه دهم PHP‌ در
نظر بگیرید.

Welcome <?php echo $_POST["fname"]; ?><br>
Your email address is: <?php echo $_POST["mail"]; ?>

حال در هر کجای فرم name
برابر “ fname و mail “ باشد، مقدار آن چاپ می شود. برای مثال من fullname
را sajjadhosseinzadeh و mail
را sajjadhosseinzadeh1997@gmail.com
وارد کرده ام.

خروجی کد بالا از جلسه دهم PHP :

Welcome sajjadhosseinzadeh 
Your email address is: sajjadhosseinzadeh1997@gmail.com

تذکر۱: توجه داشته باشید که هر دو فایل با پسوند های
.html و .php در کنار هم باشند. و برای اجرای فایل از
قسمت localhost ، فایل با پسوند .html
را باز کنید.

تذکر۲: برای نمایش همچین خروجی ای تنها پر کردن fullname
و mail کافی است.

تذکر۳: توجه داشته باشید که اگر مقدار متد عبارت POST
نبود. و مقدار GET را اختیار کرده بود، باید قطعه کد زیر اجرا
می شد.

مثال زیر از جلسه دهم PHP‌ در نظر بگیرید.

Welcome <?php echo $_GET["fname"]; ?><br>
Your email address is: <?php echo $_POST["mail"]; ?>

جمع بندی :

بنابراین توجه داشته باشید که : GET_$ یک آرایه از متغیرهایی است که از طریق پارامترهای URL به اسکریپت فعلی منتقل می شود. و POST_$  یک آرایه از متغیرهایی است که از طریق روش HTTP POST به اسکریپت فعلی منتقل شده است. بنابراین هرگز از GET برای ارسال پسورد ها و یا دیگر اطلاعات مهم استفاده نکنید.

چه زمانی از POST
استفاده کنیم؟

توجه داشته باشید اطلاعاتی که با روش POST ارسال می شوند، به دیگران نشان داده نمی شوند. ( یعنی تمامی اسامی /
مقادیر درون بدنِHTTP  تعبیه شده اند. ) و همچنین هیچ محدودیتی برای مقدار اطلاعاتی ارسال می
شوند وجود ندارد.
علاوه بر این، POST از قابلیت های پیشرفته مانند پشتیبانی از ورودی باینری چند بخش در هنگام
آپلود فایل ها به سرور پشتیبانی می کند.

ما نیز POST را برای ارسال اطلاعاتتان پیشنهاد می کنیم.

تمرین : به عنوان یک تمرین در جلسه دهم PHP شما نیز مانند من، کدِ فرمی را بنویسید که از دو کادر username و password تشکیل شده باشد. و فقط زمانی که کاربر دکمه ی submit را می زند، متنی را نمایش دهد. در غیر اینصورت هیچگونه متنی وجود نداشته باشد. (از عبارت های شرطی if….else….elseif استفاده کنید. جلسه پنجم PHP )

توجه کنید اگر کاربر حتی یکی از دو کادر ِ فرم را پر
کرد و submit را زد، اِروری مبنی بر کار نادرست کاربر
نمایش دهید.

جواب تمرین: در ابتدا سعی کنید تا جواب تمرین را
خودتان به دست آورید.

جواب تمرین فرم ها در PHP از جلسه دهم PHP

فایل html

<html>

<body>

<form action="29.exercise_form.php" method="post">

    Username: <input type="text" name="name"><br>

    Password: <input type="password" name="pass"><br>

    <input type="submit" name="submit">

</form>

</body>

</html>

فایل php

<?php
if ($_POST['submit'] and !empty($_POST['name']) and !empty($_POST['pass'])){
    echo 'Welcome '. $_POST["name"] .'<br>';
    echo 'Your password address is : '. $_POST["pass"];
}elseif ($_POST['submit'] and empty($_POST['name']) or empty($_POST['password'])){
    echo 'fill two section is necessary';
}
?>

اگر سوالی از تمرین بالا داشتید میتونید تو کامنت ها بپرسید.
تبریک میگم شما موفق شدید تا جلسه دهم PHP و همچنین پی اچ پی مقدماتی را پشت سر بگذارید.




سایر مقالات :

جلسه معرفیرفتن به مطلب
جلسه اول Phpرفتن به مطلب
جلسه دوم Phpرفتن به مطلب
جلسه سوم Phpرفتن به مطلب
جلسه چهارم PHPرفتن به مطلب
جلسه پنجم PHPرفتن به مطلب
جلسه ششم PHPرفتن به مطلب
جلسه هفتم PHPرفتن به مطلب
جلسه هشتم PHPرفتن به مطلب
جلسه نهم PHPرفتن به مطلب
جلسه دهم PHP - یادآوری فرم در html - فرم ها در PHP‌ - آشنایی با متد های GET_$ و POST_$رفتن به مطلب
جلسه یازدهم PHP: شی گرایی - تعریف کلاس - ساخت اشیا فراخوانی تابع عضورفتن به مطلب
جلسه پانزدهم PHP: اتصال PHP به MySQL - (PDO یا MySQL) - بستن اتصالرفتن به مطلب
جلسه هفدهم PHP : وارد کردن اطلاعات در MySQL با دو روش mysqli و PDO - به صورت رویه ای و شی گراییرفتن به مطلب
جلسه هجدهم PHP- دریافت آخرین شناسه در پایگاه داده MySQL - دستورات آماده PHP در MySQL رفتن به مطلب
جلسه نوزدهم PHP: رفتن به مطلب
جلسه بیست یکم PHP : XML - DOM - SimpleXMLرفتن به مطلب
جلسه بیست دوم PHP : رفتن به مطلب
جلسه بیست سوم PHP : پایگاه داده و Ajaxرفتن به مطلب
جلسه بیست چهارم PHP : تمارین PHP رفتن به مطلب
جلسه بیست پنجم PHP رفتن به مطلب