AJAXなしでこのPHPクエリを実行する別の方法はありますか?

In my product.php I give the user the opportunity to add or remove a deal in his wishlist.
I did it using AJAX and an external file that added his id and product id but I don't want it with AJAX.

ボタンやリンクや画像をクリックしたときにこのSQLクエリをPHPで実行する別の方法は何ですか?ページが更新されても大丈夫です。

$query = "DELETE FROM relations WHERE user_id = '$myid' and deal_id = '$dealid'";
mysql_query($query);
mysql_close();
0
@SLaks私のSQLインジェクションの問題は何ですか?
追加された 著者 EnexoOnoma,
質問はちょっと混乱しているようです。あなたは本当にAJAXを使用していますが、サーバー上でデータを送信するためにPOSTとGETメソッドを使用する通常のフォームについては考えていませんか?
追加された 著者 Your Common Sense,
@mtopiaあなたのSQLインジェクションの問題は、SQLの文字列に変数を埋め込むことです(数字の場合)、またはSQLの内容をエスケープする(文字列の場合)必要はありません。このことが間違っていると、ハッカーがデータベースにアクセスできるようになります。
追加された 著者 Abhi Beckert,
あなたにはSQLインジェクションの脆弱性があります。
追加された 著者 SLaks,
なぜAJAXが欲しいのですか?
追加された 著者 SLaks,
$ dealid'がある場合はどうなりますか?
追加された 著者 SLaks,
ページを更新したくない場合は、ajaxリクエストを使用するのが最善の方法です。
追加された 著者 Dmitry Teplyakov,

1 答え

簡単なリンクで?

Delete

delete.phpは次のようになります:

<?php

/* MySQL connection code here */

$myid = /* get myid somehow */
$dealid = (int)$_GET['dealid'];

$query = "DELETE FROM relations WHERE user_id = '$myid' and deal_id = '$dealid'";
mysql_query($query);
mysql_close();

header('Location: http://example.com/page/to/go/back/to');
0
追加された
私は header( ''); については考えていませんでした。しかし、どうすればこのファイルに直接行くのを防ぐことができますか?
追加された 著者 EnexoOnoma,
データベースの変更に GETリクエストを使用しない。この目的のためのPOST。 Googleは唯一のクローラです。あなたのブラウザはいくつかのページを読み込むことができます。
追加された 著者 Your Common Sense,
笑。 「私たちは決して問題はありませんでした」は、SQLインジェクションについての典型的な答えを思い出させます。まったく同じです:「私たちは決して問題はありませんでした」それでも。
追加された 著者 Your Common Sense,
ユーザーが直接ファイルに行かないようにすることはできません。あなたはファイルに行く人がレコードを削除する権限を持つユーザーアカウントにログインしているかどうかを確認する必要があります。
追加された 著者 Abhi Beckert,
googlebotは通常、このようなアクションを実行できるページにアクセスできません。 POSTが理想的には削除アクションに使用されるべきだが、HTMLはPOST要求を実行する良い方法を提供しない。したがって、現実的な解決策はGETだけを使用することです。 3,000の<form>タグを持つページは、私の意見では良い選択肢ではない です。
追加された 著者 Abhi Beckert,
フォームを使用すると、実際のメリットがない複雑なページが追加されます。我々は数百のウェブサイトに取り組み、タグを使ってそれらのすべてを削除し、何の問題もなかった。そして、もしくそがファンに当たったら、バックアップがあります。
追加された 著者 Abhi Beckert,
問題の原因となるブラウザを見つけることに挑戦します。私たちは10年以上の開発と数千のクライアントで1つに遭遇したことはありません。これを、私たちが定期的に(私たち自身のコードではなく、タッチ・ウッドではなく)何かであるSQLインジェクションと対照的に、
追加された 著者 Abhi Beckert,
いいえ GETで破壊的なアクションを実行しないでください。 Googlebotがあなたのサイトを削除することを許可しないでください。
追加された 著者 SLaks,
@AbhiBeckert:どうしてですか?異なる名前のサブミットで <form> を使用することもできます。
追加された 著者 SLaks,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com

JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript