cookie ها در PHP
Cookie ها در php
Cookie چیست؟ cookie یک فایل کوچک است که سرور آن را درون کامپیوتر کاربر قرار می دهد. هر بار که همان کامپیوتر یک صفحه را از طریق مرورگرش درخواست می کند، مقدار cookie همراه با درخواست به سرور ارسال می شود. با php، شما می توانید هم مقادیر cookie را بسازید و هم بازیابی کنید.
توجه: یک cookie اغلب برای شناسایی یک کاربر استفاده می شود.
چگونه یک cookie ایجاد کنیم؟
تابع ()setcookie برای ایجاد cookie استفاده می شود.
نکته: تابع ()setcookie باید قبل از تگ <html> قرار گیرد.
نحوه استفاده:
setcookie(name, value, expire, path, domain);
مثال:
در مثال زیر٫ یک cookie با نام "user" ایجاد می کنیم و مقدار "Ali Ahmadi" را به آن اختصاص می دهیم. ما همچنین مشخص می کنیم که cookie پس از یک ساعت از بین برود:
<?php
setcookie("user", "Ali Ahmadi", time()+3600);
?>
<html>
.....
نکته: مقدار cookie به طور خودکار هنگام ارسال کد(URLencoding) می شود و موقع دریافت رمزگشایی می شود (برای پیشگیری از رمزگذاری٫ از ()setrawcookie استفاده کنید.
مثال:
شما می توانید زمان انقضای cookie را به روشی دیگر مشخص کنید، احتمالاً این راه ساده تر از مشخص کردن ثانیه هاست:
<?php
$expire=time()+60*60*24*30;
setcookie("user", "Ali Ahmadi", $expire);
?>
<html>
.....
در مثال بالا زمان انقضا با مقدار "1 ماه" پر شده است( 60sec * 60 min * 24 hours * 30 days)
چگونه مقدار یک cookie را بازیابی کنیم؟
متغیر COOKIE_$ در php برای بازیابی مقدار یک cookie مورد استفاده قرار می گیرد.
مثال:
در مثال زیر٫ مقدار cookie با نام "user" را بازیابی می کنیم و بر روی صفحه، نمایش می دهیم:
<?php
// Print a cookie
echo $_COOKIE["user"];
// A way to view all cookies
print_r($_COOKIE);
?>
در مثال زیر با استفاده از تابع ()isset چک می کنیم که cookie با نام "user" قبلاً set شده است یا نه؟
<html>
<body>
<?php
if (isset($_COOKIE["user"]))
echo "Welcome " . $_COOKIE["user"] . "!<br />";
else
echo "Welcome guest!<br />";
?>
</body>
</html>
چگونه یک cookie را حذف کنیم؟
هنگامی که می خواهید یک cookie را حذف کنید باید اطمینان دهید که تاریخ انقضاء آن به پایان رسیده است.
مثال حذف:
<?php
// set the expiration date to one hour ago
setcookie("user", "", time()-3600);
?>
اگر یک مرورگر cookieها را پشتیبانی نکند چه باید کرد؟
اگر برنامه شما با مرورگرهایی سروکار دارد که cookieها را پشتیبانی نمی کنند، باید روشهای دیگری رابرای انتقال اطلاعات از یک صفحه به صفحه ی دیگر انتخاب کنید. یک روش انتقال اطلاعات از طریق فرم ها و متغیرهای از پیش تعریف شده است(فرم ها و متغیر های از پیش تعریف شده، قبل از این توضیح داده شده اند).
در فرم زیر وقتی که کاربر دکمه ی "submit" را کلیک می کند، ورودی های کاربر را به "welcome.php" می فرستد:
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>
بازیابی اطلاعات در صفحه "welcome.php" شبیه زیر خواهد بود:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?>.<br />
You are <?php echo $_POST["age"]; ?> years old.
</body>
</html>
برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 23757
دیدگاهها
سلام چرا وقتی [echo $_COOKIE[$cookie_name را استفاده می کنیم مقدار value رانمایش می دهد؟؟؟
سلام، برای اینکه از وضعیت کلیه Cookieها مطلع شوید، می توانید از دستور زیر استفاده کنید و متوجه شوید که اشتباه کارتان کجا بوده است:
print_r($_COOKIE);
سلام
میشود مسیرفیزیکی ذخیره سازی وفایل کوکی ها را روی سیستم کاربر بگید که کجا ذخیره میشوند و آیا قابل دسترس هستند یا نه ؟
و سوال دیگر، کوکی ها با توجه به زمان سرور ساخته و منقضی میشوند؛درسته؟
اگر ساعت سیستم کاربر با سرور نخواند چه اتفاقی پیش میآید؟
ویه سوال دیگه:
کوکی ها به صورت پیشفرض فکرکنم به دایرکتوری جاری اسکریپت و تمام فرزندان آن مسیر فرستاده میشود موقع لود صفحه؛درست گفتم آیا؟
با کمال سپاس
با سلام.
کوکیها در واقع اطلاعاتی هست که در سمت کلاینت ذخیره میشه و بعضا میتونه مورد استفادهی سرورها قرار بگیره. برنامهنویسی بر حسب نیاز میتونه برخی از تنظیمات رو توسط کوکی انجام بده.
آدرسش رو بر حسب اینکه مرورگرتون چی هست، میتونید به دست بیارید. همین مورد رو در گوگل سرچ کنید، راهنماییتون خواهد کرد.
کوکیها هم زمان ساخت و انقضاء دارن.
سلام
میخواستم بدونم حداکثر حجم یک cookie چقدره؟؟
باسلام
کوکیها که ذاتاً برای حفظ دادههای کوچک ساخته شده اند، دارای محدودیتهایی نیز هستند. این محدودیتها طبق استاندارد RFC 6265 برای مرورگرها به صورت حداقل تعریف شده اند:
درنظر گرفتن حجم حداقل 4096 بایت (4 کیلوبایت) برای هر کوکی (شامل مجموع کل پارامترها و محتوا)
اجازه دادن حداقل 50 کوکی برای هر دامین
قابلیت ذخیره کردن حداقل 3000 کوکی (ممکن است از دامینهای مختلف باشد)
در مورد حداکثر حجم یک کوکی، مرورگر های مختلف محدودیت های متفاوتی در نظر گرفته اند:
آموزش Cookieها در PHP عالی بود.
1- cookie زمان رو از سرور میگیره دیگه؟ منظورم اینه که اگه زمان رایانه اش رو دستکاری کنه که نمی تونه به cookie حذف شده دسترسی داشته باشه؟
2- اگه بعد از حذف cookie (عقب بردن زمان کوکی) ، زمان سرور به عقب برگرده (عمدی یا سهوی) چه اتفاقی می افته؟ cookie کار می کنه؟
یعنی اگه بخوایم از کوکی استفاده بکنیم دیگه نیمخوا از متغییرهای post و get استفاده کنیم؟؟؟؟؟؟؟
هر کدام کاربردهای خودشان را دارند ...!
زمانی که cookieها روی کامپیوتر کاربر ایجاد می شوند، تا زمانی که زمان انقضای آن نرسیده باشد، مقدار آن در تمام صفحات سایت قابل دستیابی است، اما برای متغییر های GET و POST اینطور نیست.
یک مثال واضح برای کوکی ها، صفحه "ورود کاربران" است. تصور کنید زمانی که کاربر لاگین می کند، می توانید "آی دی" یا "نام کاربری" آنرا درون یک کوکی ذخیره کنید و مثلاً در صفحه ی "دیدگاه ها" از مقدار آن در فیلد "ثبت کننده دیدگاه" استفاده کنید.