آموزش php : اعتبارسنجی URL و آدرس ایمیل در PHP
در این بخش از آموزش به نحوه اعتبارسنجی نام ها، آدرس های ایمیل و آدرس وبسایت یا URL در PHP خواهیم پرداخت. از شما دعوت میکنیم در ادامه این مقاله با مسترکد همراه شوید.
اعتبارسنجی نام در PHP
با استفاده از کد زیر وجود حروف و فاصله را در فیلد نام بررسی کرده ایم. اگر نام وارد شده در این فیلد معتبر نباشد، پیام خطایی مناسب را در متغیر مربوط به خطا ذخیره میکنیم :
1 2 3 4 | $name = test_input($_POST["name"]); if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = "Only letters and white space allowed"; } |
تابع preg_match()
که در کد بالا به کار رفته است، رشته ای را به دنبال الگوی مورد نظر جستجو میکند. در صورت وجود الگو true و در صورت عدم وجود مقدار false را بازمیگرداند.
در اینجا کدی که ما مورد استفاده قرار داده ایم تنها قادر به اعتبارسنجی اسامی انگلیسی خواهد بود. اگر نیاز به اعتبارسنجی اسامی ایرانی داشته باشید میتوانید به این لینک در گیت هاب مراجعه کنید.
اعتبارسنجی آدرس ایمیل در PHP
ساده ترین و امن ترین روش برای چک کردن فرمت صحیح آدرس ایمیل در پی اچ پی استفاده از تابع filter_var()
است. با استفاده از کد زیر بررسی کرده ایم که اگر ایمیل دارای فرمت صحیح نیست، پیام خطای مربوطه در متغیر خطا ذخیره شود :
1 2 3 4 | $email = test_input($_POST["email"]); if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $emailErr = "Invalid email format"; } |
اعتبار سنجی URL یا آدرس سایت در PHP
در کد زیر سینتکس آدرس سایت را مورد بررسی قرار داده ایم. عبارت منظمی که در اینجا مورد استفاده قرار داده ایم، استفاده از دش یا خط تیره را نیز در آدرس مجاز خواهد شمرد. اگر فرمت url صحیح نباشد، پیام خطای مرتبط در متغیر خطای آدرس ذخخیره میشود :
1 2 3 4 | $website = test_input($_POST["website"]); if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) { $websiteErr = "Invalid URL"; } |
جمع بندی سه بخش بالا
اگر بخش های این آموزش را به ترتیب به همراه ما دنبال کرده باشید، حالا باید اسکریپت شما مشابه کد زیر باشد :
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 40 41 42 43 44 45 46 47 48 49 | <?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"]); // check if name only contains letters and whitespace if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = "Only letters and white space allowed"; } } if (empty($_POST["email"])) { $emailErr = "Email is required"; } else { $email = test_input($_POST["email"]); // check if e-mail address is well-formed if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $emailErr = "Invalid email format"; } } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); // check if URL address syntax is valid (this regular expression also allows dashes in the URL) if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) { $websiteErr = "Invalid URL"; } } 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