Secara default, sesi PHP disimpan di sistem file (di /var/lib/php5, atau di /tmp). Jika situs PHP yang dihosting memiliki penggunaan sesi yang intensif, ini dapat menambah penundaan tambahan untuk menjalankan permintaan PHP. Dimungkinkan untuk mengoptimalkan kinerja PHP dengan menyimpan sesi dalam memori dengan bantuan Memcached. Panduan ini menjelaskan cara menyiapkannya Show
Howto ini diuji pada PrasyaratKebutuhan howto ini Keuntungan dan kerugianKekuranganMenggunakan Memcached untuk menyimpan sesi menetapkan batasan ini
Jangan gunakan Memcached untuk menyimpan sesi PHP jika sesi tersebut berisi data yang masuk akal (misalnya untuk situs web E-niaga) KeuntunganMenggunakan Memcached untuk menyimpan sesi menambah keuntungan ini
ParameterBerikan alamat IP server Memcached MEMCACHED_IP="127.0.0.1" Menyediakan port server Memcached MEMCACHED_PORT="11211"_ InstalasiInstal modul PHP5 untuk Memcache command apt-get install php5-memcached Catatan. Banyak howtos yang tersedia di Internet menggunakan php-memcache melalui php5-memcached. php-memcached direkomendasikan karena lebih baru dan memiliki lebih banyak fitur Saat Anda bekerja dengan aplikasi, Anda membukanya, melakukan beberapa perubahan, lalu menutupnya. Ini sangat mirip dengan Sesi. Komputer tahu siapa Anda. Ia tahu kapan Anda memulai aplikasi dan kapan Anda mengakhiri. Tapi di internet ada satu masalah. server web tidak tahu siapa Anda atau apa yang Anda lakukan, karena alamat HTTP tidak mempertahankan status Variabel sesi mengatasi masalah ini dengan menyimpan informasi pengguna untuk digunakan di beberapa halaman (mis. g. nama pengguna, warna favorit, dll). Secara default, variabel sesi bertahan hingga pengguna menutup browser Jadi; Tip. Jika Anda memerlukan penyimpanan permanen, Anda mungkin ingin menyimpan data dalam database Mulai Sesi PHPSesi dimulai dengan fungsi Variabel sesi diatur dengan variabel global PHP. $_SESSION Sekarang, mari buat halaman baru bernama "demo_session1. php". Di halaman ini, kita memulai sesi PHP baru dan mengatur beberapa variabel sesi Contoh// Mulai sesi // Tetapkan variabel sesi Catatan. Fungsi Dapatkan Nilai Variabel Sesi PHPSelanjutnya, kami membuat halaman lain yang disebut "demo_session2. php". Dari halaman ini, kami akan mengakses informasi sesi yang kami atur di halaman pertama ("demo_session1. php") Perhatikan bahwa variabel sesi tidak diteruskan satu per satu ke setiap halaman baru, melainkan diambil dari sesi yang kita buka di awal setiap halaman ( Perhatikan juga bahwa semua nilai variabel sesi disimpan dalam variabel $_SESSION global Contohsession_start(); // Gema variabel sesi yang diatur di halaman sebelumnya Cara lain untuk menampilkan semua nilai variabel sesi untuk sesi pengguna adalah dengan menjalankan kode berikut Contohsession_start(); print_r($_SESSION); Bagaimana cara kerjanya? Sebagian besar sesi menyetel kunci pengguna di komputer pengguna yang terlihat seperti ini. 765487cf34ert8dede5a562e4f3a7e12. Kemudian, ketika sebuah sesi dibuka di halaman lain, itu memindai komputer untuk kunci pengguna. Jika ada kecocokan, ia mengakses sesi itu, jika tidak, ia memulai sesi baru Semua arahan terkait sesi dapat diatur dengan menggunakan php. file ini. Beberapa arahan PHP terkait sesi yang berguna disebutkan Session Directivetujuansession. save_handlerNilai direktif dapat berupa file atau mm atau sqlite atau pengguna. mm digunakan untuk menangani data sesi dengan menggunakan memori. Sqlite digunakan untuk menangani data dengan menggunakan database SQLite. Pengguna digunakan untuk menangani data dengan menggunakan fungsi yang ditentukan pengguna. session_auto_startNilai dari arahan ini adalah Aktif untuk memulai sesi secara otomatis; . sidang. nameIt digunakan untuk mengatur nama sesi dan nama sesi default adalah PHPSESSID. sidang. save_pathIt digunakan untuk mengatur jalur tempat informasi sesi akan disimpan. Nilai default dari arahan ini adalah file. sidang. hash_functionIni digunakan untuk menghasilkan ID sesi hash. 0 digunakan algoritma MD5 dan 1 digunakan untuk algoritma SHA. sidang. cache_expireIt digunakan untuk mengatur waktu kedaluwarsa sesi. sidang. use_cookiesIt digunakan untuk menyimpan ID sesi dengan menggunakan cookie. 1 digunakan untuk menggunakan cookie dan 0 digunakan untuk tidak menggunakan cookie. sidang. use_only_cookies Digunakan untuk menggunakan cookie hanya untuk menyimpan ID sesi. sidang. cookie_secureIt digunakan untuk menentukan apakah cookie akan menggunakan koneksi aman atau tidak. Ini diaktifkan dengan menggunakan ON dan dinonaktifkan dengan menggunakan nilai Off. sidang. cookie_lifetimeIni digunakan untuk mengatur masa pakai cookieAnda dapat mengunjungi tautan berikut untuk mengetahui lebih lanjut tentang arahan sesi https. // www. php. net/manual/en/ini. daftar. php Fungsi Sesi PHPPHP memiliki banyak fungsi bawaan untuk tugas penanganan sesi. Beberapa fungsi penanganan sesi yang berguna disebutkan di bawah ini Session Functionpurposesession_start() Digunakan untuk memulai sesi baru atau memulai kembali sesi sebelumnya. session_id() Digunakan untuk menyetel atau mendapatkan atau keduanya menyetel dan mendapatkan ID sesi. session_create_id() Digunakan untuk membuat ID sesi baru. session_name()Hal ini digunakan untuk mengatur atau mendapatkan atau keduanya mengatur dan mendapatkan nama sesi saat ini. session_status() Digunakan untuk mendapatkan informasi tentang status sesi saat ini. session_reset() Digunakan untuk menginisialisasi ulang array sesi. session_unset() Digunakan untuk menghapus semua variabel sesi. session_destroy() Digunakan untuk menghancurkan semua data sesi yang terdaftar. session_encode() Digunakan untuk menyandikan data sesi saat ini. session_decode() Ini digunakan untuk mendekode data sesi saat ini yang disandikan. session_commit() Digunakan untuk menulis data sesi dan menutup sesi. session_abort() Digunakan untuk menghapus perubahan pada array sesi dan menutup sesi. session_regenerate_id()Hal ini digunakan untuk menghasilkan sesi baru untuk sesi yang ada. session_cache_limiter() Digunakan untuk menyetel atau mendapatkan pembatas cache dari sesi saat ini. Session_cache_expire() Digunakan untuk menyetel atau mendapatkan waktu kedaluwarsa cache dari sesi saat iniAnda dapat mengunjungi tautan berikut untuk mengetahui lebih lanjut tentang fungsi sesi bawaan PHP. https. // www. php. net/manual/en/ref. sidang. php Variabel Sesi PHPPHP menggunakan array asosiatif bernama $_SESSION untuk menyimpan data sesi. Ini adalah variabel 'superglobal' yang dapat diakses dari mana saja di skrip. Nilai diinisialisasi ke dalam variabel ini setelah membuat sesi dan variabel ini menjadi tidak disetel setelah menghancurkan sesi Penanganan SesiPenanganan sesi dapat dilakukan oleh web server dengan menggunakan database atau file. Penanganan sesi dapat dilakukan dengan menggunakan browser pengguna jika browser tersebut mendukung cookie. Namun jika cookie browser dinonaktifkan oleh pengguna maka cara ini tidak dapat digunakan untuk penanganan sesi. Jadi, menggunakan server web adalah cara terbaik untuk menangani sesi. Langkah-langkah untuk penanganan sesi disebutkan di bawah ini
Buat dan Cetak ID SesiPHP memiliki dua fungsi bawaan untuk membuat atau memulai kembali sesi sebelumnya dan yang disebutkan sebelumnya dalam tutorial ini. Fungsi use session_start() telah ditunjukkan di sini yang digunakan untuk membuat sesi baru atau membuat ulang sesi sebelumnya. Itu memeriksa sesi yang ada untuk pengunjung dan membuat sesi baru jika pengunjung mengunjungi halaman pertama kali. Buat file PHP dengan skrip berikut yang membuat sesi baru untuk pengunjung dan menghasilkan ID sesi unik yang telah dicetak oleh fungsi bawaan lain bernama session_id()
Keluaran Simpan dan Cetak Data SesiVariabel $_SESSION harus diinisialisasi setelah membuat ID sesi untuk menyimpan data sesi. Buat file PHP dengan skrip berikut yang menyimpan nilai kunci "nama" dari variabel $_SESSION[] setelah memulai sesi baru. Fungsi isset() telah digunakan dalam skrip untuk memeriksa variabel $_SESSION[‘name’] disetel atau tidak disetel. Jika nilai tidak disetel untuk variabel ini, nilai akan disetel untuk variabel ini. Jika nilai telah ditetapkan untuk variabel ini, nilai variabel ini akan dicetak dengan pemformatan
Keluaran Output berikut akan muncul jika pengguna mengunjungi halaman tersebut di lain waktu. Nilai variabel $_SESSION[‘name’] telah dicetak di sini. Pesan berikut akan ditampilkan setiap saat hingga sesi dimusnahkan atau data sesi dihapus atau browser dibuka kembali Buat Sesi Setelah Mengautentikasi PenggunaBiasanya, sesi dibuat untuk pengguna terdaftar situs web setelah mengautentikasi pengguna berdasarkan data yang valid untuk mencegah akses tidak sah ke pengguna untuk data sensitif. Penanganan sesi sangat penting bagi situs web e-niaga untuk melacak aktivitas pengguna. Data yang terkait dengan otentikasi pengguna disimpan di server database seperti MySQL, SQLite, SQL Server, PostgreSQL, dll. Informasi pengguna untuk autentikasi telah disimpan dalam teks di sini untuk kemudahan. Buat file teks bernama pengguna. txt dengan isi sebagai berikut dan file tersebut berisi nama, email, username, dan password dari tiga user. Setiap bidang dipisahkan dengan koma (,) di dalam file. Otentikasi akan diverifikasi dengan menggunakan nama pengguna atau email dan kata sandi pengguna. txt nama, email, nama pengguna, kata sandi Buat file HTML bernama loginForm. html dengan skrip berikut yang akan menampilkan formulir login dengan dua bidang teks dan tombol kirim. Nama pengguna atau email akan diambil di bidang teks pertama dan kata sandi akan diambil di bidang teks kedua. Ketika tombol submit akan ditekan, halaman akan dialihkan ke session3. php yang akan dibuat nanti formulir masuk. html < html > Buat file PHP dengan skrip berikut yang mengautentikasi informasi login berdasarkan data pengguna. txt dan menginisialisasi data sesi setelah mengautentikasi pengguna. Variabel $login telah digunakan untuk melacak apakah informasi login yang dikirimkan valid atau tidak valid dan nilai awal dari variabel ini salah. Fungsi isset() pertama akan digunakan untuk memeriksa apakah variabel $_SESSION[‘name’] disetel atau tidak disetel. Jika variabel ini tidak disetel, fungsi isset() kedua akan digunakan untuk memeriksa nilai variabel $_POST['useremail']. Jika nilai variabel ini ditetapkan, nilai formulir yang dikirimkan akan disimpan dalam dua variabel. Jika nilai variabel ini tidak kosong, pengguna. file txt akan dibuka untuk dibaca untuk memeriksa apakah nilai formulir yang dikirimkan cocok dengan nilai email atau nama pengguna dan kata sandi dari setiap pengguna file teks. Fungsi meledak () telah digunakan untuk membagi setiap baris file berdasarkan koma (,) dan menyimpan nilai yang dipecah menjadi empat variabel. Fungsi trim() telah digunakan untuk menghapus ruang ekstra dari kedua sisi variabel. Jika ada entri yang cocok ditemukan, variabel $_SESSION[‘name’] akan diinisialisasi dengan nama pengguna yang cocok yang diambil dari file dan pesan sukses, “Anda berhasil masuk. ” akan dicetak. Jika tidak ditemukan entri yang cocok, form login akan muncul kembali. Jika halaman dikunjungi kembali setelah membuat sesi, pesan selamat datang akan dicetak dengan nilai $_SESSION['name'] sesi3. php
Keluaran Alamat email dan kata sandi telah disediakan dalam formulir login berikut. Nilai-nilai ini akan dicocokkan dengan alamat email dan kata sandi dari setiap pengguna file Output berikut akan muncul jika pengguna menekan tombol kirim setelah memberikan alamat email dan kata sandi yang valid. Keluaran yang sama akan muncul jika pengguna memberikan nama pengguna yang valid menggantikan alamat email untuk autentikasi. Formulir login akan muncul lagi jika nama pengguna atau email atau kata sandi yang diberikan oleh pengguna tidak valid Jika pengguna memuat ulang halaman yang sama lagi setelah berhasil masuk, keluaran berikut akan muncul. Nilai variabel $_SESSION[‘name’] telah dicetak di sini dengan pesan selamat datang. Keluaran ini tidak akan berubah hingga sesi berakhir untuk pengguna atau browser dibuka kembali Ubah Data SesiData sesi dapat dimodifikasi setelah menginisialisasi variabel sesi. Buat file PHP dengan skrip berikut untuk mengetahui cara memodifikasi variabel sesi setelah menginisialisasi variabel $_SESSION. Fungsi isset() telah digunakan dalam skrip untuk memeriksa apakah variabel $_SESSION[‘visit’] disetel atau tidak disetel. Jika variabel $_SESSION['visit'] tidak disetel maka variabel ini akan diinisialisasi ke 1. Jika halaman di-refresh atau dimuat ulang lagi maka nilai variabel ini akan bertambah 1 untuk setiap refresh. Nilai saat ini dari variabel ini akan dicetak setiap kali halaman dimuat
Keluaran Output berikut akan muncul jika halaman dimuat 3 kali. Nilai $_SESSION[‘visit’] bertambah 1 setiap kali halaman dimuat ulang Hapus Data SesiData sesi dapat dihapus dengan menggunakan fungsi unset() atau fungsi session_unset() dari PHP. Buat file PHP dengan skrip berikut yang menggunakan fungsi unset() untuk menghapus data sesi. Variabel $_SESSION['username'] telah diinisialisasi dengan nilai string setelah memulai sesi. Selanjutnya nilai variabel ini sudah dicetak sebelum dan sesudah menjalankan fungsi unset() untuk menghapus data session dari variabel $_SESSION[‘username’]
Keluaran Hancurkan SesiInformasi sesi dapat dihapus dengan menghapus nilai variabel $_SESSION yang telah ditunjukkan pada contoh sebelumnya. PHP memiliki fungsi bawaan bernama session_destroy() untuk menghapus semua informasi terkait sesi sepenuhnya. Buat file PHP dengan skrip berikut yang menunjukkan penggunaan fungsi session_destroy(). Formulir dengan tombol kirim telah digunakan dalam skrip untuk menghancurkan sesi. Setelah memulai sesi, fungsi isset() telah digunakan untuk memeriksa apakah tombol "Hancurkan Sesi" ditekan dan ID sesi tidak kosong. Sesi saat ini akan dihancurkan dengan memanggil fungsi session_destroy() jika ID sesi ada jika tombol "Hancurkan Sesi" ditekan oleh pengguna. Jika halaman dikunjungi untuk pertama kali dan tombol “Hancurkan Sesi” tidak ditekan maka informasi sesi akan disimpan dalam variabel $_SESSION[‘nama’]. Jika halaman tersebut dikunjungi lagi setelah menyimpan informasi sesi tetapi tombol "Hancurkan Sesi" tidak ditekan maka pesan selamat datang akan dicetak
Keluaran Contoh 5. Encoding dan Decoding Data SesiData sesi dapat dikodekan untuk menghasilkan nilai string dengan membuat serialisasi data dan data sesi yang dikodekan dapat diubah menjadi larik dengan melakukan deserialisasi data. Buat file PHP dengan skrip berikut yang menyandikan data sesi menggunakan fungsi session_encode() dan mendekode data sesi yang disandikan menggunakan fungsi session_decode(). Menurut skrip berikut, variabel $_SESSION[“name”] dan $_SESSION[“email”] akan diinisialisasi dengan dua nilai setelah memulai sesi. Nilai dari variabel ini telah dikodekan dengan menggunakan fungsi session_encode() dan dicetak kemudian. Fungsi session_unset() telah digunakan untuk menghapus variabel $_SESSION. Selanjutnya, data string yang disandikan telah diubah menjadi larik dengan menggunakan fungsi session_decode()
Keluaran KesimpulanPenanganan sesi adalah fitur yang sangat penting dari setiap aplikasi berbasis web. PHP memiliki banyak arahan penanganan sesi dan fungsi sesi bawaan untuk menangani tugas terkait sesi. Beberapa penggunaan fungsi sesi yang umum digunakan telah ditunjukkan dalam tutorial ini dengan menggunakan skrip PHP. Tugas beberapa fungsi sesi dapat dilakukan dengan menggunakan arahan sesi tertentu. Misalnya, jika direktif session_auto_start diatur ke Aktif maka sesi akan dimulai secara otomatis tanpa menggunakan fungsi session_start(). Menggunakan tabel database adalah cara yang efisien untuk menyimpan data sesi yang tidak tercakup dalam tutorial ini. Tetapi tujuan sesi untuk aplikasi web dan cara mengimplementasikan fitur penanganan sesi menggunakan skrip PHP telah ditunjukkan dalam tutorial ini untuk membantu pengguna baru PHP untuk menambahkan fitur ini ke dalam aplikasi mereka. Di mana sesi disimpan?Cookie dan Sesi digunakan untuk menyimpan informasi. Cookie hanya disimpan di mesin sisi klien, sementara sesi disimpan di klien dan juga di server .
Bagaimana sesi disimpan di server PHP?Sesi membuat file dalam direktori sementara di server tempat variabel sesi terdaftar dan nilainya disimpan . Data ini akan tersedia untuk semua halaman di situs selama kunjungan tersebut. Lokasi file sementara ditentukan oleh pengaturan di php. file ini bernama session.
Apakah sesi PHP disimpan dalam cookie?Sesi disimpan dalam file yang akan dibuat oleh server php Anda . Untuk mengingat file mana untuk pengguna mana, php juga akan menyetel cookie di browser pengguna yang menyimpan id file sesi ini sehingga pada kunjungan berikutnya php akan membaca file ini dan memuat ulang sesi.
Bagaimana PHP melacak sesi?PHP memungkinkan kami melacak setiap pengunjung melalui ID sesi unik yang dapat digunakan untuk menghubungkan data antar koneksi. Id ini adalah string acak yang dikirim ke pengguna saat sesi dibuat dan disimpan di dalam browser pengguna dalam cookie (secara default disebut PHPSESSID). |