آموزش php مقدماتی قسمت دهم

includedFunctions.php :


<?php
function redirectTo($newLocation)
{
header('Location' . $newLocation);
exit();
}

دیدید که چگونه ، یک صفحه را پروسس و خطاهارا چاچپ کردیم ، حال بیاید برای اعتبارسنجی validation خود چند فانکشن ایجاد کنیم ، فایلی به نام validationFunction.php می سازم و کدهای زیر را در داخل آن قرار می دهم در این فایل قرار است طول رشته و اینکه وجود دارد یا نه چک شود.

<?php

function hasPresence($value)
{
return isset($value) && $value !== "";
}

function hasMaxLength($value, $max)
{
return strlen($value) <= $max;
}

function formErrors($errors = array())
{
$output = '';
if (!empty($errors)) {
$output .= '<div class="error"> Please fix the following errors';
$output .= '<ul>';
foreach ($errors as $key => $error) {
$output .= "<li>{$error}</li>";
}
$output .= '</ul></div>';
}
return $output;
}

?>

فانکشن hasPresence چک می کند اگر ورودی ما وجود داشت و خالی نبود مقدار true و در غیر این صورت false بر می گرداند ، فانکشن hasMaxLength طول رشته را چک می کند فانکشن formErrors آرایه ای از خطا هارا دریافت می کند ، قرار است ما خطا های خود را در داخل آرایه ریخته به این فانکشن پاس دهیم ، تا این فانکشن خطاها را برای ما چاپ کند .
خوب به فایل formSingle باز می گردیم :

<?php
require_once('includedFunctions.php');
require_once('validationFunctions.php');

$errors = array();
$message = '';

if (isset($_POST['submit'])) {
$username = trim($_POST['username']);
$password = trim($_POST['password']);

$fieldsRequired = array('username', 'password');
foreach ($fieldsRequired as $field) {
$value = trim($_POST[$field]);
if (!hasPresence($value)) {
$errors[$field] = ucwords($field) . ' Cant be blank';
}
}
$fieldsWithMaxLengths = array('username'=>30,'password'=>8);
foreach ($fieldsWithMaxLengths as $field =>$maxVal){
$value = trim($_POST[$field]);
if(!hasMaxLength($value,$maxVal)){
$errors[$field] = ucfirst($field).' is too long';
}
}
if (empty($errors)) {
if ($username == 'pouria' && $password == '222') {
redirectTo('basic.php');
} else {
$message = 'Username/Password not match';
}
}
} else {
$username = '';
$message = 'Please log in ';
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Form Single</title>
</head>
<body>
<?php echo $message; ?>
<?php echo formErrors($errors); ?>

<form action="formSingle.php" method="post">
<p>Username:<input type="text" name="username" value=""></p>
<p>Password:<input type="password" name="password" value=""></p>
<p><input type="submit" name="submit" value="submit"></p>

</form>

</body>
</html>

و اما کد های اضافه شده ، ابتدا با دستور require_once فایل validationFunctions.php را فراخوانی کردم ، ابتدا می خواهم چک کنم تا فیلد های من خالی نباشد برای این کار باید از hasPresence که نوشته بودیم استفاده کنم ، برای چک کردن username , password من یک آرایه به نام fieldsRequired ساختم که داخل آرایه username, password وجود دارد البته نام آنها سپس با یک foreach هرکدام از آنهارا در داخل فانکشن hasPresence قرار دادم و چک کردم .
بیاید طول username , password را نیز چک کنیم تا از ۳۰ و ۸ بیشتر نباشد برای این کار هم من مشابه قبل عمل کردم .
در قسمت پایین نیز برای اینکه بتواینم خطاهارا مشاهده کنیم بعد از چاپ messege فانکشن formErrors را صدا زدم.
در آخر چک می کنم اگر آرایه errors من خالی بود انتقال انجام شود ، به صفحه formSingle.php باز گردید یک بار username و یک بار password را خالی رها کنید می بینید که به برای شما پیغام خطا چاپ میشود یا پسورد را بیش از ۸ کاراکتر قرار دهید خطای مربوطه نمایش داده می شود.
به خاطر داشته باشید که شما می توانید این اعمال را به گونه ای دیگر نیز انجام دهید .

کوکی Cookies :

ازکوکی برای ذخیره اطلاعات سمت کاربر استفاده می کنیم .
برای ایجاد کوکی از فانکشن setCookies استفاده می کنیم باید به این فانکشن نام ، مقدار و زمان برای انقضا بدهیم .
ابتدا مطمعن شوید که کوکی مروگر خود را خاموش نکرده باشید سپس مانند من صفحه ای به نام cookeis.php بسازید و کد زیر را داخل آن قرار دهید

<?php

$name = 'test';
$value='45';
$expire = time() + (60*60*24*7);
setcookie($name , $value , $expire);

?>

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>cookies</title>
</head>
<body>

<h2>Hello Cookie</h2>

</body>
</html>

همان طور که می بنید من نام مقدار و زمان را به کوکی دادم . بعد از اجرای کد بالا به قسمت privacy مروگر خود برید و show cookies را انتخاب کنید باید پوشه ای به نام localhost ببنید در آن پوشه به دنبال test بگردید خواهید دید که مقدار آن ۴۵ است .

phptutotial17

حالاکه کوکی را ایجاد کردیم بیاد اطلاعات را دریافت کنیم ، برای این کار از super global به نام $_COOKIE استفاده می کنیم ، در کد زیر ابتدا من آرا پرینت م یکنم تا درون آن را باهم ببینیم سپس چک می کنم اگر کوکی مورد نظر وجود داشت محتوای آن را داخل test قرار بده در غیر این صورت در test عبارت not exist را قرار بده ، چرا چک می کنیم ؟ چون ممکن است کاربر cookie های خود را پاک کرده باشد یا کوکی منغظی شده باشد .

<?php

$name = 'test';
$value = '45';
$expire = time() + (60 * 60 * 24 * 7);
//setcookie($name , $value , $expire);

?>

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>cookies</title>
</head>
<body>

<h2>Hello Cookie</h2>

<pre>
<?php
print_r($_COOKIE);
?>
</pre>

<?php

$test = isset($_COOKIE['test']) ? $_COOKIE['test'] : 'not exist';
echo 'My cookie value is: ' . $test;

?>
</body>
</html>

درباره نویسنده

پوریا

سلام ، من پوریا هستم با جاوا آشنایی دارم به هوش مصنوعی و امنیت علاقه مندم و امید وارم آموزش هایی که در وب سایت قرار می دم برای شما مفید باشه ، موفق باشید {^}

نظر دهید

Click here to post a comment

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *