2012-12-27 2 views
0

즐겨 찾기라는 사용자 프로필에 링크가 있습니다. 다른 사용자가 이것을 클릭하면 해당 사용자가 즐겨 찾기 목록에 추가됩니다. 이 프로세스가 완료SQL 프로세스에 대한 링크를 클릭 한 후 사용자를 리디렉션합니까?

<?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에 다시 사용자를 취할 헤더를 얻을 수 있습니다합니다 (:

링크 좋아하는이 코드는 쿼리를 처리하는 곳 favorites.php 간다 이전 페이지) $ _SERVER [ 'HTTP_REFERRER']를 사용하여 사용자 ID를 호출합니다. 사용자 ID가 16 인 경우

은 그래서 profile.php 그들을 다시 재 것인가? ID = 16

대신 그냥 profile.php로 리디렉션 및 나던 그 프로파일의 ID를 포함한다.

내가 할 수있는 방법이 있다면 내 사람이 나를 보여줄 수 있습니까? 내 길은 왜 효과가 없습니까?

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

추신 :

감사

+1

나는 많은 사람들이 잠시 차임을 할 것이라고 확신하지만, 그 코드는 매우 불안정하다. 바로 거기에 SQL 주입이있다! –

답변

1

난 당신이 찾고있는 생각 코드가 안전하지 않습니다. SQL injection에 대해 읽어보십시오. MySQLi 또는 PDO로 전환

+0

로그인 한 사용자의 사용자 프로필로 다시 가져 가지 않습니까? 나는 그들이 로그인했던 사용자 whos 프로필의 프로필로 다시 로그인해야하는 사용자를 원한다는 뜻인가요? –

+0

그런 다음'$ user_to_id'는 그 정보를 포함하지 않을 것입니까? –

+0

그렇다면이 'header ("Location : profile.php? id =". $ user_to_id);' –

0

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를 사용하여 DB에 삽입하고 있습니다.

또한 코드가 쉽게 손상 될 수 있으므로 PDO 또는 Mysqli 기능을 살펴보십시오.

+0

사양에서 맞춤법 오류가 있습니다. – cbednarski

관련 문제