di server tempat Anda menjalankan aplikasi php, untuk jalur tertentu Anda harus memeriksa dengan phpinfo ()
densityx
Jawaban:
168
Lokasi $_SESSIONpenyimpanan variabel ditentukan oleh session.save_pathkonfigurasi PHP . Biasanya ini ada /tmpdi sistem Linux / Unix. Gunakan phpinfo()fungsi ini untuk melihat pengaturan khusus Anda jika tidak 100% yakin dengan membuat file dengan konten ini diDocumentRoot domain Anda:
<?php
phpinfo();?>
Berikut ini tautan ke dokumentasi PHP tentang pengaturan konfigurasi ini:
Seperti yang sudah disebutkan, konten disimpan di server. Namun sesi diidentifikasi oleh id sesi, yang disimpan di klien dan dikirim dengan setiap permintaan. Biasanya id sesi disimpan dalam cookie, tetapi juga dapat ditambahkan ke url. (Itulah PHPSESSIDparameter-kueri yang beberapa kali Anda lihat)
+1 karena Anda telah menyiratkan bahwa cookie tidak menyimpan konten $ _SESSION (konten ini disimpan di server, jadi tidak rentan terhadap modifikasi oleh klien)
shufler
12
Jawaban yang sangat bagus! Saya mencari pertanyaan: "Mengapa sesi kedaluwarsa setelah menghapus cache browser?". Dan Anda menyelamatkan hari saya.
Murid
2
server membuat file sess_7nu9p0fvidvva6ouaugqcc8292 dan pada peringatan browser (getCookie ('PHPSESSID')); // 7nu9p0fvidvva6ouaugqcc8292
zloctb
2
Plus1 - Untuk menjawab pertanyaan: "... disimpan pada klien atau server?"
Alex Vargas
22
Biasanya disimpan di server. Di mana mereka disimpan terserah Anda sebagai pengembang. Anda dapat menggunakan session.save_handlervariabel konfigurasi dan session_set_save_handleruntuk mengontrol bagaimana sesi disimpan di server. Metode penyimpanan default adalah menyimpan sesi ke file. Di mana mereka diselamatkan dikendalikan oleh session.save_pathvariabel.
Satu tambahan: Perlu dicatat bahwa, jika "/ tmp" adalah direktori tempat data sesi disimpan (yang tampaknya merupakan nilai default), sesi tidak akan bertahan setelah reboot server web itu, karena "/ tmp "Sering dibersihkan saat reboot. Konsep kegigihan klien-bijaksana berdiri dan jatuh dengan kegigihan penyimpanan di server - yang mungkin gagal jika direktori "/ tmp" digunakan untuk data sesi.
Pada Debian (bukankah ini kasus untuk sebagian besar distro Linux?), Disimpan di / var / lib / php5 /. Seperti disebutkan di atas, ini dikonfigurasi di php.ini Anda.
Terima kasih, itu saja yang saya inginkan. Ya, jika mereka tidak berada di tempat yang biasa, saya harus membuka INI, tetapi saya hanya ingin tahu "Hei, di mana sesi biasanya disimpan?" / var / lib / php / sesi / itu.
Eric L.
7
Seperti yang ditunjukkan oleh Mr. Taylor, ini biasanya diatur dalam php.ini. Biasanya mereka disimpan sebagai file di direktori tertentu.
Bagaimana cara kerjanya? Bagaimana dia tahu ini aku?
Sebagian besar sesi menetapkan kunci pengguna (disebut sessionid) pada komputer pengguna yang terlihat seperti ini: 765487cf34ert8dede5a562e4f3a7e12. Kemudian, ketika sebuah sesi dibuka di halaman lain, itu memindai komputer untuk kunci-pengguna dan berjalan ke server untuk mendapatkan variabel Anda.
Jika Anda salah menghapus cache, maka kunci pengguna Anda juga akan dihapus. Anda tidak akan bisa mendapatkan variabel lagi dari server karena Anda tidak tahu id Anda.
Banyak jawaban di atas tidak jelas. Menurut pendapat saya penulis pertanyaan ini hanya ingin tahu di mana variabel sesi disimpan secara default. Menurut ini: https://canvas.seattlecentral.edu/courses/937693/pages/10-advanced-php-sessions, mereka secara sederhana disimpan di server secara default . Semoga kontribusi orang lain bermanfaat.
Jawaban:
Lokasi
$_SESSION
penyimpanan variabel ditentukan olehsession.save_path
konfigurasi PHP . Biasanya ini ada/tmp
di sistem Linux / Unix. Gunakanphpinfo()
fungsi ini untuk melihat pengaturan khusus Anda jika tidak 100% yakin dengan membuat file dengan konten ini diDocumentRoot
domain Anda:Berikut ini tautan ke dokumentasi PHP tentang pengaturan konfigurasi ini:
http://php.net/manual/en/session.configuration.php#ini.session.save-path
sumber
Seperti yang sudah disebutkan, konten disimpan di server. Namun sesi diidentifikasi oleh id sesi, yang disimpan di klien dan dikirim dengan setiap permintaan. Biasanya id sesi disimpan dalam cookie, tetapi juga dapat ditambahkan ke url. (Itulah
PHPSESSID
parameter-kueri yang beberapa kali Anda lihat)sumber
Biasanya disimpan di server. Di mana mereka disimpan terserah Anda sebagai pengembang. Anda dapat menggunakan
session.save_handler
variabel konfigurasi dansession_set_save_handler
untuk mengontrol bagaimana sesi disimpan di server. Metode penyimpanan default adalah menyimpan sesi ke file. Di mana mereka diselamatkan dikendalikan olehsession.save_path
variabel.sumber
Satu tambahan: Perlu dicatat bahwa, jika "/ tmp" adalah direktori tempat data sesi disimpan (yang tampaknya merupakan nilai default), sesi tidak akan bertahan setelah reboot server web itu, karena "/ tmp "Sering dibersihkan saat reboot. Konsep kegigihan klien-bijaksana berdiri dan jatuh dengan kegigihan penyimpanan di server - yang mungkin gagal jika direktori "/ tmp" digunakan untuk data sesi.
sumber
Pada Debian (bukankah ini kasus untuk sebagian besar distro Linux?), Disimpan di / var / lib / php5 /. Seperti disebutkan di atas, ini dikonfigurasi di php.ini Anda.
sumber
Saya menggunakan Ubuntu dan sesi saya disimpan di / var / lib / php5.
sumber
Seperti yang ditunjukkan oleh Mr. Taylor, ini biasanya diatur dalam php.ini. Biasanya mereka disimpan sebagai file di direktori tertentu.
sumber
Untuk ubuntu 16.10 adalah sesi simpan di / var / lib / php / session / ...
sumber
Bagaimana cara kerjanya? Bagaimana dia tahu ini aku?
Sebagian besar sesi menetapkan kunci pengguna (disebut sessionid) pada komputer pengguna yang terlihat seperti ini: 765487cf34ert8dede5a562e4f3a7e12. Kemudian, ketika sebuah sesi dibuka di halaman lain, itu memindai komputer untuk kunci-pengguna dan berjalan ke server untuk mendapatkan variabel Anda.
Jika Anda salah menghapus cache, maka kunci pengguna Anda juga akan dihapus. Anda tidak akan bisa mendapatkan variabel lagi dari server karena Anda tidak tahu id Anda.
sumber
Dalam sesi mesin Ubuntu saya disimpan di
dan Anda harus
sudo ls
dalam direktori ini hanyals
akan membuangnyaDan pada sesi php server Windows Wamp saya disimpan di
dan jika Anda menginstal php mandiri di windows maka tidak ada nilai yang ditetapkan secara default
sumber
Banyak jawaban di atas tidak jelas. Menurut pendapat saya penulis pertanyaan ini hanya ingin tahu di mana variabel sesi disimpan secara default. Menurut ini: https://canvas.seattlecentral.edu/courses/937693/pages/10-advanced-php-sessions, mereka secara sederhana disimpan di server secara default . Semoga kontribusi orang lain bermanfaat.
sumber