در این درس میخواهیم از درست نوشته شدن یا اعتبار سنجی بخش های اجباری در فرمها مطمئن شویم.

معتبر بودن نام در PHP

اعتبارسنجی ایمیل و URL در PHP در ایرناک اعتبارسنجی ایمیل و URL در PHP در ایرناک کدی که در زیر نوشته ایم ساده ترین روش برای بررسی اعتبار نام نوشته شده از طرف کاربر است. این کد بررسی میکند که نام از حروف و فضای خالی استفاده شده باشد. در صورتی که بخش نام این ویژگی را دارا نبود خطا به کاربر نشان دهد. در این کد نویسی از تابع ()preg_match نیز استفاده شده است. این تابع رشته های نوشته شده در الگو را بررسی میکند و اگر از الگوی مورد نظر پیروی میکرد آن را درست اعلام میکند و عدد ۱ را میفرستد، در غیر این صورت غلط بودن آن را برای نمایش خطا به بخش دستور بعدی با عدد ۰ میفرستند. این دستور درون علامت “/ /” و ویژگی های مورد بررسی در [ ] قرار میگیرند. اگر به دنبال بررسی یک رشته خاص باشد در انتهای تابع حرف i را قرار میدهند. اگر از حرف b قبل و بعد آن کلمه یا رشته استفاده شود تنها همان کلمه یا رشته را جستجو میکند و کلمات مشابه را در نظر نخواهد گرفت مانند: bweb/b/ تنها web را جستجو میکند دیگر کلماتی مانند webmaster برایش اهمیت ندارد.

$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name))
{
$nameErr = "Only letters and white space allowed";
}

معتبر بودن E-mail در PHP

دستور زیر معتبر بودن آدرس ایمیل را بررسی میکند اگر درست نبود پیغام خطا را به کاربر نشان میدهد. نحوه نوشتن تابع ()preg_match به صورت نوشتن یک ایمیل است. ابتدا بخش اول ایمیل و کاراکتر هایی که میتواند شامل این بخش شود را بیان کرده سپس با گذاشتن + و @ ویژگی کاراکترهایی که در این بخش از آدرس ایمیل قرار میگیرند و با + و . کاراکترهایی که ویژگی هایی مثل com، org و… را بیان کرده است. هرکدام از این حروف در این تابع بیان کننده یک ویژگی خاص است.

$email = test_input($_POST["email"]);
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))
{
$emailErr = "Invalid email format";
}

معتبر بودن URL در PHP

دستور زیر آدرس سایتی را که در فرم مینوسید را بررسی میکند در صورت درست بودن و معتبر بودن URL آن را ذخیره نماید در غیر این صورت پیغام خطا به کاربر نشان میدهد. در این بخش هم تابع()preg_match بخش های مختلف یک URL را بررسی میکند و در صورت درست بودن آن بخش به کاربر اجازه ارسال اطلاعات را میدهد.

$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website))
{
$websiteErr = "Invalid URL";
}

حال میخواهیم اعتبارسنجی ایمیل و URL در PHP را در کنار هم مشاهده کنیم و آن ها را در کد نویسی فرم قبل اضافه نماییم. این بخش را در بین کد های else if قرار میدهیم.

<!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"]);
// 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 syntax is valid
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$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"]);}
}
 
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>

منابع : W3schools/mobtadi/stackoverfollow

بازدید : 264 بار
(3 رای)
اعتبارسنجی ایمیل و URL در PHP - 3.7 out of 5 based on 3 votes

نوشتن نظرات

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


تصویر امنیتی