我在一个名为收藏夹的用户个人资料中有一个链接。另一个用户可以单击此用户,该用户将被添加到他们的收藏夹列表中。
链接收藏夹转到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。
有人可以告诉我是否有办法做到这一点,如果我的方式没有问题,为什么它不起作用?
由于
答案 0 :(得分:1)
我认为你在寻找:
header("Location: profile.php?id=" . $_SESSION['user_id']);
P.S。你的代码不安全。阅读SQL注入。切换到MySQLi或PDO
答案 1 :(得分:0)
HTTP_REFERRER不是这样写的,它是HTTP_REFERER(1 R)。 它包含用户来自的页面,因此标题(“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或Mysqli函数。