مثال
المثال التالي بإنشاء ارتباط اسمه "user" مع قيمة "John Doe" . فإن الكعكة تنتهي بعد 30 يوما (86400 * 30) . و "/" يعني أن الكوكي متوفرة في كامل الموقع (otherwise, select the directory you prefer) .
نحن ثم استرداد قيمة ملف تعريف الارتباط "user" (باستخدام متغير $ _COOKIE العالمي). ونحن أيضا استخدام isset() وظيفة لمعرفة ما إذا كان تعيين ملف تعريف الارتباط:
<!DOCTYPE html>
<?php
$cookie_name = "user";
$cookie_value = "John
Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
// 86400 = 1 day
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name]))
{
echo "Cookie named '" . $cookie_name . "' is not
set!";
} else {
echo "Cookie '" . $cookie_name
. "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
تشغيل المثال » تعريف والاستخدام
و setcookie() تحدد وظيفة ارتباط ليتم إرسالها جنبا إلى جنب مع بقية رؤوس HTTP.
وغالبا ما تستخدم الكوكيز لتحديد المستخدم. ملف تعريف الارتباط هو ملف صغير أن يضمن الخادم على جهاز الكمبيوتر الخاص بالمستخدم. في كل مرة يطلب الكمبيوتر نفس صفحة مع مستعرض، وسوف يرسل ملف تعريف الارتباط أيضا. مع PHP، يمكنك على حد سواء إنشاء واسترداد القيم الكعكة.
يتم تعيين اسم الكعكة تلقائيا إلى متغير من نفس الاسم. على سبيل المثال، إذا تم إرسال ملف تعريف الارتباط مع اسم "user" ، تلقائيا إنشاؤها يسمى المتغير $ المستخدم، يحتوي على قيمة الكعكة.
Note: إن setcookie() يجب أن تظهر وظيفة قبل <html> العلامة.
Note: يتم URLencoded قيمة الكعكة تلقائيا عند إرسال ملفات تعريف الارتباط، وفك تلقائيا عندما تلقى (لمنع URLencoding، واستخدام setrawcookie() بدلا من ذلك).
بناء الجملة
setcookie( name,value,expire,path,domain,secure,httponly );
معامل | وصف |
---|---|
name | مطلوب. تحدد اسم الكوكيز |
value | اختياري. تحدد قيمة ملف تعريف الارتباط |
expire | اختياري. يحدد متى تنتهي الكعكة. القيمة: time() + 86400 * 30، وتعيين ملف تعريف الارتباط أن تنتهي في غضون 30 يوما. إذا تم حذف هذه المعلمة أو تعيين إلى 0، فإن الكوكي تنتهي في نهاية الدورة (when the browser closes) . الافتراضي هو 0 |
path | اختياري. يحدد مسار الخادم من الكعكة. إذا تم تعيين إلى "/" ، وسوف تكون الكعكة المتاحة داخل المجال بالكامل. إذا تم تعيين إلى "/php/" ، وسوف تكون الكعكة المتاحة ضمن الدليل فب وكافة الدلائل الفرعية فب فقط. القيمة الافتراضية هي الدليل الحالي الذي يتم تعيين ملف تعريف الارتباط في |
domain | اختياري. تحدد اسم المجال من الكعكة. لجعل الكوكي متوفرة في جميع النطاقات الفرعية لexample.com، مجال لتعيين "example.com" . سوف تعيينها إلى www.example.com جعل الكوكي متوفرة فقط في المجال الفرعي شبكة الاتصالات العالمية |
secure | اختياري. تحدد ما إذا كان ينبغي إحالة ملفات تعريف الارتباط فقط عبر اتصال HTTPS آمن. يشير صحيح أن الكعكة سيتم تعيين فقط في حالة وجود اتصال آمن. الافتراضي هو FALSE |
httponly | اختياري. إذا تعيين إلى TRUE ملفات تعريف الارتباط سيكون الوصول إليها إلا من خلال بروتوكول HTTP (the cookie will not be accessible by scripting languages) . هذا الإعداد يمكن أن يساعد على الحد من سرقة الهوية من خلال هجمات XSS. الافتراضي هو FALSE |
تفاصيل تقنية
قيمة الإرجاع: | الحقيقية على النجاح. FALSE على الفشل |
---|---|
صفحة PHP: | 4+ |
PHP التغيير: | PHP 5.5 - أدرج سمة ماكس العمر في رأس تعيين ملف تعريف الارتباط إرسالها إلى العميل PHP 5.2 - تمت إضافة المعلمة httponly |
مزيد من الأمثلة
مثال
عدة تنتهي مواعيد لملفات تعريف الارتباط:
<?php
$value = "Hello world!";
// cookie will expire when the
browser close
setcookie("myCookie", $value);
// cookie will expire
in 1 hour
setcookie("myCookie", $value, time() + 3600);
// cookie
will expire in 1 hour, and will only be available
// within the php
directory + all sub-directories of php
setcookie("myCookie", $value,
time() + 3600, "/php/");
?>
<html>
<body>
...some code...
</body>
</html>
تشغيل المثال » مثال
لتعديل الكعكة، مجرد مجموعة (again) ملفات تعريف الارتباط باستخدام setcookie() وظيفة:
<?php
$cookie_name = "user";
$cookie_value = "Alex
Porter";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name]))
{
echo "Cookie named '" . $cookie_name . "' is not
set!";
} else {
echo "Cookie '" . $cookie_name
. "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
تشغيل المثال » مثال
لحذف ملفات تعريف الارتباط، استخدم setcookie() وظيفة مع تاريخ انتهاء الصلاحية في الماضي:
<?php
// set the expiration date to one hour ago
setcookie("user",
"" , time() - 3600);
?>
<html>
<body>
<?php
echo "Cookie 'user'
is deleted.";
?>
</body>
</html>
تشغيل المثال » مثال
إنشاء برنامج نصي صغير يتحقق سواء cookies يتم تمكين. أولا، في محاولة لإنشاء ملف تعريف ارتباط اختبار مع setcookie() وظيفة، ثم عد مجموعة متغير $ _COOKIE:
<?php
setcookie("test_cookie", "test" , time() + 3600, '/');
?>
<html>
<body>
<?php
if(count($_COOKIE) > 0) {
echo "Cookies are enabled.";
} else {
echo "Cookies
are disabled.";
}
?>
</body>
</html>
تشغيل المثال » <PHP HTTP المرجعي