-1
A
答えて
1
に私が見ることができるいくつかの明白な問題は私を助けることができる場合、私はそれを感謝のお気に入り/お気に入りから削除
$test = $_SESSION['ww'];
if (isset($_POST['submit']))
{
$x = $_SESSION['x'];
$SelectQry2 = "select * from favorites where User_Id = ".$test." and User_Post = ".$x."";
$slc = mysqli_query($link , $SelectQry2);
if (mysqli_num_rows($slc)> 0)
{
$DeleteQry = "DELETE from favorites where User_Post = ".$x."";
$del = mysqli_query($link , $DeleteQry);
}
else
{
$url = $_SERVER['REQUEST_URI'];
$InsertQry = "insert into favorites";
$InsertQry .="(`User_Id` ,`User_post`, `url`) VALUES";
$InsertQry .=" ('$test' ,'$x', '$url')";
$fav = mysqli_query($link, $InsertQry);
}
}
if(isset($_GET['id']))
{
$id = intval($_GET['id']);
$SelectSql = " SELECT * , `upload_diy_ordinary`.`date` as datep FROM `users_final` LEFT OUTER JOIN `upload_diy_ordinary` ON `upload_diy_ordinary`.`User_ID`=`users_final`.`id` ";
$SelectSql .= " where `upload_diy_ordinary`.`ID` = $id";
$result = mysqli_query($link, $SelectSql);
while($row = mysqli_fetch_assoc($result))
{
$_SESSION['x'] = $row['id'];
<form method="post">
<input type="submit" name="submit" id="favorite" value="favorite" />
</form>
<?php }
} ?>
$(document).on('click', '#favorit', function(e) {
var data = $("#form").serialize();
$.ajax({
data: data,
type: "post",
url: "details.php",
success: function(data) {
alert("Data Save: " + data);
}
});
});
ような何かをしたい:
1)'#favorit'
を文字列の末尾にe
が見つからないため、どのボタンとも一致しません。
2)これが有効になると、自動的に「送信」ボタンが表示されるため、フォームがポストバックされます。したがって、ポストバックを取得し、競合するAjaxリクエストも受け取ることになります。 e.preventDefault();
をクリック機能の最初の行に書き込んで、定期的なポストバックをやめ、あなたのajaxを動作させてください。
3) "お気に入り"というIDを持つ複数のボタンを書き出しています。複数のIDはHTMLでは使用できません。あなたの「クリック」機能は最初のボタンと一致します。他のボタンはすべて無効と見なされるからです。
4)$("#form").serialize();
は、idが "form"の要素がないため動作しません。
私は次の操作を実行することをお勧め:
1)あなたは、フォームの複数のインスタンスを識別し、それらすべてにイベントハンドラをバインドすることができますので(IDSとは異なり、あなたは繰り返すことができ、クラス属性で、このようなフォームのコードを書きますあなたが好きなように多くの要素で同じクラス名):
<form class="favourite-form" method="post">
<input type="submit" name="submit" value="favorite" />
</form>
2)の代わりに送信ボタンのクリックイベントの者がイベントを提出するフォームにイベントハンドラをバインドします。その後、簡単にフォームをシリアライズすることができます。
$(document).on('submit', '.favourite-form', function(e) {
e.preventDefault(); //prevent a normal postback and allow ajax to run instead
var data = $(this).serialize(); //"this" represents the form element in this context
$.ajax({
data: data,
type: "post",
url: "details.php",
success: function(data) {
alert("Data Save: " + data);
},
error: function(jqXHR, textStatus, errorThrown) //gracefully handle any errors in the UI
{
alert("An ajax error occurred: " + textStatus + " : " + errorThrown);
}
});
});
また、あなたが緊急に固定検討すべき別の問題であるSQLインジェクション攻撃へのあなたの深刻な脆弱性を、再度上記の私のコメントを注意してください。
関連する問題
- 1. お気に入りのボタン
- 2. IE 7+お気に入り
- 3. お気に入りボタンに追加AndroidのSQLite
- 4. 商品のためのJqueryのお気に入りボタン
- 5. お気に入りボタンでアクティビティを追加する方法
- 6. Vue jsとお気に入り/好きなボタン
- 7. "お気に入りリストに追加"ボタンをクリックしてカートに入れるか?
- 8. Rails 5: 'お気に入りに追加'
- 9. お気に入りに追加
- 10. Welcome Pageお気に入りに追加
- 11. Neo4jお気に入りのクエリリスト
- 12. お気に入りのリンクjqueryui sortable
- 13. Androidのお気に入り設定ファイル
- 14. のページがお気に入りです
- 15. Djangoお気に入り/比較機能
- 16. お気に入りのJavaScriptユニットテストフレームワーク
- 17. お気に入りのプラグイン投稿者
- 18. お気に入りのクリップボード拡張子
- 19. お気に入りのPHPライブラリ
- 20. ブラウザのお気に入りへのアクセス
- 21. PhpStorm永遠のお気に入り
- 22. djangoオブジェクトセットのお気に入りのマーク
- 23. すべてretweet、お気に入り? Python
- 24. Rails 5のお気に入りのメカニズム
- 25. お気に入りのカードビュー(firebase付き)
- 26. Toggleお気に入りに追加/お気に入りから削除 - 動作していません
- 27. YouTubeのお気に入りの/お気に入りのプレイリストに動画を追加
- 28. ログインしてお気に入りに追加ボタンを確認する
- 29. カードビューのお気に入りボタンでエラーが発生しました
- 30. お気に入りを追加する方法 - vue.js 2のUnFavoriteボタン?
SQLクエリは注入攻撃に対して脆弱です。悪意のあるユーザーの入力は、データを破損したり、盗んだり、破棄したりする可能性があります。パラメータ化されたクエリと準備されたステートメントを使用して、自分自身をより良く保護する方法を学んでください。それはするのは難しくありませんし、取得する良い習慣です。 http://bobby-tables.com/には、リスクの良い説明があります。また、PHP/mysqliのコードサンプルも安全に書かれています。 – ADyson
私は本当にajaxをよく知っていません、私はちょうど私が書いたことがajaxを実行するのを助けることができるajaxの基本的な形であることを知っています。 –
私は本当にajaxをよく知りません、私はちょうど私が書いたことがajaxを実行するのを助けることができるajaxの基本的な形であることを知っています。 –