我的$ _SESSION [“消息”]在任何地方回响,即使有

时间:2014-04-23 20:50:04

标签: php session

我有一个问题。我想回复我的信息("主题创建","主题创建失败"取决于我的主题是否创建)。问题是,即使将$_SESSION["message"]设置为if条件,也会在每个页面上显示消息。我真的不知道问题出在哪里。我大概失去了2个小时......

包括所有包含和要求......

这是在我的进行页面上:

 if(isset($_POST["submit"])) {
        $menu_name = mysql_prep($_POST["menu_name"]);
        $position = (int) $_POST["position"];
        $visible = (int) $_POST["visible"];

        $query  = "INSERT INTO subjects(";
        $query .= " menu_name, position, visible ";
        $query .= ") VALUES ('{$menu_name}', '{$position}', '{$visible}')";
        $result = mysqli_query($connection,$query);
        if($result) {
            //success //
            $_SESSION["message"] = "Subject created";
            redirect_to("manage_content.php");
        } else {
            $_SESSION["message"] = "Subject creation failed";
            redirect_to("create_new_content.php");
        }
} else {            
        redirect_to("create_new_content.php");
}

我的留言功能是:

session_start();
function message() {
            if (isset($_SESSION["message"])){
                $output = $_SESSION["message"];
                return $output;
                }
}

毕竟我在manage_content.phpcreate_new_content.php

上回应
<?php echo message();  ?>

3 个答案:

答案 0 :(得分:0)

尝试清除$ _SESSION消息并检查是否为空

function message() {
        if (isset($_SESSION["message"]) && !empty($_SESSION["message"])){
            $output = $_SESSION["message"];
            $_SESSION["message"] = '';
            return $output;
        }
 }

答案 1 :(得分:0)

如果您只显示一次消息,则需要在return之前清除$ _SESSION [“消息”]

session_start();

function message() {
    if (isset($_SESSION["message"])){
        $output = $_SESSION["message"];

        // clear the session message
        $_SESSION["message"] = null;

        // remove message index from $_SESSION
        unset($_SESSION["message"]);

        return $output;
    }
}

答案 2 :(得分:0)

您应该在不再需要时清除会话。

E.g。

unset($_SESSION['message']);