2017-06-29 167 views
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時不會發生重定向,但這不起作用。

有沒有解決方案,我的會話變量持續?

回答

0

這是我的託管公司解決的。顯然,「session.save_pth沒有在php.ini文件中正確設置」。不完全確定這意味着什麼,但是現在正在工作中感到高興。希望它能幫助別人。