繁体   English   中英

单击链接到sql进程后重定向用户?

[英]redirect user after clicking link to sql process?

我在一个名为“收藏夹”的用户个人资料上有一个链接。 另一个用户可以单击此按钮,该用户将被添加到其收藏夹列表中。

链接收藏夹转至favorite.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']);

ps您的代码不安全。 了解有关SQL注入的信息。 切换到MySQLi或PDO

HTTP_REFERRER不是这样写的,它是HTTP_REFERER(1 R)。 它包含用户来自的页面,因此header(“ 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函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM