وظيفة PHP setcookie()
التعريف والاستخدام
تسلم وظيفة setcookie() HTTP كوكيز إلى العميل.
الكوكيز هي متغيرات يتم إرسالها من الخادم إلى المتصفح. عادة ما تكون الكوكيز ملفات نصية صغيرة يتم تعيينها على جهاز المستخدم من قبل الخادم. يتم إرسال هذا الكوكيز كلما قام الحاسوب بطلب صفحة عبر المتصفح.
يحدد اسم الكوكيز نفسه كمتغير. على سبيل المثال، إذا كان الاسم المرسل للكوكيز هو "name"، فإنه يتم إنشاء متغير $user تلقائيًا يحتوي على قيمة الكوكيز.
يجب إعداد الكوكيز قبل إرسال أي مخرجات أخرى.
إذا كانت النتيجة ناجحة، فإن هذه الوظيفة تعود true، وإلا تعود false.
النحو
setcookie(name,value,expire,path,domain,secure)
المتغيرات | وصف |
---|---|
name | مطلوب. تحديد اسم الكوكيز. |
value | مطلوب. تحديد قيمة الكوكيز. |
expire | اختياري. تحديد فترة صلاحية الكوكيز. |
path | اختياري. تحديد مسار الخادم للكوكيز. |
domain | اختياري. تحديد اسم نطاق الكوكيز. |
secure | اختياري. تحديد ما إذا كان يجب نقل الكوكيز عبر اتصال HTTPS آمن. |
نصائح وتعليقات
ملاحظة:يمكن الوصول إلى قيمة الكوكيز المسماة "user" باستخدام $HTTP_COOKIE_VARS["user"] أو $_COOKIE["user"].
ملاحظة:عند ارسال الكوكيز، يتم الترميز التلقائي للقيمة URL. يتم الترميز عند الاستقبال. إذا لم تكن بحاجة إلى ذلك، يمكنك استخدام setrawcookie() بديلاً عن ذلك.
مثال
مثال 1
إعداد وارسال الكوكيز:
<?php $value = "my cookie value"; // ارسال كوكيز بسيطة setcookie("TestCookie",$value); ?> <html> <body> ... ...
<?php $value = "my cookie value"; // ارسال كوكيز تنتهي صلاحيتها بعد 24 ساعة setcookie("TestCookie",$value, time()+3600*24); ?> <html> <body> ... ...
مثال 2
بحث عن طرق مختلفة لاستخراج قيمة الكوكيز:
<html> <body> <?php // اخراج الكوكيز الفردية echo $_COOKIE["TestCookie"]; echo "<br />"; echo \$HTTP_COOKIE_VARS[\"TestCookie\"]; echo "<br />"; // 输出所有 cookie print_r(\$_COOKIE); ?> </body> </html>
输出:
my cookie value my cookie value Array ([TestCookie] => my cookie value)
例子 3
通过把失效日期设置为过去的日期/时间,删除一个 cookie:
<?php // 把失效日期设置为一小时前 setcookie ("TestCookie", "", time() - 3600); ?> <html> <body> ... ...
例子 4
创建一个数组 cookie:
<?php setcookie("cookie[three]","cookiethree"); setcookie("cookie[two]","cookietwo"); setcookie("cookie[one]","cookieone"); // 输出 cookie (在重载页面后) if (isset(\$_COOKIE[\"cookie\"])) { foreach (\$_COOKIE[\"cookie\"] as \$name => \$value) { echo "\$name : \$value <br />"; } } ?> <html> <body> ... ...
输出:
three : cookiethree two : cookietwo one : cookieone