【问题标题】:redirect user after clicking link to sql process?单击链接到sql进程后重定向用户?
【发布时间】:2012-12-27 01:32:06
【问题描述】:

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

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

谁能告诉我是否有办法做到这一点,如果我的方法完全正确,为什么它不起作用?

谢谢

【问题讨论】:

  • 我敢肯定很多人会在一秒钟内加入,但该代码非常不安全,那是 SQL 注入!

标签: php redirect


【解决方案1】:

我想你正在寻找:

header("Location: profile.php?id=" . $_SESSION['user_id']);

附言您的代码不安全。阅读有关 SQL 注入的信息。切换到 MySQLi 或 PDO

【讨论】:

  • 不会像登录用户那样将其带回用户自己的个人资料吗?我的意思是我希望登录的用户被带回他们所在用户的个人资料?
  • 那么$user_to_id 不会包含该信息吗?
  • 如果是,那么就用这个header("Location: profile.php?id=" . $user_to_id);
  • 是的,谢谢,我傻了一会儿。有没有办法现在我可以像这样添加回声以延续到上一页: header("Location: profile.php?id=" . $user_to_id['user_id'] . " added=1");跨度>
  • 然后profile.php页面上有这个声明? if (isset($_GET['add']) && $_GET['add'] == 1) { $message = "
    此用户已成功添加到您的收藏夹。
    "; ?> } ?>
【解决方案2】:

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

【讨论】:

  • 必须喜欢规范中的拼写错误。
猜你喜欢
  • 1970-01-01
  • 2013-04-10
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 2018-04-29
  • 2014-11-21
  • 2020-06-05
  • 1970-01-01
相关资源
最近更新 更多