在sql函数和重定向之后回显消息?

时间:2012-12-29 23:18:21

标签: php mysql

我正在使用此sql函数向收藏夹添加和删除用户,如果用户单击其他用户配置文件上的“添加到收藏夹”按钮,则会链接到favourite.php并运行以下脚本。

我想要做的是,在sql运行之后然后重定向回用户个人资料页面,我想在该个人资料页面上回显一条消息,说明用户已被添加到收藏夹中(如果有喜欢的话)已被插入数据库)或用户已从收藏夹中删除(用户已从数据库中的收藏夹中删除)。

CODE:

    <?php

    require_once('includes/session.php');
    require_once('includes/functions.php');
    require('includes/_config/connection.php');

    session_start();

        confirm_logged_in();

        if (isset ($_GET['to'])) {
        $user_to_id = $_GET['to'];


    }


    if (!isset($_GET['to']))
        exit('No user specified.');

    $user_id = $_GET['to'];

    mysql_query("INSERT INTO ptb_favorites (user_id, favorite_id) VALUES (".$_SESSION['user_id'].", ".$user_to_id.")") 

    or mysql_query("DELETE FROM ptb_favorites WHERE user_id = ".$_SESSION['user_id']." AND favorite_id = ".$user_to_id.""); header("Location: {$_SERVER['HTTP_REFERER']}");

    #Method to go to previous page

    function goback()

    {
        header("Location: {$_SERVER['HTTP_REFERER']}fav=1");
        exit;
    }
    goback();

?>

我已经尝试在重定向上添加扩展名fav = 1以回显消息并在配置文件页面中放置$ _GET代码以在用户重新登录页面时显示错误:

<?
if (isset($_GET['fav']) && $_GET['fav'] == 1) {
            $message = "<div class=\"infobox-profile\"><strong>Added to Favourites.</strong>This user has been added to your favourites.</div>";
            echo "<a href=\"#\"><div class=\"infobox-close3\"></div></a>";

}
?>

1 个答案:

答案 0 :(得分:1)

使用$_SESSION对象跨请求传递消息:

function goback()
{
    $_SESSION['flashmessage'] = "Some message";
    header("Location: {$_SERVER['HTTP_REFERER']}fav=1");
    exit;
}

然后,在您的其他脚本中,只需检查该变量。

session_start();

if (isset($_SESSION['flashmessage'])) {
    echo $_SESSION['flashmessage'];

    unset($_SESSION['flashmessage']);
}

注意:您不应该依赖$_SERVER['HTTP_REFERER']作为后退值。我不确定您如何管理您的应用,但成功应该转到成功页面,除非您明确设置了转发网址。只是说。