کوکی 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 بگردید خواهید دید که مقدار آن 45 است.
حال که کوکی را ایجاد کردیم وقت آن است که اطلاعات را دریافت کنیم، برای این کار از 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>
3 راه برای این کار وجود دارد .
1 – setcookie($name)
2- setcookie($name,null)
3- setcookie($name,$value,(time()-3600)
<?php $name = 'test'; $value = '45'; $expire = time() + (60 * 60 * 24 * 7); //setcookie($name , $value , $expire); setcookie($name, null, time() - 3600); ?> <!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>
همان طور که میبینید من از روش سوم استفاده کردام .
کار با سشن session :
سشن شبیه کوکی است، اما تفاوتهایی نیز دارد. بزرگترین تفاوت آنها این است که در سشن اطلاعات سمت سرور ذخیره میشود.
برای استفاده ازsession ابتدا باید آن را راه اندازی کنیم با دستور session_start(); سپس کافی است یک نام کلیدی ایجاد کرده و مقدار مورد نظر را درون آن قرار دهیم .
<?php session_start(); ?> <!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>Session</title> </head> <body> <?php $_SESSION['firstName'] = 'Pouria'; echo $name = $_SESSION['firstName']; ?> </body> </html>