Oturumu kullanırken neden session_start gereklidir?

3 Cevap php

Neden session_start() gerekir iken ben $_SESSION kullanmadan önce herhangi bir hazırlık yapmadan setcookie kullanabilir? Ve yaptıkları işleri benzer olduğunu düşünüyorum.

3 Cevap

Çünkü setcookie() defines a cookie to be sent along with the rest of the HTTP headers. Bu ne session_start() yapar, örneğin, tamamen farklı bir şey creating a session or resuming the current one based on a session identifier passed via a GET or POST request, or passed via a cookie.

İlk başlığın hemen bir şey ekler ve diğer oturum dosya bulma dener Session kimliği from $ _COOKIEs veya $ _GET veya $ _POST alır ve süre, to tarayıcı gönderir session_save_path ve $ _SESSION içine onun değerlerini unserializing buldu ve eğer, muhtemelen oturum kimliğini sürecinde setcookie kullanarak, yeni bir oturum oluşturduğunuzda. içinde

Bkz chapter on Sessions in the PHP Manual.


Edit Like @Felix correctly points out below, the session is not necessarily saved in a file. It's not that important though, because the argument stays the same: session_start will find and (re-) initialize your session data, while setcookie just does what the name implies.

Gordon dediği gibi oturum veri mutlaka bir dosyada saklanmaz. Ile session_set_save_handler(), örn değerleri saklamak gerektiğini, kendi arka uç tanımlayabilirsiniz bir veritabanında.

Tüm bu veriler alınıyor session_start() ile işlenir. Bu şekilde kolayca uygulama bozmadan sonunu size geri değiştirebilirsiniz.

Not: Bu session_start() için tek nedeni, ve yine sadece çerez ayarı daha sonra çok yapar.