PHP$\u会话变量未持久化

PHP$\u会话变量未持久化,php,session,http-post,Php,Session,Http Post,我不太清楚为什么会这样。经过一番研究和几次尝试,我终于放弃了,寻求帮助。我的问题是我在一个页面(controle.php)上启动了一个会话,并在$\u session[“agenda”]上创建了一个数组,但我只知道在第一次创建它时要做什么。之后,我想用array\u push($\u SESSION[“agenda”],$Contato)向其中添加元素,其中$Contato是一个对象,我为每个迭代创建该对象的新实例。但是,$_SESSION[“agenda”]上的数据不会持久化,每次代码运行时都

我不太清楚为什么会这样。经过一番研究和几次尝试,我终于放弃了,寻求帮助。我的问题是我在一个页面(controle.php)上启动了一个会话,并在
$\u session[“agenda”]
上创建了一个数组,但我只知道在第一次创建它时要做什么。之后,我想用
array\u push($\u SESSION[“agenda”],$Contato)
向其中添加元素,其中
$Contato
是一个对象,我为每个迭代创建该对象的新实例。但是,$_SESSION[“agenda”]上的数据不会持久化,每次代码运行时都会创建一个新数组。我尝试将session_start()添加到页面顶部,检查我的浏览器是否允许站点保存cookie。至于PHP配置,我将发布一张图片,因为我对这方面一无所知

这里是
phpinfo()

controle.php代码:

<?php 
session_start();
require_once '../Model/Contato.php';

$op = $_GET["op"];

if (isset($op) && $op != "") {
    switch ($op) {

        case 'add':
        include '../View/novo.php';
        break;      

        case 'cad':
        if(isset($_POST["enviar"])){
            $nome = $_POST["nome"];
            $email = $_POST["email"];

            $Contato = new Contato($nome, $email);

            if(!isset($_SESSION["agenda"])){
                $_SESSION["agenda"] = array();
            }
            array_push($_SESSION["agenda"], $Contato);

            include '../View/sucesso.php';
        }
        else{
            include '../View/erro.php';
        }

        unset($nome);
        unset($email);
        break;

        case 'lst':    
        include '../View/lista.php';
        break;
    }
}
else{
    include '../View/index.php';
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>Novo Contato</title>
</head>
<body>
    <h1>Criar novo contato</h1>
    <form action="../Controller/controle.php?op=cad" method="post">
        <label>Nome:</label>
        <input type="text" name="nome" required="required">
        <label>Email:</label>
        <input type="email" name="email" required="required">
        <input type="submit" name="enviar" value="Enviar">
    </form>
</body>
</html>

novo.php代码:

<?php 
session_start();
require_once '../Model/Contato.php';

$op = $_GET["op"];

if (isset($op) && $op != "") {
    switch ($op) {

        case 'add':
        include '../View/novo.php';
        break;      

        case 'cad':
        if(isset($_POST["enviar"])){
            $nome = $_POST["nome"];
            $email = $_POST["email"];

            $Contato = new Contato($nome, $email);

            if(!isset($_SESSION["agenda"])){
                $_SESSION["agenda"] = array();
            }
            array_push($_SESSION["agenda"], $Contato);

            include '../View/sucesso.php';
        }
        else{
            include '../View/erro.php';
        }

        unset($nome);
        unset($email);
        break;

        case 'lst':    
        include '../View/lista.php';
        break;
    }
}
else{
    include '../View/index.php';
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>Novo Contato</title>
</head>
<body>
    <h1>Criar novo contato</h1>
    <form action="../Controller/controle.php?op=cad" method="post">
        <label>Nome:</label>
        <input type="text" name="nome" required="required">
        <label>Email:</label>
        <input type="email" name="email" required="required">
        <input type="submit" name="enviar" value="Enviar">
    </form>
</body>
</html>

诺沃康塔托酒店
新康塔托酒店
诺姆:
电邮:

novo.php
的顶部是否也有
会话启动()
?是否需要
会话启动()
?因为我只想在controle.php上的
$\u会话
数组中存储数据。你用哪种方法来控制结果?它在
lista.php
中吗?如果您添加一个
print\r($\u SESSION['agenda');
,比如在
if(isset($\u POST['envier]]){
分支的末尾,您会得到什么?