کوکی ها در php با یک مثال کاربردی
کوکي : بستهاي از اطلاعات است که توسط سرور وب سايت مورد نظر يا جاري به مرورگرهاي اينترنتي فرستاده ميشود و در صورت لزوم نيز از مرورگرهاي کاربران به سرور باز ميگردد. ايجاد کنندگان وبگاهها کوکيها را مي سازند تا امکان دسترسي بهتر به سايتشان را فراهم کند
اين کوکي ها حاوي اطلاعاتي است که معمولا راجع به شناسه کاربري ، رمز عبور ، تنظيمات يک کاربر بر روي سايت و ... مي باشد .
زماني که کاربر به وسيله کامپيوتر خود همان سايت را باز مي کند ، مرورگر اطلاعات کوکي ها را به سرور ارسال مي کند . از کوکي براي بازيابي اطلاعات کاربري و يا ساير تنظيماتي که کاربر در يک سايت ايجاد کرده است ، در مراجعات بعدي به همان سايت استفاده مي شود
براي مثال فرض کنيد که در يک سايت فروم عضو شده و يک رمز عبور و شناسه کاربري را براي خود تعيين کرده ايد . هنگامي که براي اولين بار اطلاعات کاربري خود را در مرورگر وارد مي کنيد ، اين اطلاعات در يک کوکي بر روي مرورگر کامپيوتر شما ذخيره مي شود . هنگامي که در مراجعه بعدي به همان سايت مي رويد ، متوجه مي شويد که مرورگر اطلاعات کاربري شما را وارد نموده و شما log in شده ايد ، بدون اينکه خودتان کاري انجام داده باشيد . در واقع مرورگر از کوکي براي ايجاد ، ذخيره و ارسال مجدد اين اطلاعات به سرور استفاده کرده است .
از تابع ( ) setcookie براي ايجاد و ذخيره يک کوکي در زبان PHP استفاده مي شود
شکل کلي تعريف و ايجاد يک کوکي به وسيله تابع ()setcookie در PHP به صورت زير است :
;(setcookie ( name , value , expire , path , domain
• پارامتر name تعيين کننده نام کوکي است . از اين نام براي بازيابي و فراخواني کوکي در سطح برنامه استفاده مي شود .
• پارامتر value مقدار کوکي را تعيين مي کند .اين مقدار بر روي کامپيوتر ذخيره مي شود .
• پارامتر expire تعيين کننده مدت زمان اعتبار کوکي ، بر حسب ثانيه است . پس از اتمام اين مدت زمان ، کوکي از بين خواهد رفت .
• پارامتر path تعيين کننده مسيري بر روي سرور سايت است که کوکي در آن ، قابل دريافت و ذخيره است .
• پارامتر domain ، دامنه اي که کوکي بر روي آن قابل دسترس است را تعيين مي کند .
حال به مثالي که در کلاس کار کرديم مي پردازيم :
مي خواهيم سايتي ايجاد کنيم که کاربر بتواند رنگ پس زمينه سايت را بدلخواه انتخاب کرده و در بازديدهاي بعدي به همان رنگ درآيد ، خب براي اين کار از يک فرم استفاده کرده رنگ را از فرم گرفته و از طريق تابع setcookie در مرورگر کاربر دخيره مي نماييم
form.html:
<form action="main.php" method="post"> <input name="color" type="radio" value="red" /> red <input name="color" type="radio" value="blue" /> blue <input name="color" type="radio" value="green" /> green <input type="submit" value="set color" /> </form>
خب همانطور که از کد پيداست اين فرم از سه دکمه راديويي تشکيل شده که که کاربر فقط مي تواند از بين سه رنگ قرمز وآبي و سبز يکي را انتخاب نمايد مي توانيم بجاي دکمه راديويي از عنصر فرم با نوع رنگ (html5)استفاده کنيم تا انتخابهاي رنگ بيشتري داشته باشيم
<form action="main.php" method="post"> <input name="color" type="color" /> <input type="submit" value="تنظیم رنگ"> </form>
در صفحه زير ابتدا بررسي مي کند که آيا کوکي رنگ
بر روي مرورگر کاربر موجود است يا خير اگر موجود است رنگ را از کوکي مرورگر ميگيرد در غير اينصورت اگر از طرف فرم رنگ لود شده باشد رنگ را از طريق متغير فوق سراسري پست گرفته و در يک کوکي به همين نام ذخيره مي کند
زمان انقضاي کوکي در اين مثال 10 دقيقه اعلام شده نکته: تابع
time
زمان فعلي را به ثانيه در اختيار ما مي گذارد
main.php :
<head> <meta charset="utf-8"> </head> <?php $color = "white"; if (!empty($_COOKIE["color"])) $color = $_COOKIE["color"]; else if(!empty($_POST["color"])) { $color = $_POST["color"]; setcookie("color", $_POST["color"], time() + 10 * 60); } else include("color.html"); ?> <body bgcolor="<?php echo $color ?>"> مثالي از کوکي ها <a href="deletecookie.php" > رنگ پس زمينه را عوض کن </a> </body>
براي عوض کردن رنگ پس زمينه کافي است بر روي لينک کليک کنيم تا کوکي منقضي شود و دوباره فرم انتخاب رنگ لود شود
deletecookie.php :
پاورپوینتهای درسهای مهندسی اینترنت ،طراحی وب ، برنامه نویسی مبتنی بر وب
پاورپوینتهای درسهای مهندسی اینترنت ، طراحی صفحات وب ، برنامه نویسی مبتنی بر وب در آدرس زیر قابل دسترس هستند از آنجا که بر روی one drive قرار داده شده اند لذا همیشه بروزترین نسخه در دسترس می باشد