0

お気に入りと呼ばれるユーザー プロファイルにリンクがあります。別のユーザーがこれをクリックすると、そのユーザーがお気に入りリストに追加されます。

リンクのお気に入りは、次のコードがクエリを処理する 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']);


?>

したがって、このプロセスが完了したら、$_SERVER['HTTP_REFERRER'] を使用してユーザー ID を呼び出しながら、ヘッダーを取得してユーザーを profile.php (前のページ) に戻すことを目指します。

したがって、ユーザー ID が 16 の場合、ユーザーは profile.php?id=16 にリダイレクトされます。

代わりに、profile.php にリダイレクトするだけで、そのプロファイルの ID は含まれません。

これを行う方法があるかどうか、そして私の方法がまったく正しい場合、なぜそれが機能しないのかを誰かに教えてもらえますか?

ありがとう

4

2 に答える 2

1

私はあなたが探していると思います:

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

ps あなたのコードは安全ではありません。SQL インジェクションについて読んでください。MySQLi または PDO に切り替える

于 2012-12-27T01:34:58.837 に答える
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 関数を調べてください。

于 2012-12-27T02:08:18.050 に答える