認証がどのように機能するかを知らなければ、言うのは少し難しいです。
過去にこれを行う必要があったときは、サーバー側の認証を組み合わせてリクエストを送信するユーザーを識別し、URLパラメーターを使用してユーザーが削除するものを指定していました。削除リクエストを送信するには、ユーザーがログインする必要があります。$_SESSION変数を使用してユーザーIDを追跡しています。したがって、削除要求を受け取ると、SQLは漠然と次のようになります。
DELETE FROM
friends
WHERE
userID=$_SESSION["id"] AND friendID=$_POST["friend"]
halferがコメントで説明しているように、これはコードにSQLインジェクションの脆弱性を開くため、一般的に悪い方法です。それを回避するいくつかの方法を検討することができます。
まず、データをサニタイズできます。friendIDが常に整数になることがわかっている場合は、それを確認できます。数字以外の文字をチェックする正規表現は機能します-そこに何か危険なものがある場合は、それを適切に処理し、データベースに渡さないでください。
2番目のアプローチは、私が好むアプローチです。クエリを実行するときに、プリペアドステートメントを使用して、パラメーターをそれにバインドできます。PDOを使用すると、次のような結果になります。
$sth = $dbh->prepare('DELETE FROM friends WHERE userID=? AND friendID=?');
$sth->bindParam(1, $_SESSION["id"]);
$sth->bindParam(2, $_POST["friend"]);
$sth->execute();