首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设置按钮点击时的$_SESSION变量

设置按钮点击时的$_SESSION变量
EN

Stack Overflow用户
提问于 2019-03-06 21:36:19
回答 1查看 43关注 0票数 0

当用户单击模式表中的记录时,我会尝试设置一个PHP $_SESSION变量。

模态表是通过执行while循环遍历SQL Server表中的记录来设置的。它看起来如下所示:

代码语言:javascript
运行
复制
    Value   |  Link
---------------------------
    0       |   <a href= changeVar.php?ficheNum=0></a>
    1       |   <a href= changeVar?ficheNum=1></a>
    2       |   <a href= changeVar?ficheNum=2></a>
    ...

当单击表中的一个链接时,它会运行以下代码:

代码语言:javascript
运行
复制
<?php
$ficheNum=$_REQUEST['ficheNum'];
$_SESSION['ficheCount'] = $ficheNum;

header("Location: test.php"); 
?>

test.php页面只是一个包含输入的页面,其中填充了数据库表中的值。它还具有上面所示的模式表。test.php上的PHP如下。

代码语言:javascript
运行
复制
$fiche_array = array();

$sel_query = "SELECT fiche
              FROM test.dbo.[TLM.Fiche_Globale]
              ORDER BY fiche ASC;";
$sel_result = sqlsrv_query($con, $sel_query) or die( print_r( sqlsrv_errors(), true));
while($sel_row = sqlsrv_fetch_array($sel_result)) {
    array_push($fiche_array, $sel_row['fiche']);
}

if(isset($_POST['new']) && $_POST['new']==1)
{
    $_SESSION['ficheCount'] ++;
}else if(isset($_POST['new2']) && $_POST['new2']==1)
{
    $_SESSION['ficheCount'] = $_SESSION['ficheCount'] - 1;
}else if(isset($_SESSION['ficheCount']) && $_SESSION['ficheCount'] > 0)
{
    $_SESSION['ficheCount'] = $_SESSION['ficheCount'];
}else{
    session_start();
    $_SESSION['ficheCount'] = 0;
}

if/else语句中的前两个语句用于操作next和previous record按钮。它们工作得很好。最后一条语句是在语句1-3都未被触发时运行的代码。如果用户从changeVar.php页面被重定向回页面,则会触发第三条语句。然而,这永远不会触发。或者,它触发并不做任何事情--我不确定。

我尝试过手动测试changeVar页面:

代码语言:javascript
运行
复制
<?php
$ficheNum=$_REQUEST['ficheNum'];
$_SESSION['ficheCount'] = $ficheNum;

echo $_SESSION['ficheCount'];
?>

它将变量设置为正确的数字,但是,当我返回到test.php页面时,它总是默认返回到之前设置的ficheCount,就好像我从未在changeVar.php页面中设置过变量一样。

如果有人能看到我在这里做错了什么,我将不胜感激。

干杯,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-06 21:42:11

为了使用PHP会话,您总是需要在每个使用会话的PHP文件的开头运行命令session_start();http://php.net/manual/en/function.session-start.php

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55024414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档