Ich habe 2 Testskripts: session_test.php
und session_write.php
. Das Skript session_test.php
lädt den session_write.php
mithilfe einer jQuery-Ladefunktion. Das Skript läuft in Ubuntu14.04 + Firefox 46.0.1 einwandfrei, fügt jedoch nicht die Datensitzungsvariable in Windows 8.1 oder 10 mit Firefox 46.0.1 hinzu. Windows 10 + Chrome, Edge und Opera funktionieren einwandfrei.PHP Session-Variablen verloren in Firefox 46.0.1 + Windows, aber funktioniert mit Firefox 46.0.1 + Ubuntu 14.04
Kann mir jemand helfen, dieses Problem zu beheben?
session_test.php:
<?php
session_start();
var_dump($_SESSION);
$_SESSION['test']= 'testing';
?>
<html>
<head>
<title>website title</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
</head>
<body>
<br>
<input type="checkbox" class="merken" id="merken"/> Merken box
<div id="div_session_write"></div>
<script>
$('.merken').click(function() {
var merk = 'test';
var url = "session_write.php?data="+encodeURIComponent(merk);
console.log(url);
$('#div_session_write').load(url);
location.reload(true);
});
</script>
</body>
</html>
session_write.php:
<?php
session_start();
if (isset($_GET['data'])) {
$_SESSION['data'] = $_GET['data'];
}
var_dump($_SESSION);
?>
Update [7-Juli-2016] Dieses Problem bei developer.mozilla.org als Bug geschrieben und ist durch das reproduzierte Entwickler von Mozilla. Sie arbeiten an eine Lösung.
Update [13 Juli 2016] Die Lösung, die funktioniert für mich ist:
$('#div_session_write').load(url, function() {
self.location = self.location;
});
Die Lösung von den Firefox-Entwicklern zur Verfügung gestellt wurde, , wie sie es ein Timing-Problem zu sein gefunden.
Scheck in Ihrem Browser Cookies aktiviert ist oder nicht? Wenn nicht Cookie aktivieren und dann versuchen –
Es funktioniert für mich. (Firefox 46.0.1 + Win10) – SandroMarques
@BindeshPandya Cookies sind aktiviert. Ich kann die phpSessionId im Cookie sehen. – Deepfreeze