2017-06-29 7 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']; 
?> 

の出力にはセッションIDが表示されますが、ユーザー名セッション変数には何も表示されません。

サーバー会社を通じてSSLを購入して、これらのファイルを含むフォルダのhtaccessファイルにリダイレクトコードを追加するまで、私のフルコードは機能しました。使用されたコードは次のとおりです:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.domainname.com/foldername/$1 [R,L] 

これは、httpを使用してその場所に行ったユーザーを、httpsで同じ場所にリダイレクトしました。私はRewriteCond %{HTTPS} offを追加して、ユーザーが最初にhttpsを使用したときにリダイレクトが発生していないことを確認しましたが、これは効果がありませんでした。

セッション変数が保持されるソリューションはありますか?

答えて

0

これは私のホスティング会社によって解決されました。どうやら、 "セッション.save_pthがphp.iniファイルで正しく設定されていませんでした"。それが何を意味するのかは分かりませんが、それが喜んでいます。それが他人を助けることを願って

関連する問題