Memelihara Pembolehubah Sesi Merentas Domain Berbeza
Dalam senario tertentu, adalah wajar untuk mengekalkan pembolehubah sesi merentas berbilang domain. Walau bagaimanapun, secara lalai, pengendalian sesi PHP mengehadkan kebolehaksesan pembolehubah sesi kepada domain asalnya ia dicipta. Ini boleh menimbulkan pengehadan apabila cuba berkongsi data sesi antara tapak atau subdomain yang berbeza.
Penghadan Kuki Sesi
Sesi biasanya diurus menggunakan kuki yang dihantar ke dan dari pelayar pelanggan. Setiap kuki yang dikaitkan dengan sesi tertentu mengandungi pengecam sesi yang unik. Dalam kes sesi merentas domain, penyemak imbas tidak boleh berkongsi kuki dari satu domain dengan domain yang lain. Akibatnya, pembolehubah sesi yang disimpan dalam kuki tidak akan dapat diakses merentas domain yang berbeza.
Teknik Sesi Merentas Domain
Untuk mengatasi had ini dan mengekalkan pembolehubah sesi merentas domain yang berbeza, beberapa teknik tersedia:
Rentetan Pertanyaan Suntikan
Pendekatan yang mudah tetapi tidak disyorkan melibatkan menyuntik pengecam sesi ke dalam rentetan pertanyaan permintaan yang dibuat kepada domain yang berbeza. Ini membolehkan pengecam sesi diteruskan, tetapi ia mempunyai beberapa kelemahan:
API Ambil JavaScript
Lebih baik penyelesaian melibatkan penggunaan API Ambil JavaScript untuk membuat permintaan merentas domain. Ini membolehkan data dipindahkan antara domain sambil mengekalkan kuki sesi utuh. Berikut ialah contoh:
fetch('https://example.com/payment.php', { credentials: 'include' }).then(response => { // Handle response from payment page });
Storan Sesi Dikongsi
Selain menangani had kuki, data sesi juga perlu disimpan di lokasi kongsi yang boleh diakses oleh semua domain yang terlibat. Storan sesi lalai dalam PHP ialah sistem fail setempat, yang tidak sesuai untuk senario merentas domain.
Pengendali Sesi Tersuai
Untuk menangani perkara ini, pengendali sesi tersuai boleh dilaksanakan untuk menyimpan data sesi dalam pangkalan data atau mekanisme storan lain yang boleh diakses secara global. Ini memastikan data sesi boleh dikongsi merentas pelayan dan domain yang berbeza.
Dengan menggunakan teknik ini, adalah mungkin untuk mengekalkan pembolehubah sesi merentas domain yang berbeza, membolehkan pembangun berkongsi data sesi antara berbilang tapak berkaitan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekalkan Pembolehubah Sesi Merentas Domain Berbeza dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!