Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Memelihara Data Sesi PHP Semasa Ubah Hala HTTP ke HTTPS?
Pengurusan Sesi dalam PHP: Memelihara Data Sesi Merentasi Peralihan HTTP/HTTPS
Apabila mengubah hala pengguna dari halaman HTTP ke halaman HTTPS, a isu biasa timbul di mana pembolehubah sesi hilang. Ini boleh menyebabkan kesulitan kepada pengguna dan menjejaskan kefungsian aplikasi web anda.
Sebab
HTTP dan HTTPS menggunakan protokol yang berbeza, dan apabila bertukar antara keduanya, sesi HTTP ID tidak dipindahkan secara automatik ke sesi HTTPS. Ini mengakibatkan penciptaan sesi baharu.
Penyelesaian
Terdapat tiga pendekatan untuk membetulkan isu ini:
1. PHP: session_start
session_start() memulakan sesi atau mendapatkan semula sesi semasa berdasarkan ID sesi yang diluluskan dalam permintaan. Dengan memanggil session_start() pada kedua-dua skrip HTTP dan HTTPS, ID sesi boleh dikekalkan.
2. PHP: session_id
session_id() membolehkan anda menetapkan ID sesi secara manual. Anda boleh mendapatkan semula ID sesi semasa menggunakan session_id() dan hantarkannya ke skrip HTTPS untuk menetapkan kuki sesi.
3. Menyegerakkan Domain Pelayan HTTP dan HTTPS
Pastikan domain pelayan HTTP dan HTTPS sepadan. Ini akan menghalang penciptaan sesi berasingan apabila bertukar antara protokol. Contohnya, kedua-dua domain hendaklah menggunakan "www.example.com" atau "example.com."
Contoh dengan Dua Skrip:
Skrip HTTP:
session_start(); $currentSessionID = session_id(); $_SESSION['testvariable'] = 'It worked';
HTTPS Skrip:
$currentSessionID = $_GET['session']; session_id($currentSessionID); session_start();
Nota:
Penyelesaian ini memerlukan pelayan HTTP dan HTTPS untuk menggunakan substrat storan data sesi yang sama. Selain itu, berhati-hati dengan potensi risiko keselamatan apabila berkongsi data sesi merentas protokol.
Atas ialah kandungan terperinci Bagaimana untuk Memelihara Data Sesi PHP Semasa Ubah Hala HTTP ke HTTPS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!