PHP$\u会话变量未持久化
我不太清楚为什么会这样。经过一番研究和几次尝试,我终于放弃了,寻求帮助。我的问题是我在一个页面(controle.php)上启动了一个会话,并在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”]上的数据不会持久化,每次代码运行时都
$\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]]){
分支的末尾,您会得到什么?