我在用户配置文件上有一个名为favorite的链接。其他用户可以单击此按钮,该用户将被添加到他们的收藏夹列表中。
链接favorite到favorites.php,其中代码处理查询:
<?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'];
$result = mysql_query("INSERT INTO ptb_favorites (user_id, favorite_id) VALUES (".$_SESSION['user_id'].", ".$user_to_id.")")
or die(mysql_error());
header("Location: profile.php" . $_SERVER['HTTP_REFERRER']);
?>
所以一旦这个过程完成,我的目标是让头带用户回到profile.php(上一页),同时使用$_SERVER['HTTP_REFERRER']调用用户id。
所以如果用户id是16,它会重定向到profile.php?id = 16
它只是重定向到profile.php,不包括该配置文件的id。
谁能告诉我是否有办法做到这一点,如果我的方法是正确的,为什么它不工作?
谢谢
我想你要找的是:
header("Location: profile.php?id=" . $_SESSION['user_id']);
注。你的代码不安全。阅读SQL注入。切换到MySQLi或PDO
HTTP_REFERRER不是这样写的,它是HTTP_REFERER (1r)。它包含了用户来自的页面标题("Location: profile.php")。$_SERVER['HTTP_REFERRER'])不能正常工作。你应该这样做:
header("Location:" . $_SERVER['HTTP_REFERRER']);
但是HTTP_REFERRER不是很可靠,你应该使用:
header("Location: profile.php?id=" . $user_to_id);
你应该改变最后一个选项,你的网站如何建立链接,我们刚刚从你的例子中假设。
你也正在设置变量$user_id = $_GET['to'],但你正在使用$user_to_id插入到数据库中。
你的代码也很容易被破解,请不要这样使用它,看看PDO或mysql函数