You write PHP in the middle of some JavaScript functions as if you expect it to be executed by the JavaScript itself.
If you remove the HTML/JS output, you can see what actually happens on the server as soon as you load the page (I assume your code snippets are in order):
session_start();
if (!isset($_SESSION['score']))
$_SESSION['score'] = 0;
if (!isset($_SESSION['skipped']))
$_SESSION['skipped'] = FALSE;
if($_SESSION['skipped'] == TRUE){
$_SESSION['score'] = 0;
$_SESSION['skipped'] = !$_SESSION['skipped'];
}
$x = $_SESSION['score'] + 1;
$_SESSION['score'] = $x;
$q = TRUE;
$_SESSION['skipped'] = $q;
On the first page load with an empty session, this will set $_SESSION['score']
to 0
(because it’s not set yet), then increment it to 1
, then set $_SESSION['skipped']
to true
.
On subsequent page loads, it will set $_SESSION['score']
to 0
(because skipped is set), then increment it again to 1
and finally setting skipped
to true
again (you see: nothing changed)
1
solved Incrementing and resetting a PHP session variable