我使用这个sql函数来添加和删除用户到/从收藏夹,如果用户单击另一个用户配置文件上的添加到收藏夹按钮,那么它将链接到favorites .php并运行下面的脚本。
我要做的是,在sql运行后,然后重定向回用户配置文件页面,我想在该配置文件页面上回显一条消息,说用户已添加到收藏(如果一个收藏已插入到数据库中)或用户已从收藏中删除(其中用户已从收藏中删除)。
代码: <?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>";
}
?>
使用$_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']
作为返回值。我不确定你是如何管理你的应用程序的,但成功应该转到成功页面,除非你明确地设置了一个转发URL。只是说。