我已经进行了搜索,到目前为止,我在这个网站上看到的答案都没有回答我的问题 - 如果有人能指出我的副本,我会很高兴回答:)
话虽如此,我相信问题相对简单。
我是用PHP自定义构建CMS系统(和一些MySQL,但这不是必需的)。我为大学课程做了类似的事情并且遇到了同样的问题 - 教授认为它很“好”,因为他没有时间研究决议。
我想要做的就是通过会话变量将Flash消息设置为用户登录的索引。闪存在同一页面上运行良好,但在重定向时,阵列中没有任何内容。在我的“类似的类项目”中,完全相同的代码在某些页面之间工作正常,但在其他页面之间没有 - 所以我知道它能够随着重定向移动 - 它只是简单地拒绝。
编辑:应该注意的是,在同一段代码中设置的任何其他会话变量都会在重定向上传输 - 只是不'闪存'。我已经更新了以下代码以反映。我还根据建议在我的letmein.php文件中添加了session_start(),但如果只是一个已经声明了session_start()的页面引用的库文件,有人可以确认这个必要性吗?
这是我的所有代码:
key.php
<?php
session_start();
$title = "STH Liquidations";
$description = "Product wholesale";
$keywords = "wholesale, product, pallets";
require "scripts/letmein.php";
include "parts/_head.php";
include "parts/header.php";
?>
<div id="key">
<form id="pass" method="post" action="key.php">
<label for="password">Key: </label>
<input type="password" name="password" id="password" />
<br />
<br />
<input type="submit" name="submit" value="Let Me In!" class="unlock">
</form>
</div>
<?php
include "parts/footer.php";
?>
脚本/ letmein.php
<?php
session_start();
$result = false;
$ip = $_SERVER['REMOTE_ADDR'];
if (isset($_POST['submit']))
{
if ($_POST['password'] == "password removed")
{
$result = true;
$_SESSION['logged_in'] = 1;
$_SESSION['flash'] = "You have been logged in. IP Address: ".$ip;
header("Location: index.php");
}
else
{
$_SESSION['flash'] = "Log In Failed. Please try again...";
}
}
?>
的index.php
<?php
session_start();
$title = "STH Liquidations";
$description = "Product wholesale";
$keywords = "wholesale, product, pallets";
include "parts/_head.php";
include "parts/header.php";
include "parts/nav.php";
print_r($_SESSION);
?>
<div id="content">
<div class="about">
This is where information "about us" will go.
</div>
content goes here
</div>
<?php
include "parts/footer.php";
?>
份/ header.php文件
<!-- =============== -->
<!-- BODY -->
<!-- =============== -->
<body>
<div id="header">
<!-- TITLE -->
<div class="headerwindow">
<h1><?php echo $title ?></h1>
</div>
</div>
<!-- FLASH MESSAGES -->
<?php
if (isset($_SESSION['flash']))
{
echo "<div class='flash'>" . $_SESSION['flash'] ."</div>";
unset($_SESSION['flash']);
}
?>
<!-- CONTENT TO WRAP 2 COL STYLE -->
<div id="main">
输出PRINT_R:数组([logged_in] =&gt; 1)