【发布时间】:2018-12-30 02:30:40
【问题描述】:
我正在使用会话并尝试创建一个将存储临时数据的应用程序(目前),并且我正在使用此代码将“课程”添加到我的 userCourses 会话数组中:
$_SESSION['userCourses'] = array(
$_SESSION['siteCourses'][0],
);
if(isset($_GET['id'])){
$id = $_GET['id'];
array_push($_SESSION['userCourses'], $_SESSION['siteCourses'][$id]);
}
我的href是这样写的:
<a class="green" href="<?php echo 'coursesDisplay.php?id='.$course[2]; ?>" >Add Course</a>
其中 $course[2] 代表课程的 ID(将其视为 Auto Increment int,每个课程都是独立的)
现在,当我单击链接时,它确实添加到了我的数组中,但是当我在没有 id 的获取请求的情况下访问该站点时,这部分:
...url/file.php?id=1
它不显示课程,而且每当我添加另一门课程时,尽管将它添加到之前的旁边,但之前的课程会被覆盖。
我的逻辑是否有缺陷(或完全愚蠢),我是否遗漏了什么?这可以使用会话还是我需要使用数据库?我对 PHP 相当陌生,我想在迁移到数据库之前使用会话制作一个简单的应用程序。
注意:我没有忘记把 start_session();除了文件之外,我只是想保持问题干净并且没有包含整个文件,但是如果有人需要我,我可以将整个代码放在驱动器或其他东西上,他们可以下载它。
【问题讨论】:
-
看起来您每次运行脚本时都在重新初始化会话变量。也许首先检查会话变量是否为空,如果是则仅初始化。比如:
if (empty($_SESSION['userCourses'] )) { $_SESSION['userCourses'] = array( $_SESSION['siteCourses'][0], ); } -
是的,我不敢相信我没有注意到 xD 我真是个白痴……每次我打开网站时,我都会重置会话……
-
有时只需要一双新鲜的眼睛。如果有用,请点赞我的评论。
-
我不确定我可以否决评论,但如果您将其添加为答案,我会将其标记为解决方案
标签: php arrays session get session-variables