سرفصلهای پست
آموزش طراحی سایت با پی اچ پی – فیلد های الزامی در php
درود به همراهان همیشگی سایت میزفا. در ادامه جلسات کنترل فرم در php با قسمت فیلد های الزامی در php در خدمت شما عزیزان هستم .
همانطور که بارها در وب سایت های مختلف دیده اید برخی فیلد های فرم ها را نمی توانید خالی رها کنید. در این جلسه به شما نحوه ی طراحی این فیلد ها را آموزش خواهیم داد.
فیلد های الزامی در php
در مثال جلسه ی اعتبارسنجی فرم در php مثالی را مشاهده کردید که دارای فیلدهای الزامی بود.
برای طراحی آن مثال باید به صورت زیر عمل کرد :
نام فیلد | اعتبارسنجی |
نام | الزامی است. فقط حروف الفبا و خط فاصله را می پذیرد |
ایمیل | الزامی است. باید حاوی فرمت صحیح ایمیل باشد (به همراه علامت @ و .) |
وب سایت | اختیاری است. در صورتی که پر شود باید فرمت url داشته باشد. |
نظرات | اختیاری است. می تواند شامل چندین خط متن باشد. |
جنسیت | الزامی است. یکی از موارد می تواند انتخاب شود. |
در کد ذیل ، متغیرهای جدیدی با نام های nameErr$ و emailErr$ و genderErr$ و websiteErr$ اضافه شده اند . این متغیرهای خطا ، متن خطای مورد نظر شما را برای فیلدهای الزامی نگه می دارند. ما همچنین برای هر متغیر POST_$ یک دستور if ... else
اضافه کرده ایم. این دستور شرطی، چک می کند که آیا متغیر POST_$ خالی است (با استفاده از تابع ()empty) در این صورت متن خطای مورد نظر را در متغیر مربوطه قرار می دهد ، و اگر خالی نباشد مقدار برگشتی تابع ()test_input در متغیر مربوطه ی آن ذخیره خواهد شد :
<?php // تعریف متغیر ها و نسبت دادن مقدار تهی به آن ها $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $email = $gender = $comment = $website = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) { $nameErr = "Name is required"; } else { $name = test_input($_POST["name"]); } if (empty($_POST["email"])) { $emailErr = "Email is required"; } else { $email = test_input($_POST["email"]); } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); } if (empty($_POST["comment"])) { $comment = ""; } else { $comment = test_input($_POST["comment"]); } if (empty($_POST["gender"])) { $genderErr = "Gender is required"; } else { $gender = test_input($_POST["gender"]); } } ?>
نمایش متن خطا در PHP
در فرم HTML باید یک اسکریپت PHP نیز اضافه کنید.
پس از هر فیلد اجباری نیاز است که کدهای زیر را تکرار نمایید تا پیغام خطای مناسب چاپ شود.
<!DOCTYPE HTML> <html> <head> <style> .error {color: #FF0000;} </style> </head> <body> <?php // define variables and set to empty values $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $email = $gender = $comment = $website = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) { $nameErr = "Name is required"; } else { $name = test_input($_POST["name"]); } if (empty($_POST["email"])) { $emailErr = "Email is required"; } else { $email = test_input($_POST["email"]); } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); } if (empty($_POST["comment"])) { $comment = ""; } else { $comment = test_input($_POST["comment"]); } if (empty($_POST["gender"])) { $genderErr = "Gender is required"; } else { $gender = test_input($_POST["gender"]); } } function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?> <h2>PHP Form Validation Example</h2> <p><span class="error">* required field.</span></p> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> Name: <input type="text" name="name"> <span class="error">* <?php echo $nameErr;?></span> <br><br> E-mail: <input type="text" name="email"> <span class="error">* <?php echo $emailErr;?></span> <br><br> Website: <input type="text" name="website"> <span class="error"><?php echo $websiteErr;?></span> <br><br> Comment: <textarea name="comment" rows="5" cols="40"></textarea> <br><br> Gender: <input type="radio" name="gender" value="female">Female <input type="radio" name="gender" value="male">Male <span class="error">* <?php echo $genderErr;?></span> <br><br> <input type="submit" name="submit" value="Submit"> </form> <?php echo "<h2>Your Input:</h2>"; echo $name; echo "<br>"; echo $email; echo "<br>"; echo $website; echo "<br>"; echo $comment; echo "<br>"; echo $gender; ?> </body> </html>
خروجی :
به پایان این قسمت از آموزش PHP رسیدیم. با ما در جلسات آینده همراه باشید.
منبع : w3schools
یک پاسخ
سلام
چطور میشه یک فیلدی که رای شماره تلفن ساختیم رو آزاد بذاریم تا کاربر مثلا با +98 dh بدون اون یا به هر شکل دیگه ای که میخواد شماره رووارد کنه؟