gpt4 book ai didi

php - $_SESSION 变量没有保存在托管服务器上,但在我的本地主机上运行完美且符合预期

转载 作者:行者123 更新时间:2023-11-29 02:57:13 26 4
gpt4 key购买 nike

更多细节..

我正在创建一个包含一系列页面的站点,每个后续页面都使用前一个页面发布的信息设置不同的 $_SESSION 变量。第一个页面之后的每个页面都设置了一个不同的 $_SESSION 变量,该变量在该页面上用于查询数据库以了解要呈现的信息。然后在另外 3 页左右之后,所有这些不同的 $_SESSION 变量一起用于查询数据库以获取匹配的记录。

我的问题是,在每个后续页面上,$_SESSION 变量都设置得很好,但是当我进入下一页时,之前的相同 $_SESSION 变量现在将设置为 null..

真正让我感到困惑的是,这只发生在我使用的托管服务器上。该站点在我的本地主机上按预期工作(如果重要的话,我使用 wampserver),并且两者的代码完全相同。

第 1 页

这是在页面的顶部。我将“unset()”放在那里以清空站点开头的数据。

<?php
session_start();
unset($_SESSION['brand']);
unset($_SESSION['model']);
unset($_SESSION['carrier']);
unset($_SESSION['size']);
?>

帖子靠近页面中间

<div id="select">
<a href="models/page2.php?brand=a" onclick="post"><img src="images/a.png" id="a"/></a>
<a href="models/page2.php?brand=b" onclick="post"><img src="images/b.png" id="b"/></a>
</div>

第 2 页

这是在页面的顶部

<?php

session_start();
if(isset($_SESSION['brand']))
{
$brand = $_SESSION['brand'];
}
else
{
$_SESSION['brand'] = $_GET['brand'];
$brand = $_SESSION['brand'];
}


include('../connection/localconnection.php');

$query = "SELECT DISTINCT Model FROM models WHERE brand = '$brand'";
$result = $dbc->query($query);

if(!$result){
echo "DB error. Could not query database\n";
echo 'MySQL error: ' . mysql_error();
exit;
}
?>

这篇文章位于页面中间。我还 echo $_SESSION['brand'] 以确保它仍处于设置状态。

<form action="../options/page3.php" method="post">
<?php
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result))
{
echo "<input type=\"submit\" id=\"c\" name=\"model\" value=\"{$row['Model']}\"/>";
}
} else {

echo "Query didn't return any result";

}
echo $_SESSION['brand'];
?>
</form>

这在服务器上运行得非常好,我会看到 $_SESSION['brand'] 的设置完全符合预期。

但是,在 page3.php 的底部,我再次 echo $_SESSION['brand'] 并将其设置为 null,所以我知道 $_SESSION 变量仍然存在,只是空的对吧?

这种情况在每个页面上都在发生,我不明白为什么。我不是最擅长 php 的人,但我了解相当多的知识,并且完全不知道为什么这只会发生在我的托管服务器上而不是我的本地主机上。任何帮助将不胜感激。

最佳答案

只是一个建议。根据 MVC 模式, session 应该在 Controller 中处理。您在 View 中处理它并且您的 View 包含太多 PHP 代码。

关于php - $_SESSION 变量没有保存在托管服务器上,但在我的本地主机上运行完美且符合预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29441272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com