جلسه دهم PHP: آموزش کامل زبان برنامه نویسی پی اچ پی مقدماتی تا پیشرفته
مقدمه
در این مقاله از کدپز با جلسه دهم PHP در خدمت شما هستیم.
در قسمت قبل در جلسه نهم PHP مبحث جلسه چهارم PHP مربوط به آرایه ها را گسترش دادیم. در ابتدا یک یادآوری از “آرایه ها در PHP “ مطرح شد. سپس سعی بر این شد تا توابعی برای مرتب سازی آرایه ها نام برده شود. و سرآخر با متغیر های superglobal در PHP آشنا شدیم. هرچند ادامه ی مبحث آخر را به تناوب در باقی جلسات و این جلسه بیان می کنیم.
در این جلسه ( جلسه دهم PHP )، نحوه کار با فرم ها در پی اچ پی را مورد بررسی قرار می دهیم. پیشنهاد می شود که قبل از شروع این جلسه مبحث فرم ها در HTML را فرا گیرید. سپس به ادامه ی مبحث توجه کنید.
اما در این جلسه:
در این جلسه با مثالی جامع تقریبا تمامی بخش های یک فرم در html را بررسی می کنیم. و سپس نقش php در این فرم ها را توضیح می دهیم. با متد های GET_$ و POST_$ آشنا می شویم. و متوجه می شویم که کجا از آن ها استفاده کنیم.
یادآوری فرم در html
فرم هایی که توسط html نوشته می شوند، می توانند از کابر مقادیری را دریافت کنند. این فرم ها شامل یک یا چندین کنترل کادرِ متن، دکمه های انتخابی و منو هایی برای انتخاب گزینه ی مورد نظر می باشند.
همانطور که می دانید فرم زیر یک فرم html می باشد. به مثال زیر از جلسه دهم PHP توجه نمایید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<!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 در نظر بگیرید.
1 2 |
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 در نظر بگیرید.
1 2 |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<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
1 2 3 4 5 6 7 8 |
<?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 و همچنین پی اچ پی مقدماتی را پشت سر بگذارید.
17 پاسخ به "جلسه دهم PHP: نحوه کار با فرم ها Form در پی اچ پی آموزش PHP"
سایت زیبایی دارین و مطالب رایگان مفیدی هم دارین. دیزاین سایت رو تحسین میکنم خیلی تکراری نیست و خاصه
تشکر نظر لطف شماست دوست عزیز
ببخشید باید توی قسمت اکشن چی وارد کنیم که درست کار کنه pst و get من هر کاری میکنم انجام نمیشه
یک فایل با پسوند .php بسازید و نام آن را به صورت کامل در مقابل action وارد کنید.
empty به چه معنی است؟و چه کاربردی دارد؟
نمونه های دیگه ای مثل empty هم هست؟
ما برای هر متغیر POST_$ یک عبارت شرطی if elseif else اضافه کرده ایم. حال دستور شرطی، بررسی می کند که آیا متغیر POST_$ خالی است (با استفاده از تابع ()empty) در این صورت متن خطای مورد نظر را در متغیر مربوطه قرار می دهد.
سلام
تو این برنامه ای که فرستادین کاربر میتونه دکمه های Male و Famle رو به صورت همزمان بزنه. چکار میتونم بکنم که نتونه این کار رو بکنه؟
در ضمن نتونستم تو سایت ثبت نام کنم
استفاده از لیست کشویی
لیست های رادیویی انتخاب ها را محدود میسازد
سلام
تو این برنامهای که فرستادین اگر کاربر میزان تحصیلاتش رو وارد کنه برنامه php باید از کجا میزان تحصیلاتش رو بفهمه؟
سلام
برای اینکار باید تمام تاییدیه ها به سمت پایگاه داده ارسال شود و برای مرور پایگاه داده چک شود
خیلی ممنون از آموزشتون.
بسیار عالی و کاربردی بود
بسیار از مشارکت شما سپاسگذارم.
سلام، خسته نباشید ببخشید واس طراحی فرم در php توضیحی بیشتری هست چون ما تو دانشگا امتحان داریم نصف برنامه هامون هم همینطوری، میخواستم اگ امکانش هست نحوه کدنویسی رو ارائه بدید ممنون 🙏🙏
سلام…
برای طراحی فرم در PHP شما به دو تا فایل نیاز دارید. یک فایل برای دریافت اطلاعات از کاربر است که میتوانید آن را به پسوند.html ذخیره کنید. برای مثال: form.html
.
و یک فایل دیگر برای پردازش اطلاعات دریافت شده از کاربر و ثبت مقادیر در بانک اطلاعاتی، که باید آن را با پسوند.php ذخیره کنید. برای مثال file.php
باقی موارد هم در همین آموزش توضیح دادهام.
اگر سؤال دیگری داشتید درخدمتم.
سلام ممنون از وقتی که گذاشتی بابت تمرین ها
فقط یک سری مطالب خوب توضیح داده نشده و سریع از کنارش رد شدی _ موضوع بعدی شفافیت موضوع هست (شما ساده و روان توضیح دادین اما موضوع برای یک فرد مبتدی شفافیت ندارد)
البته من خودم از مثال هاتون بیشتر استفاده کردم اما بخاطر دانش خودم مطالب شما رو تا اخر دارم میخونم .
با سلام
واقعا از زحماتتون ممنونم.
تو همین تمرین جلسه ۱۰ فایل html & php رو تو یه پوشه قرار دادم، فرم رو اجرا میکنم و بعد از کلیک بر روی ارسال بجای نمایش پیام ها تمامی کدهای مربوط به فایل php رو نمایش میده.
میشه راهنمایی کنید
سلام من یک فایل html و php ساختم ولی وقتی مرورگر میارم دستورات نمیاره کاری نمیکنه انگار