0

誰かが私を助けてくれませんか、私はブロックユーザースクリプトを持っています. 基本的にすべて正常に動作しています。

ユーザーが他のユーザーのプロファイルでブロックをクリックすると、ユーザー ID がエコーされ、user_id と他の profile_id がデータベースに挿入され、「ブロックされた」列が「0」から「1」に設定されます。

ログインしているユーザーは、ブロックした他のユーザーを見ることができなくなりますが、ブロックした他のユーザーは自分のプロフィールを見ることができます。

私のデータベースの仕組みは、次のように両方の列に両方のセット ID が必要であることです。

user_id   |   blocked_id  |  blocked

   1               2            1
   2               1            1

両方のユーザーがお互いに見えず、両方がブロックされるようにするには、2 つの ID をほぼ 2 回挿入する必要があります。

これは、テーブルに挿入された値を複製して同じ結果を 2 回作成するようなものですが、テーブルの列ではその逆になります。

だから現時点で私は持っています:

$sql = mysql_query("INSERT INTO ptb_block_user (user_id, blocked_id) VALUES (".$_SESSION['user_id'].", ".$user_to_id.")");

これらの値を 2 回挿入する必要がありますが、その逆なので、上の表のようになります。

私は自分自身を明確にすることを願っています、誰か私がこれを行う方法を知っていますか?

ありがとう。

<?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'];




$sql = mysql_query("INSERT INTO ptb_block_user (user_id, blocked_id) VALUES (".$_SESSION['user_id'].", ".$user_to_id.")");


$result1 = mysql_query("UPDATE ptb_block_user SET blocked='1' WHERE user_id=".$_SESSION['user_id']."") 
or die(mysql_error());





if($result1) 
{ 
$_SESSION['message2']="<div class=\"infobox-profile\"><strong>User Blocked</strong> - This user has successfully been blocked. You will no longer be abler to interact with each other's profiles.</div><div class=\"infobox-close\"></div>"; 
header("Location: {$_SERVER['HTTP_REFERER']}");
} 
else 
if($result2) 
{ 
$_SESSION['message2']="<div class=\"infobox-favourites\"><strong>User Unblocked</strong> - This user has successfully been unblocked. You can now interact with each other's profiles.</div><div class=\"infobox-close4\"></div>"; 
header("Location: {$_SERVER['HTTP_REFERER']}");

}
?>
4

2 に答える 2

0
INSERT INTO ptb_block_user
(user_id, blocked_id) 
VALUES 
(".$_SESSION['user_id'].", ".$user_to_id."),
(".$user_to_id.",".$_SESSION['user_id'].")

?

于 2013-02-01T00:58:14.847 に答える
0

あなたの質問は私には完全に明確ではありませんが、同じクエリで両方の値を挿入する方法を尋ねているようです。 VALUES複数のタプルを取ることができます:

INSERT INTO ptb_block_user (user_id, blocked_id, blocked) VALUES
    (".$_SESSION['user_id'].", ".$user_to_id.", 1),
    (".$user_to_id.", ".$_SESSION['user_id'].", 1)

コードは mysql インジェクションに対して非常に脆弱であり、使用しないでくださいext/mysql

http://www.php.net/manual/en/faq.databases.php#faq.databases.mysql.deprecated

于 2013-02-01T00:53:51.303 に答える