在单击链接到SQL进程后重定向用户



我在用户配置文件上有一个名为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函数

最新更新