کاربران آنلاین : 325

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

معتبر بودن نام در 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

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

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

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

اعتبارسنجی ایمیل و URL در PHP-ایرناک اعتبارسنجی ایمیل و 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-ایرناک اعتبارسنجی ایمیل و URL در PHP-ایرناک حال میخواهیم اعتبارسنجی ایمیل و 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

(3 رای)
بازدید : 88 بار

نوشتن نظرات

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


تصویر امنیتی