2012-12-27 76 views
0

我有一個名爲favorite的用戶配置文件的鏈接。另一個用戶可以點擊這個,並且該用戶將被添加到他們的收藏夾列表中。點擊鏈接到sql進程後重定向用戶?

鏈接喜歡去哪裏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是16,將其重定向到profile.php?ID = 16

相反,它只是重定向到profile.php和犯規包括配置文件的ID。

有人可以告訴我,如果有辦法做到這一點,如果我的方式是完全正確的,爲什麼它不工作?

感謝

+1

我相信很多人會在一秒鐘內響個不停,但那代碼是非常不安全的,那是一個SQL注入! –

回答

1

我認爲你正在尋找:

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

附:你的代碼是不安全的。閱讀關於SQL注入。切換到MySQLi或PDO

+0

會不會將它帶回到用戶自己的配置文件中,如同登錄的用戶一樣?我的意思是我想要登錄的用戶被帶回到用戶的個人資料中,他們的個人資料? –

+0

那麼'$ user_to_id'是否包含該信息? –

+0

如果是這樣,那麼使用這個'header(「Location:profile.php?id =」。$ user_to_id);' –

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功能。

+0

愛得到規範中的拼寫錯誤。 – cbednarski

相關問題