در اين فصل چكونگي ايجاد فيلد ضروري نشان داده خواهد شد .براي اين فيلد ها متناسب باشرايط فيلد براي كنترل آنها پيغام مناسب در فرم داده ميشود.
در بخش قبلي در جدول قوانين فيلدها ملاحظه فرموديد كه سه فيلدName,E-mail وGender جزو فيلدهاي ضروري هستند .يعني بايستي توسط كاربر تكميل گردند .يعني آنها نمي توانند خالي ارسال شوند.
فليد | قوانين اعتبارسنجي |
---|---|
Name | فيلد ضروري وبايستي فقط شامل حروف وبلنك باشد |
E-mail | .فيلد ضروري وبايدمطابق قانون آدرس ايميل باشد |
Website | قابل قبول داشته باشد Url فيلد اختياريست وبايدآدرس |
Comment | .فيلداختياريست وچند خطي است |
Gender | .فيلد ضروريست وبايد يكي ازموارد انتخاب شود |
در بخش قبلي تمام فيلدها اختياري فرض شدند و مطالب ارائه شد .اما در اين بخش كدهائي جهت فيلدهاي ضروري اضافه ميگردد، تا بتوان متناسب با شرايط فيلدعمليات كنترل را انجام داد.
براي ارائه پيغام خطا براي هر فيلد ضروري يك متغير در نظر گرفته ميشود .متغيرهاي زير
براي هدف كنترل در نظر گرفته ميشود .همچنين براي كنترل متغير ابرجهاني$_post[ ] از دستورif else براي هركدام ازفيلدها استفاده ميگردد
براي كنترل خالي بودن فيلد ازتابع empty ( ) استفاده ميشود، ودر صورت تهي بودن پيغام داده خواهد شد .همه كنترل ها درتابعtest_inpt() انجام ميشود.
مجموعه دستوراتphp خارج ازفرم جهت كنترل مطابق زير است.
<?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; } ?>
براي نمايش خطا در فرم براي فيلدهاي ضروري، براي هركدام ارآنها اسكريپت كوتاهي بعد از فيلد قرار ميگيرد،كه باعث ميشود خطاي مناسب، در صورت تكميل نكردن فيلد بعدازsubmit توليد شود . در اين حالت اطلاعات، درصورتي ارسال ميگردد كه بدون خطا باشد.
بعنوان نمونه براي فيلدname در فرم بدين صورت ميباشد .
Name: <input type="text" name="name"> <span class="error">* <?php echo$nameErr; ?></span>
مثال ـ برنامه كامل فرم واسكريپث كنترل وارسال مطابق زيراست.
<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 class="error">* required field</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 <input type="radio" name="gender" value="other">Other <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>
قدم بعدي كنترلname براي اينكه فقط شامل حروف وبلنك باشد وايميل آدرس قابل قبولي باشدو وبسايت دارايurl قابل قبولي باشد .در بخش بعدي موارد را دنبال ميكنيم .