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

时间:2012-12-27 01:32:06

标签: php redirect

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

链接收藏夹转到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。

有人可以告诉我是否有办法做到这一点,如果我的方式没有问题,为什么它不起作用?

由于

2 个答案:

答案 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函数。