En son web geliştirme öğreticiler
 

PHP setcookie() Function

<PHP HTTP Referans

Örnek

Aşağıdaki örnek adında bir çerez oluşturur "user" değeri ile "John Doe" . Çerez 30 gün sonra dolacaktır (86400 * 30) . "/" Çerez web sitesinin tamamı mevcut olduğu anlamına gelir (otherwise, select the directory you prefer) .

Sonra cookie`yi almak "user" (global değişken $ _COOKIE kullanarak). Biz de kullanmak isset() çerez ayarlanmışsa öğrenmek için fonksiyon:

<!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>
»Run örnek

Tanımı ve Kullanımı

setcookie() işlevi, bir kurabiye, HTTP başlıklarının kalanıyla birlikte gönderilecek tanımlar.

Çerez genellikle kullanıcıyı tanımlamak için kullanılır. Çerez sunucusu kullanıcının bilgisayarında gömer küçük bir dosyadır. Aynı bilgisayar tarayıcısı olan bir sayfayı istediğinde her defasında, çok çerez gönderir. PHP ile, oluşturmak ve çerez değerlerini alabilir hem.

çerez ismi otomatik olarak aynı adı taşıyan bir değişkene atanır. Bir çerez adı ile gönderilmesi durumunda Örneğin, "user" , değişken otomatik çerez değerini içeren, $ user denilen yaratılır.

Note: setcookie() fonksiyonu ÖNCE görünmelidir <html> etiketi.

Note: çerez değerinin çerez gönderirken otomatik urlencoded ve alınan otomatik deşifre edilir (URLencoding, kullanım önlemek için setrawcookie() yerine).

Sözdizimi

setcookie( name,value,expire,path,domain,secure,httponly );

Parametre Açıklama
name Gereklidir. çerez adını belirtir
value İsteğe bağlı. cookie`yi belirtir
expire İsteğe bağlı. çerez süresi dolduğunda belirtir. Değeri: time() + 86400 * 30, 30 gün içinde sona erecek bir çerez ayarlar. Bu parametre ihmal veya 0 olarak ayarlanırsa, çerez oturumun sonunda sona erecek (when the browser closes) . Varsayılan 0'dır
path İsteğe bağlı. çerez sunucu yolunu belirtir. Olarak ayarlanırsa "/" , çerez, tüm etki alanı içinde satışa sunulacak. Olarak ayarlanırsa "/php/" , çerez sadece php dizini ve php tüm alt dizinleri içinde satışa sunulacak. Varsayılan değer çerez ayarlanır ediliyor geçerli dizindir
domain İsteğe bağlı. çerez alan adını belirtir. Example.com tüm alt alanlarındaki çerez kullanımına açmak için hiç etki alanını ayarlamak "example.com" . www.example.com olarak ayarlama www alt alan adı içinde çerez sadece kullanılabilir hale getirir
secure İsteğe bağlı. çerez sadece güvenli bir HTTPS bağlantısı üzerinden iletilen edilmelidir olup olmadığını belirtir. DOĞRU güvenli bir bağlantı varsa çerez sadece kurulacaktır gösterir. Standart YANLIŞ
httponly İsteğe bağlı. TRUE olarak ayarlanırsa çerez sadece HTTP protokolü üzerinden erişilebilir olacaktır (the cookie will not be accessible by scripting languages) . Bu ayar XSS saldırılarıyla kimlik hırsızlığı azaltmaya yardımcı olabilir. Standart YANLIŞ

Teknik detaylar

Geri dönüş değeri: Başarı durumunda. aksi takdirde FALSE
PHP Sürümü: 4+
PHP Değişiklikler: PHP 5.5 - Bir Max-Yaş nitelik müşteriye gönderilen Set-Cookie başlığındaki dahil
PHP 5.2 - httponly parametresi eklendi

Diğer Örnekler

Örnek

Çeşitli çerezleri için tarihleri ​​aşımı süresi:

<?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>
»Run örnek

Örnek

Sadece set bir çerez, değiştirmek için (again) kullanarak çerez setcookie() fonksiyonu:

<?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>
»Run örnek

Örnek

Kullanmak, bir çerez silmek için setcookie() geçmişte bir son kullanma tarihi ile işlevini:

<?php
// set the expiration date to one hour ago
setcookie("user", "" , time() - 3600);
?>
<html>
<body>

<?php
echo "Cookie 'user' is deleted.";
?>

</body>
</html>
»Run örnek

Örnek

Olmadığını denetleyen bir kod oluşturma cookies etkin. İlk olarak, bir test çerez oluşturmak deneyin setcookie() , ardından işlevi $ _COOKIE dizi değişken saymak:

<?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>
»Run örnek

<PHP HTTP Referans