1
我正在丟失會話變量,同時使用以下代碼維護會話ID。丟失會話變量,同時保持會話ID
index_simplified.html
<!DOCTYPE HTML>
<html>
<body>
<form action="processLogin_simplified.php" method="post">
username:
<input type="text" class="textfield" name="username">
<input type="submit" name="login" value="Login">
</form>
</body>
</html>
processLogin_simplified.php
<?php
session_start();
$_SESSION['username'] = $_POST['username'];
session_write_close(); // tried with and without this line
header('Refresh: 0; URL=https://www.domainname.com/foldername/dashboard_simplified.php');
exit(); // tried with and without this line
?>
dashboard_simplified.php
<?php
session_start();
echo 'session id:' . session_id();
echo '<br><br>username: ' . $_SESSION['username'];
?>
輸出顯示會話標識,但沒有顯示用戶名會話變量。
值得注意的是我的全部代碼工作,直到我通過我的服務器公司購買SSL並添加重定向代碼與這些文件的文件夾的htaccess文件。使用的代碼是:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.domainname.com/foldername/$1 [R,L]
這個成功重定向的用戶使用http轉到使用http到https的相同位置的位置。我也嘗試添加RewriteCond %{HTTPS} off
以確保在用戶最初使用https時不會發生重定向,但這不起作用。
有沒有解決方案,我的會話變量持續?