我希望它增加和减少$_SESSION['selection']
中的值
下一个表单上的Mousedown会导致:“会话为1 ”
上一个表单中的Mousedown会导致“会话为-1 ”。
以下是代码:
<?php
if (isset($_POST['next'])) {
displaynext();
}
else if (isset($_POST['previous'])) {
displayprevious();
}
else {
session_start();
echo "session started";
$_SESSION['selection'] = 1;
}
function displaynext() {
$_SESSION['selection'] = $_SESSION['selection'] + 1;
echo "The session is $_SESSION[selection]";
}
function displayprevious() {
if ($_SESSION['selection'] != 1) {
$_SESSION['selection'] = $_SESSION['selection'] - 1;
}
echo "The session is $_SESSION[selection]";
}
?>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="post">
<input type="submit" name="previous" value="Previous">
</form>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="post">
<input type="submit" name="next" value="Next">
</form>
答案 0 :(得分:5)
将session_start()
调用放在文件的开头;在<?php
打开标记之后。您还需要在计划使用会话的每个脚本上执行此操作。
顺便说一句,而不是写作:
$_SESSION['selection'] = $_SESSION['selection']-1;
$_SESSION['selection'] = $_SESSION['selection']+1;
您可以使用
$_SESSION['selection']--;
$_SESSION['selection']++;
答案 1 :(得分:1)
确保您在使用会话的每个页面上使用session_start()
。
答案 2 :(得分:1)
在任何条件之外,将session_start
调用放到代码的开头。
session_start
,而不仅仅是在开头(即第一个页面加载)。
答案 3 :(得分:1)
在页面之间移动时,您不会调用session_start
。将调用移至if
语句之前,如下所示:
session_start();
if(isset($_POST['next'])) {
displaynext();
} else if(isset($_POST['previous'])) {
displayprevious();
} else {
echo "session started";
$_SESSION['selection'] = 1;
}