我正在使用会话,并试图创建一个存储临时数据的应用程序(目前),即时消息我使用此代码向“ 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(将其视为自动增量int,它对于每个课程都是独立的)
现在,当我单击链接时,它确实会添加到我的数组中,但是当我在没有id的获取请求的情况下转到该站点时,这部分是
...url/file.php?id=1
它不显示课程,此外,每当我添加另一门课程时,尽管将其添加到前一门课程,前一门课程都会被覆盖。
我的逻辑有缺陷吗(或愚蠢),我缺少什么吗?使用会话是否可能,或者我需要为此使用数据库?我对PHP相当陌生,我想在移至数据库之前使用会话制作一个简单的应用程序。
注意:我没有忘记放置start_session();。除了这些文件之外,我只是想保持问题整洁,不包括整个文件,但是如果有人需要我可以将整个代码放在驱动器或其他东西上,他们可以下载它。
答案 0 :(得分:1)
好像您每次运行脚本时都重新初始化会话变量。也许先检查会话变量是否为空,然后才初始化。像这样:
if (empty($_SESSION['userCourses'] ))
{
$_SESSION['userCourses'] = array( $_SESSION['siteCourses'][0], );
}