Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengekalkan Data Sesi Apabila Bertukar Antara HTTP dan HTTPS?

Bagaimanakah Saya Boleh Mengekalkan Data Sesi Apabila Bertukar Antara HTTP dan HTTPS?

Susan Sarandon
Susan Sarandonasal
2024-12-03 03:41:10760semak imbas

How Can I Maintain Session Data When Switching Between HTTP and HTTPS?

Mengekalkan Data Sesi Semasa Peralihan HTTP/HTTPS

Apabila bertukar antara perkhidmatan HTTP dan HTTPS pada pelayan yang sama, pembolehubah sesi mungkin hilang. Ini kerana ID sesi HTTP tidak dipindahkan ke sesi HTTPS.

Nasib baik, terdapat tiga cara untuk lulus ID sesi:

1. PHP: session_start()

session_start() menetapkan atau menyambung semula sesi menggunakan ID sesi daripada permintaan (melalui GET, POST atau kuki). Dengan memulakan skrip dengan session_start(), anda biasanya boleh menetapkan ID sesi.

Jika ID sesi tidak ditetapkan, anda boleh mendapatkannya semula dengan session_id() dan kemudian menetapkannya menggunakan session_id().

2. PHP: session_id()

Berikut ialah contoh menggunakan dua skrip, satu untuk HTTP dan satu untuk HTTPS, yang mengekalkan data sesi:

Skrip HTTP:

<?php
// Start session and display a link to transfer session ID.
session_start();
$currentSessionID = session_id();
$_SESSION['testvariable'] = 'It worked';
echo '<a href="https://example.com/securePage.php?session=' . $currentSessionID . '">Click to transfer session</a>';
?>

HTTPS Skrip:

<?php
// Retrieve session ID from the GET request.
$currentSessionID = $_GET['session'];

// Set session ID cookie.
session_id($currentSessionID);

// Start session.
session_start();

// Test retrieval of variable set in HTTP script.
if (isset($_SESSION['testvariable'])) {
  echo $_SESSION['testvariable'];
} else {
  echo 'It did not work.';
}
?>

3. Memastikan Pautan yang Betul

Pautan HTTP dan HTTP mesti dilaraskan untuk memasukkan atau mengecualikan awalan "www" untuk mengekalkan substrat storan data sesi yang sama.

Pastikan bahawa http:// www.example.com/page.php pautan ke https://www.example.com/page.php dan http://example.com/page.php pautan ke https://example.com/page.php.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekalkan Data Sesi Apabila Bertukar Antara HTTP dan HTTPS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn